Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1791 → Rev 1792

/programs/fs/kfm/trunk/EDITBOX.INC
0,0 → 1,278
; SEE YOU File FAQ.txt and HISTORY. Good Like!
;;;;;;;;;;;;;;;;;;
include 'editbox.mac' ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
;;;;;;;;;;;;;;;;;;
macro use_edit_box procinfo,scr_h,scr_w
{
edit_box:
ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â 
ed_left equ [edi+4] ;¯®«®¦¥­¨¥ ¯® ®á¨ å
ed_top equ [edi+8] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
ed_color equ [edi+12] ;梥â ä®­  ª®¬¯®­¥­â 
shift_color equ [edi+16] ;=0x6a9480
ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®­¥­â 
ed_blur_border_color equ [edi+24] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
ed_text_color equ [edi+28] ;梥â ⥪áâ 
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à
ed_flags equ [edi+40] ;ä« £¨
ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [edi+50] ;ᬥ饭¨¥
cl_curs_x equ [edi+54] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [edi+58] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [edi+62] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [edi+66] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
;==========================================================
;=== ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ =================================
;==========================================================
.draw:
pusha
;--- à¨á㥬 à ¬ªã ---
call .draw_border ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
.draw_bg_cursor_text:
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
call .check_offset ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
call .draw_bg ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
call .draw_shift
.draw_cursor_text:
;--- à¨á㥬 ªãàá®à ---
;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
test word ed_flags,ed_focus
je @f
call .draw_cursor
@@:
call .draw_text
;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å ä㭪権 ¨ ¯®áâ ®¡à ¡®â稪®¢
;;;;;;;;;;;;;;;;;;;;;;;;;;
.editbox_exit:
edit_ex
;==========================================================
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
;==========================================================
.key:
pusha
test word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
je .editbox_exit
test word ed_flags,ed_mouse_on
jne .editbox_exit
 
;à®¢¥àª  ­ ¦ â shift ?
call .check_shift
;----------------------------------------------------------
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
;----------------------------------------------------------
use_key_process backspase,delete,left,right,home,end,insert
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_no_process up,down,esc
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_figures_only
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_shift_press
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_cur_end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_key
;==========================================================
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
;==========================================================
.mouse:
pusha
;debug
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
;----------------------------------------------------------
mcall 37,2
;----------------------------------------------------------
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
;----------------------------------------------------------
test eax,1
jnz .mouse_left_button
and word ed_flags,ed_mouse_on_off
xor ebx,ebx
mov dword [mouse_flag],ebx
jmp .editbox_exit
.mouse_left_button:
;----------------------------------------------------------
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
;----------------------------------------------------------
mov eax,dword [mouse_flag]
test eax,eax
jz @f
cmp eax,edi
je @f
jmp ._blur
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
;----------------------------------------------------------
@@: mcall 37,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”ã­ªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_mause scr_h,scr_w
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_general_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á key
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á mouse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_mouse_func scr_w
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;®¤­¨ ᨬ¢®«ë
ed_always_focus= 100000000000000b
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥­¨ï
ed_shift_on= 1000b ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; ¢ëá®â 
macro draw_edit_boxes start,_end,use_f9,procinfo
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,start
mov ecx,((_end-start)/ed_struc_size)
@@:
call edit_box.draw
add edi,ed_struc_size
loop @b
}
 
macro mouse_edit_boxes start,_end
{
mov edi,start
mov ecx,((_end-start)/ed_struc_size)
@@:
call edit_box.mouse
add edi,ed_struc_size
loop @b
}
 
macro key_edit_boxes start,end
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
@@:
call edit_box.key
add edi,ed_struc_size
loop @b
}
ed_struc_size=70
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,flags,size,pos
{
.width dd width
.left dd left
.top dd top
.color dd color
.shift_color dd shift_color
.focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color
.text_color dd text_color
.max dd max
.text dd text
.flags dw flags+0
.size dd size+0
.pos dd pos+0
.offset dd 0
.cl_curs_x dd 0
.cl_curs_y dd 0
.shift dd 0
.shift_old dd 0
}
 
 
macro edit_boxes_set_sys_color start,end,color_table
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
mov esi,color_table
@@:
mov eax,[esi+36]
mov ebx,[esi+20]
mov ed_focus_border_color,eax
shr bh,1
shr bl,1
shr ah,1
shr al,1
add ah,bh
add al,bl
ror eax,16
ror ebx,16
shr bl,1
shr al,1
add al,bl
ror eax,16
mov ed_blur_border_color,eax
add edi,ed_struc_size
loop @b
}
 
macro draw_edit_box ed_ptr,use_f9,procinfo
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,ed_ptr
call edit_box.draw
}
 
macro mouse_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.mouse
}
 
macro key_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.key
}
macro default_box ed_ptr
{
pusha
; xor eax,eax
; mov ed_shift_pos,eax
; mov ed_shift_pos_old,eax
and word ed_flags,ed_shift_cl
; mov ed_offset,eax
popa
}
/programs/fs/kfm/trunk/KFM.ASM
0,0 → 1,410
;**************************************************************
; KFM - Kolibri File Manager
;**************************************************************
use32
db 'MENUET01'
dd 0x01
dd START
dd I_END
dd mem
dd stacktop
dd 0x0
dd path
 
;include 'lang.inc'
;include 'kglobals.inc'
include 'macros.inc'
include 'editbox.inc'
;use_edit_box
use_edit_box procinfo
;include 'ASCGL.INC'
;---------------------------------------------------------------------
include 'files.inc'
;---------------------------------------------------------------------
STRLEN = 1024
;---------------------------------------------------------------------
START:
mcall 9, procinfo, -1
mov eax,[ebx+30]
mov [PID],eax
xor ecx,ecx
@@:
inc ecx
mcall 9, procinfo
mov eax,[PID]
cmp eax,[ebx+30]
jne @r
mov [active_process],ecx
mov [appl_memory],mem
mov ax,[select_disk_char]
mov [read_folder_name],ax
mov [read_folder_1_name],ax
call load_icon_and_convert_to_img
call load_buttons_and_convert_to_img
call load_initiation_file
call add_memory_for_folders
call device_detect
call device_detect_f70
mcall 66, 1, 1
; call draw_window
; xor eax,eax
mov eax,1
mov [left_sort_flag],eax
mov [right_sort_flag],eax
 
call proc_read_left_folder
test eax,eax
jz @f
cmp eax,6
jne read_folder_error
@@:
call proc_read_right_folder
test eax,eax
jz @f
cmp eax,6
jne read_folder_1_error
@@:
mcall 40, 0x27
jmp red_1
;---------------------------------------------------------------------
red:
call get_window_param
test [window_status],10b
jnz red_1 ;still
test [window_status],100b
jnz red_1
cmp [window_high],180
ja @f
mov esi,180
mcall 67,-1,ebx,ebx
@@:
cmp [window_width],495
ja red_1
mov edx,495
mcall 67,-1,ebx, ,ebx
red_1:
call draw_window
;---------------------------------------------------------------------
still:
mcall 10
cmp eax,1
je red
cmp eax,2
je key
cmp eax,3
je button
cmp eax,6
je mouse
jmp still
;---------------------------------------------------------------------
get_window_param:
mcall 9, procinfo, -1
mov eax,[ebx+46]
mov [window_high],eax
mov eax,[ebx+42]
mov [window_width],eax
mov eax,[ebx+70]
mov [window_status],eax
mcall 48,4
mov [skin_high],eax
ret
;---------------------------------------------------------------------
draw_window:
mcall 12, 1
; mcall 0, <20,620>, <20,460>, 0x03cccccc ; 0x805080D0, 0x005080D0
xor esi,esi
mcall 0, <20,620>, <20,460>, 0x43cccccc ; 0x805080D0, 0x005080D0
call get_window_param
; mov ecx,[temp_esi]
test [window_status],10b
jnz @f
mcall 71, 1 , header
; create_dir_name
; start_parameter
; file_name
; [temp_edi]
; header
; delete_file_data.name
; start_file_data.name
; start_parameter
; start_file_data.name
; read_icon_file.name
; read_file_features.name ;path ;header
 
cmp [window_high],180
jb @f
cmp [window_width],495
jb @f
 
; pusha
; mcall 4,<15,25>,0,read_folder.name,100
; popa
call draw_fbutton
 
; mov [left_panel_clear_all],1
 
call draw_left_panel
 
; mov [right_panel_clear_all],1
 
call draw_right_panel
call draw_device_button
call draw_left_select_disk_button
call draw_left_sort_button
call draw_right_select_disk_button
call draw_right_sort_button
call draw_menu_bar
call draw_buttons_panel
call draw_ATAPI_tray_control
; mcall 47,0x80000,[left_scroll_compens],<300, 5>,0xffffff
; call mouse.draw_data
; mcall 18, 7
; mov [temp_eax],eax
; mcall 47,0x80000,[active_process],<300, 5>,0xffffff
; mcall 47,0x80000,[left_marked_counter],<300, 5>,0xffffff
; mcall 47,0x80000,[right_marked_counter],<400, 5>,0xffffff
; mcall 47,0x80000,[sorting_low_limit],<100, 5>,0xffffff
; mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
; mcall 47,0x80000,[sorting_high_limit],<300, 5>,0xffffff
; mcall 47,0x80000,[dir_temp_counter],<400, 5>,0xffffff
 
; mcall 47,0x80000,[timer_tick],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_eax],<400, 5>,0xffffff
; mcall 47,0x80000,[temp_ebx],<400, 5>,0xffffff
; mcall 47,0x80000,[temp_ecx],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_ebx],<500, 5>,0xffffff
; mcall 47,0x80000,[ini_file_start],<100, 5>,0xffffff
; mcall 47,0x80000,[left_folder_data],<200, 5>,0xffffff
; mcall 47,0x80000,[right_folder_data],<300, 5>,0xffffff
; mcall 47,0x80000,[appl_memory],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_znak],<500, 5>,0xffffff
 
; mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
; mcall 47,0x80000,[temp_edi],<250, 5>,0xffffff
; mcall 47,0x80000,[temp_esi],<300, 5>,0xffffff
; mcall 47,0x80000,[temp_ecx],<350, 5>,0xffffff
; mcall 47,0x80000,[temp_znak],<400, 5>,0xffffff
 
; movzx ecx,[left_start_draw_cursor_line]
; mcall 47,0x40000, ,<300, 5>,0xffffff
; mcall 47,0x40000,[left_start_draw_line],<400, 5>,0xffffff
 
; mcall 47,0x40000,[window_width],<100, 5>,0xffffff
; mcall 47,0x40000,[window_high],<130, 5>,0xffffff
 
; mcall 47,0x80100,[left_panel_x],<200, 5>,0xffffff
; mcall 47,0x80100,[left_panel_y],<250, 5>,0xffffff
; mov edx,[temp_counter_dword_1]
; mcall 4,<150,3>,0x80000000
; mov edx,[temp_counter_dword]
; mcall 4,<5,3>,0x80000000
@@:
mcall 12, 2
ret
;temp_eax dd 0
;temp_ebx dd 0
;temp_ecx dd 0
;temp_edx dd 0
;temp_esi dd 0
;temp_edi dd 0
;temp_ebp dd 0
;temp_esp dd 0
;temp_znak dd 0
;temp_counter_dword_1 dd 0
;extension_size_1 dd 0
;timer_tick dd 0
;---------------------------------------------------------------------
prepare_load_data:
mov esi,path
mov edi,file_name
call copy_path
call get_file_size
test eax,eax
ret
;---------------------------------------------------------------------
prepare_load_data_1:
mov [read_file.return],eax
mov ebp,eax
prepare_load_data_4:
call load_file
test eax,eax
ret
;---------------------------------------------------------------------
prepare_load_data_2:
call add_application_memory
prepare_load_data_3:
call add_application_memory
mov eax,[file_features_temp_area+32]
mov [read_file.size],eax
ret
;---------------------------------------------------------------------
load_icon_and_convert_to_img:
mov ebx,icons_file_name
call prepare_load_data
jnz icon_error
call prepare_load_data_2
add eax,mem
call prepare_load_data_1
jnz icon_error
call convert_bmp_to_img
call sub_application_memory
ret
;---------------------------------------------------------------------
load_buttons_and_convert_to_img:
mov ebx,buttons_file_name
call prepare_load_data
jnz buttons_error
mov eax,[appl_memory]
mov [buttons_img_start],eax
call prepare_load_data_2
add eax,[buttons_img_start]
call prepare_load_data_1
jnz buttons_error
call convert_bmp_to_img
call sub_application_memory
ret
;---------------------------------------------------------------------
load_initiation_file:
mov ebx,ini_file_name
call prepare_load_data
jnz initiation_error
call prepare_load_data_3
mov eax,[appl_memory]
mov [left_folder_data],eax
sub eax,[read_file.size]
mov [read_file.return],eax
mov [ini_file_start],eax
call load_file
test eax,eax
jnz initiation_error
mov ebp,icons_associations
call search_star_and_end_tags
; cmp ebp,-1
; je .end
mov eax,[end_tag]
mov [icons_end_tag],eax
ret
;---------------------------------------------------------------------
add_memory_for_folders:
mov ecx,[appl_memory]
add ecx,304*32+32
mov [right_folder_data],ecx
add ecx,304*32+32
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
copy_path:
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,edi
; dec esi
@@:
std
lodsb
cmp al,'/'
jnz @b
mov edi,esi
add edi,2
mov esi,ebx
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
ret
;---------------------------------------------------------------------
copy_path_1:
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,ebx
mov [edi-1],byte '/'
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
ret
;---------------------------------------------------------------------
add_application_memory:
mov ecx,[file_features_temp_area+32]
.1:
add ecx,[appl_memory]
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
sub_application_memory:
mov ecx,[appl_memory]
sub ecx,[file_features_temp_area+32]
.1:
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
include 'key.inc'
;---------------------------------------------------------------------
include 'markfile.inc'
;---------------------------------------------------------------------
include 'button.inc'
;---------------------------------------------------------------------
include 'mouse.inc'
;---------------------------------------------------------------------
include 'openfile.inc'
;---------------------------------------------------------------------
include 'draw.inc'
;---------------------------------------------------------------------
include 'menu_bar.inc'
;---------------------------------------------------------------------
include 'menu_drv.inc'
;---------------------------------------------------------------------
include 'delete.inc'
;---------------------------------------------------------------------
include 'copy.inc'
;---------------------------------------------------------------------
include 'creatdir.inc'
;---------------------------------------------------------------------
include 'confirm.inc'
;---------------------------------------------------------------------
include 'err_wind.inc'
;---------------------------------------------------------------------
include 'detect.inc'
;---------------------------------------------------------------------
include 'conv_bmp.inc'
;---------------------------------------------------------------------
include 'tran_ini.inc'
;---------------------------------------------------------------------
include 'help.inc'
;---------------------------------------------------------------------
include 'convchar.inc'
;---------------------------------------------------------------------
include 'sort.inc'
;---------------------------------------------------------------------
include 'exit.inc'
;---------------------------------------------------------------------
include 'progrbar.inc'
;---------------------------------------------------------------------
include 'scroll.inc'
;---------------------------------------------------------------------
include 'file_inf.inc'
;---------------------------------------------------------------------
include 'text.inc'
;---------------------------------------------------------------------
I_END:
;---------------------------------------------------------------------
include 'data.inc'
;---------------------------------------------------------------------
mem:
/programs/fs/kfm/trunk/build.bat
0,0 → 1,2
fasm kfm.asm kfm
@pause
/programs/fs/kfm/trunk/button.inc
0,0 → 1,267
button:
mcall 17
.1:
cmp ah,101
je f_key_f1
cmp ah,102
je f_key_f2
cmp ah,103
je f_key_f3 ;sort_name
cmp ah,104
je f_key_f4 ;sort_type
cmp ah,105
je f_key_f5 ;sort_size
cmp ah,106
je f_key_f6 ;sort_date
cmp ah,107
je f_key_f7 ;create dir
cmp ah,108
je f_key_f8 ;delete_file
cmp ah,112
je f_key_f12
cmp ah,120
jne .121
mov esi,read_folder_device_name.rd
call copy_folder_name
jmp left_panel_read_folder
.121:
cmp ah,121
jne .122
mov esi,read_folder_device_name.fd
call copy_folder_name
jmp left_panel_read_folder
.122:
cmp ah,122
jne .123
mov esi,read_folder_device_name.hd0
call copy_folder_name
jmp left_panel_read_folder
.123:
cmp ah,123
jne .124
mov esi,read_folder_device_name.hd1
call copy_folder_name
jmp left_panel_read_folder
.124:
cmp ah,124
jne .125
mov esi,read_folder_device_name.hd2
call copy_folder_name
jmp left_panel_read_folder
.125:
cmp ah,125
jne .126
mov esi,read_folder_device_name.hd3
call copy_folder_name
jmp left_panel_read_folder
.126:
cmp ah,126
jne .127
mov esi,read_folder_device_name.cd0
call copy_folder_name
jmp left_panel_read_folder
.127:
cmp ah,127
jne .128
mov esi,read_folder_device_name.cd1
call copy_folder_name
jmp left_panel_read_folder
.128:
cmp ah,128
jne .129
mov esi,read_folder_device_name.cd2
call copy_folder_name
jmp left_panel_read_folder
.129:
cmp ah,129
jne .130
mov esi,read_folder_device_name.cd3
call copy_folder_name
jmp left_panel_read_folder
.130:
cmp ah,130
jne .131
mov esi,read_folder_device_name.rd
call copy_folder_name_1
jmp right_panel_read_folder
.131:
cmp ah,131
jne .132
mov esi,read_folder_device_name.fd
call copy_folder_name_1
jmp right_panel_read_folder
.132:
cmp ah,132
jne .133
mov esi,read_folder_device_name.hd0
call copy_folder_name_1
jmp right_panel_read_folder
.133:
cmp ah,133
jne .134
mov esi,read_folder_device_name.hd1
call copy_folder_name_1
jmp right_panel_read_folder
.134:
cmp ah,134
jne .135
mov esi,read_folder_device_name.hd2
call copy_folder_name_1
jmp right_panel_read_folder
.135:
cmp ah,135
jne .136
mov esi,read_folder_device_name.hd3
call copy_folder_name_1
jmp right_panel_read_folder
.136:
cmp ah,136
jne .137
mov esi,read_folder_device_name.cd0
call copy_folder_name_1
jmp right_panel_read_folder
.137:
cmp ah,137
jne .138
mov esi,read_folder_device_name.cd1
call copy_folder_name_1
jmp right_panel_read_folder
.138:
cmp ah,138
jne .139
mov esi,read_folder_device_name.cd2
call copy_folder_name_1
jmp right_panel_read_folder
.139:
cmp ah,139
jne .140
mov esi,read_folder_device_name.cd3
call copy_folder_name_1
jmp right_panel_read_folder
.140:
cmp ah,140
je draw_left_select_disk_menu
cmp ah,141
je draw_right_select_disk_menu
cmp ah,142
je left_sort_name
cmp ah,143
je left_sort_type
cmp ah,144
je left_sort_size
cmp ah,145
je left_sort_date
cmp ah,146
je right_sort_name
cmp ah,147
je right_sort_type
cmp ah,148
je right_sort_size
cmp ah,149
je right_sort_date
cmp ah,150
je exit_dir_1
cmp ah,151
je reload_dir
cmp ah,152
je create_directory
cmp ah,153
je copy_file_f5
cmp ah,154
je move_file_f6
cmp ah,157
je delete_file
cmp ah, 1
jne still
.exit:
mcall -1
;---------------------------------------------------------------------
reload_dir:
cmp [select_panel_counter],0
jne @f
call proc_read_left_folder
; mov [left_panel_clear_all],1
call draw_left_panel
jmp still
@@:
call proc_read_right_folder
; mov [right_panel_clear_all],1
call draw_right_panel
jmp still
;---------------------------------------------------------------------
reload_dir_all:
call proc_read_left_folder
call proc_read_right_folder
jmp red
;---------------------------------------------------------------------
exit_dir_1:
mov [exit_dir],1
jmp key_28.1
;---------------------------------------------------------------------
left_panel_read_folder:
mov [left_start_draw_cursor_line],0
jmp proc_read_folder
;---------------------------------------------------------------------
right_panel_read_folder:
mov [right_start_draw_cursor_line],0
jmp proc_read_folder_1
;---------------------------------------------------------------------
left_sort_name:
xor eax,eax
cmp [left_sort_flag],eax
je still
mov [left_sort_flag],eax
jmp left_sort_date.1
;---------------------------------------------------------------------
left_sort_type:
cmp [left_sort_flag],1
je still
mov [left_sort_flag],1
jmp left_sort_date.1
;---------------------------------------------------------------------
left_sort_size:
cmp [left_sort_flag],2
je still
mov [left_sort_flag],2
jmp left_sort_date.1
;---------------------------------------------------------------------
left_sort_date:
cmp [left_sort_flag],3
je still
mov [left_sort_flag],3
.1:
call draw_left_sort_button
call left_sort_files
; mov [left_panel_clear_all],1
call draw_left_panel
jmp still
;---------------------------------------------------------------------
right_sort_name:
xor eax,eax
cmp [right_sort_flag],eax
je still
mov [right_sort_flag],eax
jmp right_sort_date.1
;---------------------------------------------------------------------
right_sort_type:
cmp [right_sort_flag],1
je still
mov [right_sort_flag],1
jmp right_sort_date.1
;---------------------------------------------------------------------
right_sort_size:
cmp [right_sort_flag],2
je still
mov [right_sort_flag],2
jmp right_sort_date.1
;---------------------------------------------------------------------
right_sort_date:
cmp [right_sort_flag],3
je still
mov [right_sort_flag],3
.1:
call draw_right_sort_button
call right_sort_files
call draw_right_panel
jmp still
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/buttons.bmp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programs/fs/kfm/trunk/confirm.inc
0,0 → 1,146
;---------------------------------------------------------------------
confirmation_action:
mov [work_confirmation],0
mov [work_confirmation_yes],0
jmp .red
.red_1:
call draw_window
.red:
call draw_confirmation_button
call draw_confirmation_menu
.still:
mcall 10
cmp eax,1
je .red_1
cmp eax,2
je key_menu_confirmation
cmp eax,3
jne .still
mcall 17
cmp ah,161
je .no_del
cmp ah,160
je .del
cmp ah,1
jne .still
mcall -1
.del:
mov [work_confirmation_yes],1
.no_del:
call draw_window
.ret:
ret
;---------------------------------------------------------------------
draw_confirmation_button:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ebx,45
shl ecx,16
shl ebx,16
mov cx,15
mov bx,40
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
add ebx,50 shl 16
inc edx
int 0x40
ret
;---------------------------------------------------------------------
draw_confirmation_menu:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ecx,22
sub ebx,60
shl ecx,16
shl ebx,16
mov cx,44
mov bx,120
mcall 13, , ,0x6060ff ;0xff
push ebx ecx
add ebx,15 shl 16
add ecx,22 shl 16
mov bx,40
mov cx,15
mov edx,0
push ebx ecx
cmp [work_confirmation],0
jne @f
add ebx,50 shl 16
@@:
int 0x40
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,38
mov cx,13
mov edx,0x6060ff
int 0x40
pop ecx ebx
mov edx,0xff0000
cmp [work_confirmation],0
je @f
add ebx,50 shl 16
mov edx,0xaa00
@@:
int 0x40
pop ecx ebx
shr ecx,16
mov bx,cx
add ebx,15 shl 16+5
mcall 4, ,0x90ffffff,[confirmation_type]
add ebx,7 shl 16+20
mov edx,type_yes
int 0x40
add ebx,56 shl 16
mov edx,type_no
int 0x40
ret
;---------------------------------------------------------------------
key_menu_confirmation:
mcall 2
cmp [extended_key],1
je .extended_key
test al, al
jnz .end_1
cmp ah, 0xE0
jne @f
.end_1:
jmp confirmation_action.still
@@:
cmp ah,75
je confirmation_key_75.1
cmp ah,77
je confirmation_key_75.1
cmp ah,28
je confirmation_key_28.1
.end:
cmp ah,1
jne confirmation_action.still
ret
;---------------------------------------------------------------------
.extended_key:
mov [extended_key],0
confirmation_key_75:
cmp ah,75 ;arrow left
je .1
cmp ah,77 ; arrow right
jne confirmation_key_28
.1:
dec [work_confirmation]
and [work_confirmation],1
jmp confirmation_action.red
confirmation_key_28:
cmp ah,28 ; Enter
jne confirmation_action.still
.1:
cmp [work_confirmation],0
jne @f
mov [work_confirmation_yes],1
@@:
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/conv_bmp.inc
0,0 → 1,59
convert_bmp_to_img:
movzx eax,word [ebp+28]
mul dword [ebp+18]
mov ebx,32
div ebx
test edx,edx
je noaddword
inc eax
noaddword:
mov [dwps],eax ;dwps-doublewords per string
shl eax,2
mov [bps],eax ;bps-bytes per string
 
cmp dword [ebp+34],0
jne yespicsize ;if picture size is defined
mul dword [ebp+22]
mov dword [ebp+34],eax
 
yespicsize:
mov eax,ebp
push eax
sub eax, [ebp+2];file size
mov [soi],eax ;soi-start of image area for drawing
pop eax
add eax, [ebp+10]
mov [sop],eax ;sop-start of picture in file
add eax, [ebp+34]
mov [eop],eax ;eop-end of picture in file
mov eax, [ebp+18]
mov ebx,3
mul ebx ;3x pixels in eax
 
mov edi,[soi] ;initializing
mov esi,[eop]
sub esi,[bps]
 
 
nextstring:
push edi
mov ecx,[dwps]
cld
rep movsd
convert1:
pop edi
sub esi,[bps]
sub esi,[bps]
cmp esi,[sop]
jb nomorestring
add edi,eax
jmp nextstring
 
nomorestring:
ret
bps dd 0
dwps dd 0
soi dd 0
sop dd 0
eop dd 0
/programs/fs/kfm/trunk/convchar.inc
0,0 → 1,49
;---------------------------------------------------------------------
char_toupper:
; convert character to uppercase, using cp866 encoding
; in: al=symbol
; out: al=converted symbol
cmp al, 'a'
jb .ret
cmp al, 'z'
jbe .az
cmp al, ' '
jb .ret
cmp al, 'à'
jb .rus1
cmp al, 'ï'
ja .ret
; 0xE0-0xEF -> 0x90-0x9F
sub al, 'à'-''
.ret:
ret
.rus1:
; 0xA0-0xAF -> 0x80-0x8F
.az:
and al, not 0x20
ret
;---------------------------------------------------------------------
char_todown:
; convert character to uppercase, using cp866 encoding
; in: al=symbol
; out: al=converted symbol
cmp al, 'A'
jb .ret
cmp al, 'Z'
jbe .az
cmp al, '€'
jb .ret
cmp al, ''
jb .rus1
cmp al, 'Ÿ'
ja .ret
; 0x90-0x9F -> 0xE0-0xEF
add al, 'à'-''
.ret:
ret
.rus1:
; 0x80-0x8F -> 0xA0-0xAF
.az:
add al, 0x20
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/copy.inc
0,0 → 1,460
;---------------------------------------------------------------------
move_file_f6:
mov [move_file_flag],1
copy_file_f5:
call clear_file_buffer
xor edx,edx
xor eax,eax
; mov byte [copy_many_files],al
mov [current_progress_value],eax
mov [current_progress_value_1],eax
cmp [select_panel_counter],al
jne .right_1
cmp [left_marked_counter],eax
jne .confirmation_action
mov ax,[left_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[left_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[left_folder_data]
call prepare_data_7
call .copy_name
jmp editbox_copy_name
.right_1:
cmp [right_marked_counter],eax
jne .confirmation_action
mov ax,[right_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[right_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[right_folder_data]
call prepare_data_7
call .copy_name
jmp editbox_copy_name
.confirmation_action:
cmp [move_file_flag],0
je .copy
mov [confirmation_type],move_type
jmp @f
.copy:
mov [confirmation_type],copy_type
@@:
call confirmation_action
cmp [work_confirmation_yes],1
je copy_marked_files
mov [move_file_flag],0
jmp red
 
.copy_name:
mov esi,ebx
mov edi,create_dir_name
@@:
cld
lodsb
stosb
test al,al
jne @r
sub edi,create_dir_name
mov eax,edi
dec eax
mov edi, edit1
mov ed_size, eax
mov ed_pos, eax
default_box
cmp [select_panel_counter],0
jne .right_2
mov esi,read_folder_name
jmp @f
.right_2:
mov esi,read_folder_1_name
@@:
mov edi,file_name
call copy_path_1
ret
;-------------------------------------------------------------
editbox_copy_name:
mcall 66, 1, 0
jmp .red
.red_1:
call draw_window
.red:
call draw_editbox_copy_name
.still:
mcall 10
cmp eax,1
je .red_1
cmp eax,2
je .key_copy
cmp eax,3
je .button_copy
mouse_edit_box copy_editboxes
jmp .still
;-------------------------------------------------------------
.button_copy:
mov eax,17
int 0x40
test ah,ah
jz .still
cmp ah,160
je .exit_with_copy
cmp ah,161
je .exit_without_copy
cmp ah,1
jne .still
mcall -1
.exit_with_copy:
mov [max_progress_value],1
mov [draw_all_progressbar],1
call copy_file_1
cmp [move_file_flag],0
je @f
call del_file
test eax,eax
jz @f
call start_error_window_thread
@@:
call proc_read_left_folder
call proc_read_right_folder
.exit_without_copy:
mcall 66, 1, 1
mov [move_file_flag],0
jmp red
;-------------------------------------------------------------
.key_copy:
mov eax,2
int 0x40
cmp ah,13
je .exit_with_copy
cmp ah,27
je .exit_without_copy
key_edit_box copy_editboxes
jmp .still
;-------------------------------------------------------------
draw_editbox_copy_name:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ecx,30
sub ebx,87
shl ecx,16
shl ebx,16
mov cx,60
mov bx,174
mcall 13, , ,0x6060ff ;0xff
pusha
shr ebx,16
add ebx,10
shr ecx,16
add ecx,17
mov eax,copy_editboxes
mov dword [eax+4],ebx
mov dword [eax+8],ecx
draw_edit_box copy_editboxes
popa
pusha
add ebx,70 shl 16
add ecx,37 shl 16
mov cx,15
mov bx,40
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
add ebx,50 shl 16
inc edx
int 0x40
popa
 
push ebx ecx
add ebx,70 shl 16
add ecx,37 shl 16
mov bx,40
mov cx,15
mov edx,0
push ebx ecx
sub ecx,1 shl 16
sub ebx,1 shl 16
mov bx,42
mov cx,17
int 0x40
add ebx,50 shl 16
int 0x40
pop ecx ebx
mov edx,0xff7700
int 0x40
mov edx,0xaa00
add ebx,50 shl 16
int 0x40
pop ecx ebx
 
shr ecx,16
mov bx,cx
add ebx,60 shl 16+5
cmp [move_file_flag],0
je .copy
mov edx,move_type_1
jmp @f
.copy:
mov edx,copy_type_1
@@:
mcall 4, ,0x90ffffff
add ebx,18 shl 16+36
mov edx,type_yes
int 0x40
add ebx,56 shl 16
mov edx,type_no
int 0x40
ret
;-------------------------------------------------------------
copy_file_1:
mov ebx,create_dir_name
.1:
mov [error_pointer],ebx
cmp [select_panel_counter],0
je .right_2
mov esi,read_folder_name
jmp @f
.right_2:
mov esi,read_folder_1_name
@@:
mov edi,start_parameter
call copy_path_1
call get_file_size
test eax,eax
jnz .error
mov [read_file.Offset],eax
mov [add_save_file.Offset],eax
mov eax,[appl_memory]
mov [read_file.return],eax
mov [save_file.pointer],eax
mov [add_save_file.pointer],eax
mcall 18,16
mov ebx,[file_features_temp_area+32]
shr ebx,10
shr eax,2
cmp ebx,eax
jb .copy_for_one
shl eax,10
mov ecx,eax
mov [read_file.size],eax
mov [save_file.size],eax
mov [add_save_file.size],eax
 
cmp [copy_many_files], byte 1
je .continue_5
pusha
mov eax,[file_features_temp_area+32]
mov ebx,[save_file.size]
xor edx,edx
mov [current_progress_value],edx
mov [current_progress_value_1],edx
div ebx
test edx,edx
jz @f
inc eax
@@:
mov [max_progress_value],eax
popa
.continue_5:
call progress_bar_copy ;_1
call add_application_memory.1
cmp [copy_many_files],byte 0
jne @f
inc [current_progress_value]
call progress_bar_copy ;_1
@@:
call load_file
test eax,eax
jnz .error
cmp [copy_many_files],byte 0
jne @f
inc [current_progress_value_1]
call progress_bar_copy ;_1
@@:
call write_file
test eax,eax
jnz .error
.continue:
mov eax,[file_features_temp_area+32]
mov ebx,[save_file.size]
sub eax,ebx
cmp eax,ebx
jbe .end_copy_write
mov [file_features_temp_area+32],eax
add [add_save_file.Offset],ebx
add [read_file.Offset],ebx
cmp [copy_many_files],byte 0
jne @f
inc [current_progress_value]
call progress_bar_copy ;_1
@@:
call load_file
test eax,eax
jnz .error_1
cmp [copy_many_files],byte 0
jne @f
inc [current_progress_value_1]
call progress_bar_copy ;_1
@@:
call add_write_file
test eax,eax
jnz .error_1
jmp .continue
 
.end_copy_write:
mov [add_save_file.size],eax
add [add_save_file.Offset],ebx
mov [read_file.size],eax
add [read_file.Offset],ebx
inc [current_progress_value]
call progress_bar_copy
call load_file
test eax,eax
jnz .error_1
inc [current_progress_value_1]
call progress_bar_copy
call add_write_file
test eax,eax
jnz .error_1
mov ecx,[appl_memory]
sub ecx,[save_file.size]
call sub_application_memory.1
.exit:
ret
 
 
.copy_for_one:
call add_application_memory
mov eax,[file_features_temp_area+32]
mov [read_file.size],eax
inc [current_progress_value]
call progress_bar_copy
call load_file
test eax,eax
jnz .error
mov [save_file.size],ebx
inc [current_progress_value_1]
call progress_bar_copy
call write_file
test eax,eax
jnz .error
call sub_application_memory
ret
 
.error:
call start_error_window_thread
call sub_application_memory
add esp,4
mov [move_file_flag],0
jmp editbox_copy_name.exit_without_copy
 
.error_1:
call start_error_window_thread
mov ecx,[appl_memory]
sub ecx,[save_file.size]
call sub_application_memory.1
add esp,4
mov [move_file_flag],0
jmp editbox_copy_name.exit_without_copy
;-------------------------------------------------------------
copy_marked_files:
mov [copy_many_files],byte 1
mov [draw_all_progressbar],1
xor eax,eax
mov [current_progress_value],eax
mov [current_progress_value_1],eax
cmp [select_panel_counter],al
jne .right_1
mov eax,[left_marked_counter]
mov [max_progress_value],eax
mov ebp,[left_folder_block]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[left_folder_data]
add ebx,32+40
test [ebx-40],byte 0x10
jnz @f
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_1
.continue:
push ebx
mov esi,read_folder_name
mov edi,file_name
call copy_path_1
pop ebx
call copy_file_1.1
cmp [move_file_flag],0
je .continue_1
call del_file
test eax,eax
jz .continue_1
mov [move_file_flag],0
call start_error_window_thread
jmp reload_dir_all
.continue_1:
@@:
dec ebp
jnz .start
cmp [move_file_flag],0
je reload_dir_all
mov [left_start_draw_cursor_line],0
mov [move_file_flag],0
mov [copy_many_files],byte 0
jmp reload_dir_all
 
.right_1:
mov eax,[right_marked_counter]
mov [max_progress_value],eax
mov ebp,[right_folder_block]
.start_1:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[right_folder_data]
add ebx,32+40
test [ebx-40],byte 0x10
jnz @f
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue_2
cmp [ebx+2],byte 0
je .continue_3
.continue_2:
push ebx
mov esi,read_folder_1_name
mov edi,file_name
call copy_path_1
pop ebx
call copy_file_1.1
cmp [move_file_flag],0
je .continue_3
call del_file
test eax,eax
jz .continue_3
mov [move_file_flag],0
call start_error_window_thread
jmp reload_dir_all
.continue_3:
@@:
dec ebp
jnz .start_1
cmp [move_file_flag],0
je reload_dir_all
mov [right_start_draw_cursor_line],0
mov [move_file_flag],0
mov [copy_many_files],byte 0
jmp reload_dir_all
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/creatdir.inc
0,0 → 1,174
;-------------------------------------------------------------
create_directory:
call clear_file_buffer
mov edi, edit1
mov ed_size, dword 0
mov ed_pos, dword 0
default_box
mov [create_dir_name],byte 0
mcall 66, 1, 0
jmp .red
.red_1:
call draw_window
.red:
call draw_create_dir
.still:
mcall 10
cmp eax,1
je .red_1
cmp eax,2
je .key_create
cmp eax,3
je .button_create
mouse_edit_box create_editboxes
jmp .still
;-------------------------------------------------------------
.button_create:
mov eax,17
int 0x40
test ah,ah
jz .still
cmp ah,160
je .exit_with_create
cmp ah,161
je .exit_without_create
cmp ah,1
jne .still
mcall -1
.exit_with_create:
call create_directory_1
cmp [select_panel_counter],0
jne @f
call proc_read_left_folder
jmp .exit_without_create
@@:
call proc_read_right_folder
.exit_without_create:
mcall 66, 1, 1
jmp red
;-------------------------------------------------------------
.key_create:
mov eax,2
int 0x40
cmp ah,13
je .exit_with_create
cmp ah,27
je .exit_without_create
key_edit_box create_editboxes
jmp .still
;-------------------------------------------------------------
draw_create_dir:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ecx,30
sub ebx,87
shl ecx,16
shl ebx,16
mov cx,60
mov bx,174
mcall 13, , ,0x6060ff ;0xff
pusha
shr ebx,16
add ebx,10
shr ecx,16
add ecx,17
mov eax,create_editboxes
mov dword [eax+4],ebx
mov dword [eax+8],ecx
draw_edit_box create_editboxes
popa
pusha
add ebx,70 shl 16
add ecx,37 shl 16
mov cx,15
mov bx,40
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
add ebx,50 shl 16
inc edx
int 0x40
popa
 
push ebx ecx
add ebx,70 shl 16
add ecx,37 shl 16
mov bx,40
mov cx,15
mov edx,0
push ebx ecx
sub ecx,1 shl 16
sub ebx,1 shl 16
mov bx,42
mov cx,17
int 0x40
add ebx,50 shl 16
int 0x40
pop ecx ebx
mov edx,0xff7700
int 0x40
mov edx,0xaa00
add ebx,50 shl 16
int 0x40
pop ecx ebx
 
shr ecx,16
mov bx,cx
add ebx,30 shl 16+5
mcall 4, ,0x90ffffff,create_dir ;[confirmation_type]
add ebx,48 shl 16+36
mov edx,type_yes
int 0x40
add ebx,56 shl 16
mov edx,type_no
int 0x40
ret
;-------------------------------------------------------------
create_directory_1:
mov edx,create_dir_name
cmp [select_panel_counter],0
jne @f
mov esi,read_folder_name
jmp .start
@@:
mov esi,read_folder_1_name
.start:
mov edi,file_name
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov [edi-1], byte '/'
mov esi,edx
mov [error_pointer], edx ;start_file_data.name
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
call create_directory_f70
cmp eax,0
je @f
; mov ebx,0
; sub ebx,eax
; mov eax,ebx
call start_error_window_thread
@@:
; call create_directory_f70
ret
;-------------------------------------------------------------
clear_file_buffer:
xor eax,eax
mov edi,create_dir_name
mov ecx,256/4
cld
rep stosd
ret
;-------------------------------------------------------------
/programs/fs/kfm/trunk/data.inc
0,0 → 1,220
;---------------------------------------------------------------------
files_information_window_x: dd 100 shl 16 + 250
files_information_window_y: dd 100 shl 16 + 300
;---------------------------------------------------------------------
error_window_x: dd 100 shl 16 + 250
error_window_y: dd 100 shl 16 + 80
;---------------------------------------------------------------------
mouse_key_delay dd 100
;---------------------------------------------------------------------
files_counter dd 0
directories_counter dd 0
files_size:
.low dd 0
.high dd 0
;---------------------------------------------------------------------
open_param dd 0
;---------------------------------------------------------------------
PID dd 0
active_process dd 0
;---------------------------------------------------------------------
window_high dd 0
window_width dd 0
window_status dd 0
skin_high dd 0
fbutton_width dd 0
drawing_panel_folder db 0 ; 1-left, 2 right
left_panel_x:
.size_x dw 0
.start_x dw 0
left_panel_y:
.size_y dw 0
.start_y dw 0
right_panel_x:
.size_x dw 0
.start_x dw 0
right_panel_y:
.size_y dw 0
.start_y dw 0
;---------------------------------------------------------------------
mouse_position:
.y dw 0
.x dw 0
mouse_keys dd 0
mouse_keys_delta db 0
mouse_keys_delta_1 db 0
scroll_bar_event db 0
scroll_pointer db 0
scroll_pointer_1 db 0
mouse_keys_tick dd 0
mouse_scroll_data:
.vertical dw 0
.horizontal dw 0
left_scroll_compens dd 0
right_scroll_compens dd 0
;---------------------------------------------------------------------
device_present:
.rd db 0
.fd db 0
.hd0 db 0
.hd1 db 0
.hd2 db 0
.hd3 db 0
.cd0 db 0
.cd1 db 0
.cd2 db 0
.cd3 db 0
;device_present_text_counter dd 0
device_present_buffer:
.fd db 0
.hd_cd db 0
.hd0_part db 0
.hd1_part db 0
.hd2_part db 0
.hd3_part db 0
rb 4
;---------------------------------------------------------------------
copy_many_files:
db 0
max_progress_value dd 0
current_progress_value dd 0
current_progress_value_1 dd 0
temp_progress_value:
dd 0
draw_all_progressbar db 0
amount_output_numbers dd 0
;---------------------------------------------------------------------
max_panel_line dd 0
temp_panel_end dd 0
;---------------------------------------------------------------------
left_start_draw_line dd 0
left_folder_block dd 0
left_start_draw_cursor_line dw 0
;left_panel_clear_all db 0
;---------------------------------------------------------------------
right_start_draw_line dd 0
right_folder_block dd 0
right_start_draw_cursor_line dw 0
;right_panel_clear_all db 0
;---------------------------------------------------------------------
sort_counter dd 0
sorting_low_limit dd 0
sorting_high_limit dd 0
dir_or_file db 0
dir_temp_counter dd 0
dir_temp_counter_1 dd 0
draw_scroll_character db 0
nesting_direction db 0
;---------------------------------------------------------------------
left_marked_counter dd 0
right_marked_counter dd 0
marked_file db 0
marked_action db 0
mark_action_counter db 0
work_confirmation db 0
work_confirmation_yes db 0
delete_marked_yes db 0
inf_marked_yes db 0
confirmation_type dd 0
move_file_flag db 0
recursive_pointer dd 0
;---------------------------------------------------------------------
search_pre_folder db 0
not_clear_lines db 0
select_panel_counter db 0
extended_key db 0
start_draw_menu_cursor_line dd 0
press_enter_menu db 0
close_menu db 0
extension_start dd 0
extension_size dd 0
file_name_length dd 0
temp_counter_dword dd 0
error_pointer dd 0
file_system_error dd 0
exit_to_dir db 0
exit_dir db 0
end_tag dd 0
icons_end_tag dd 0
use_patch db 0
;---------------------------------------------------------------------
appl_memory dd 0
appl_memory_old dd 0
buttons_img_start dd 0
ini_file_start dd 0
left_folder_data dd 0
right_folder_data dd 0
;---------------------------------------------------------------------
shift_flag db 0
ctrl_flag db 0
alt_flag db 0
;---------------------------------------------------------------------
left_sort_flag dd 0
right_sort_flag dd 0
;---------------------------------------------------------------------
retrieved_devices_table_counter dd 0
temp_counter db 0
temp_counter_1 dd 0
;---------------------------------------------------------------------
; for EDITBOX
mouse_flag: dd 0x0
;---------------------------------------------------------------------
create_dir_name:
db 0
rb 256
;---------------------------------------------------------------------
retrieved_devices_table:
rb 10*100
;---------------------------------------------------------------------
procinfo:
rb 1024
;---------------------------------------------------------------------
type_name:
rb 512
;---------------------------------------------------------------------
type_size_string:
rb 32
;---------------------------------------------------------------------
type_files_string:
rb 16
;---------------------------------------------------------------------
type_directories_string:
rb 16
;---------------------------------------------------------------------
delete_dir_data:
rb 32
;---------------------------------------------------------------------
;stack
align 4
rb 512
stacktop:
;---------------------------------------------------------------------
align 4
rb 4096
thread_stack:
;---------------------------------------------------------------------
file_features_temp_area:
rb 40
;---------------------------------------------------------------------
initial_data:
rb 4096
;---------------------------------------------------------------------
path:
rb 4096
;---------------------------------------------------------------------
file_name:
rb 4096
;---------------------------------------------------------------------
start_parameter:
rb 4096
;---------------------------------------------------------------------
read_folder_name:
rb 4096
;---------------------------------------------------------------------
read_folder_1_name:
rb 4096
;---------------------------------------------------------------------
; for EDITBOX
;structure_of_potock:
; rb 1024
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/delete.inc
0,0 → 1,342
;---------------------------------------------------------------------
delete_file:
; call progress_bar
; jmp still
mov [confirmation_type],delete_type
call confirmation_action
cmp [work_confirmation_yes],1
jne red ;reload_dir
 
xor eax,eax
mov [files_counter],eax
mov [directories_counter],eax
mov [files_size.low],eax
mov [files_size.high],eax
call get_files_information
 
call delete_marked_files
cmp [delete_marked_yes],1
je .end_1 ;reload_dir_all
 
xor eax,eax
xor edx,edx
cmp [select_panel_counter],0
jne .right_1
mov ax,[left_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[left_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[left_folder_data]
call prepare_data_7
mov esi,read_folder_name ;read_folder.name
jmp .end
.right_1:
mov ax,[right_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[right_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[right_folder_data]
call prepare_data_7
mov esi,read_folder_1_name ;read_folder_1.name
.end:
mov [error_pointer],ebx
mov edi,file_name ;delete_file_data.name
call copy_path_1
test [ebx-40],byte 0x10
jz @f
push eax ebx
xor eax,eax
mov [current_progress_value],eax
; mov [delete_marked_yes],al
mov [draw_all_progressbar],1
call delete_dir
pop ebx eax
jmp .end_1
@@:
call del_file
test eax,eax
jz .end_1
call start_error_window_thread
jmp reload_dir_all
.end_1:
cmp [select_panel_counter],0
jne .right
call proc_read_left_folder
jmp red
.right:
call proc_read_right_folder
jmp red
;---------------------------------------------------------------------
delete_marked_files:
mov eax,[directories_counter]
add eax,[files_counter]
mov [max_progress_value],eax
xor eax,eax
mov [current_progress_value],eax
mov [delete_marked_yes],al
mov [draw_all_progressbar],1
cmp [select_panel_counter],al
jne .right_1
; mov eax,[left_marked_counter]
; mov [max_progress_value],eax
mov ebp,[left_folder_block]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[left_folder_data]
add ebx,32+40
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_1
.continue:
mov esi,read_folder_name ;read_folder.name
call prepare_data_6
.continue_1:
mov [delete_marked_yes],1
@@:
dec ebp
jnz .start
cmp [delete_marked_yes],0
je @f
mov [left_start_draw_cursor_line],0
@@:
ret
.right_1:
; mov eax,[right_marked_counter]
; mov [max_progress_value],eax
mov ebp,[right_folder_block]
.start_1:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[right_folder_data]
add ebx,32+40
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue_2
cmp [ebx+2],byte 0
je .continue_3
.continue_2:
mov esi,read_folder_1_name ;read_folder_1.name
call prepare_data_6
.continue_3:
mov [delete_marked_yes],1
@@:
dec ebp
jnz .start_1
cmp [delete_marked_yes],0
je @f
mov [right_start_draw_cursor_line],0
@@:
ret
;---------------------------------------------------------------------
prepare_data_6:
mov [error_pointer],ebx
mov edi,file_name ;delete_file_data.name
call copy_path_1
; inc [current_progress_value]
; call progress_bar_delete
test [ebx-40],byte 0x10
jz @f
call delete_dir
jmp .continue
@@:
inc [current_progress_value]
call progress_bar_delete
call del_file
test eax,eax
jz .continue ; .continue_1
call start_error_window_thread
add esp,8
.continue:
ret
;---------------------------------------------------------------------
prepare_data_7:
add ebx,32+40
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
jne .continue
add esp,4
jmp reload_dir
.continue:
ret
;---------------------------------------------------------------------
delete_dir:
pusha
mov [recursive_pointer],0
mov eax,[appl_memory]
mov [appl_memory_old],eax
.1:
mov [read_delete_dir_data.size],0
mov [read_delete_dir_data.return],delete_dir_data
call read_delete_dir
test eax,eax
jz @f
mov [error_pointer],file_name
call start_error_window_thread
popa
add esp,8+4
ret
@@:
mov eax,[delete_dir_data+8]
cmp eax,2
ja @f
inc [current_progress_value]
call progress_bar_delete
call del_file
test eax,eax
jz .end
mov [error_pointer],file_name
call start_error_window_thread
popa
add esp,8+4
ret
@@:
imul eax,304
add eax,32
mov ebx,eax
add ebx,[appl_memory_old]
cmp ebx,[appl_memory]
jbe @f
mov ecx,[appl_memory]
mov ecx,ebx
mov [appl_memory],ecx
mcall 64,1
@@:
mov eax,[delete_dir_data+8]
mov [read_delete_dir_data.size],eax
mov eax,[appl_memory_old]
mov [read_delete_dir_data.return],eax
call read_delete_dir
test eax,eax
jz @f
mov [error_pointer],file_name
call start_error_window_thread
popa
add esp,8+4
ret
@@:
call delete_dir_1
jc .1
.end:
call return_delete_path
dec [recursive_pointer]
cmp [recursive_pointer],0
jge .1
@@:
mov ecx,[appl_memory_old]
cmp [appl_memory],ecx
je @f
mov [appl_memory],ecx
mcall 64,1
@@:
popa
ret
;---------------------------------------------------------------------
delete_dir_1:
mov ebp,[appl_memory_old]
mov ebp,[ebp+8]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[appl_memory_old]
add ebx,32+40
cmp [ebx],byte '.'
jne @f
cmp [ebx+1],byte 0
je .continue_4
@@:
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_4
.continue:
mov esi,file_name
inc [recursive_pointer]
call copy_path_2
test [ebx-40],byte 0x10
jnz .continue_3
@@:
inc [current_progress_value]
call progress_bar_delete
call del_file
test eax,eax
jz .continue_1
mov [error_pointer],file_name
call start_error_window_thread
add esp,4
popa
add esp,8+4
ret
.continue_1:
dec [recursive_pointer]
call return_delete_path
dec ebp
jnz .start
.continue_4:
inc [current_progress_value]
call progress_bar_delete
call del_file
test eax,eax
jz .continue_2
call start_error_window_thread
add esp,4
popa
add esp,8+4
ret
.continue_2:
clc
ret
.continue_3:
stc
ret
;---------------------------------------------------------------------
return_delete_path:
mov edi,file_name
@@:
inc edi
cmp [edi],byte 0
jne @r
dec edi
@@:
dec edi
cmp [edi],byte '/'
jne @r
cmp edi,file_name
jbe @f
mov [edi],byte 0
@@:
ret
;---------------------------------------------------------------------
copy_path_2:
xor eax,eax
@@:
cld
lodsb
test al,al
jnz @b
mov edi,esi
mov [edi-1],byte '/'
mov esi,ebx
@@:
cld
lodsb
stosb
test al,al
jnz @b
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/detect.inc
0,0 → 1,137
device_detect: ; f1811
mcall 18,11,1,device_present_buffer
mov [device_present.rd],1
cmp [device_present_buffer.fd],0
je @f
mov [device_present.fd],1
@@:
mov al,[device_present_buffer.hd_cd]
test al,10b
je @f
mov [device_present.cd3],1
jmp .ide2
@@:
test al,1b
je @f
mov [device_present.hd3],1
.ide2:
@@:
test al,1000b
je @f
mov [device_present.cd2],1
jmp .ide1
@@:
test al,100b
je @f
mov [device_present.hd2],1
.ide1:
@@:
test al,100000b
je @f
mov [device_present.cd1],1
jmp .ide0
@@:
test al,10000b
je @f
mov [device_present.hd1],1
.ide0:
@@:
test al,10000000b
je @f
mov [device_present.cd0],1
jmp .end
@@:
test al,1000000b
je @f
mov [device_present.hd0],1
.end:
@@:
ret
;---------------------------------------------------------------------
device_detect_f70:
mov eax,[left_folder_data]
mov [read_folder.return],eax
mcall 70, read_folder
test eax,eax
jz @f
cmp eax,6
jne read_folder_error
@@:
mov [left_folder_block],ebx
mov [temp_counter_1],0
mov [retrieved_devices_table_counter],0
.start_temp_counter_1:
imul esi,[temp_counter_1],304
add esi,[left_folder_data]
add esi,32+40 ;[eax+32+40]
call copy_folder_name_1
mov eax,[right_folder_data]
mov [read_folder_1.return],eax
mcall 70, read_folder_1
test eax,eax
jz @f
cmp eax,6
jne read_folder_1_error
@@:
mov eax,[right_folder_data]
cmp [eax+4],dword 0
je .continue
mov [right_folder_block],ebx
mov ebp,0
.start_copy_device_patch:
imul edi,[retrieved_devices_table_counter],10
add edi,retrieved_devices_table
mov [edi],byte '/'
inc edi
imul esi,[temp_counter_1],304
add esi,[left_folder_data]
add esi,32+40 ;[eax+32+40]
call proc_copy_patch
imul esi,ebp,304
add esi,[right_folder_data]
add esi,32+40 ;[eax+32+40]
mov [edi-1],byte '/'
call proc_copy_patch
inc [retrieved_devices_table_counter]
inc ebp
cmp ebp,[right_folder_block]
jb .start_copy_device_patch
.continue:
inc [temp_counter_1]
mov eax,[temp_counter_1]
cmp eax,[left_folder_block]
jb .start_temp_counter_1
mov esi,retrieved_devices_table+1
call copy_folder_name
mov esi,retrieved_devices_table+3
mov ecx,0
@@:
add esi,8
cld
lodsw
inc ecx
cmp ecx,[retrieved_devices_table_counter]
ja @f
cmp ax,'hd'
jne @r
sub esi,2
call copy_folder_name_1
ret
@@:
; mov [read_folder_1.name+1],dword 0
; mov [read_folder_1_name+1],dword 0
mov esi,retrieved_devices_table+1
call copy_folder_name_1
; mov [read_folder_1_name],dword '/rd/'
; mov [read_folder_1_name+4],word '1/'
; mov [read_folder_1_name+6],byte 0
ret
;---------------------------------------------------------------------
proc_copy_patch:
@@:
cld
lodsb
stosb
cmp al,0
jne @r
ret
/programs/fs/kfm/trunk/docs/english/history.txt
0,0 → 1,311
KFM - Kolibri File Manager
 
13.10.07 - v0.47b - 27271b
Changes:
1) Is corrected bug connected with by mistreating of hard disks containing sections
with unsupported OS by file systems or not containing of sections.
2) New version EDITBOX. Is corrected bug - terminating or incorrect work of the application,
at simultaneous selection by the mouse and pressing the keys in EDITBOX.
 
11.10.07 - v0.47 - 27226b
Changes:
1) Navigating by the keyboard:
a) Alt+Enter - get for files and directories:
location, name, size, amount of files and directories
(including for a case of selection of separate files and directories).
Special thank <Lrz> and Mute, for the help in implementation of the procedure
of division of the whole 64 bit numbers, without usage of the FPU.
2) The progress of deleting now takes into account all nested files and directories.
3) Fix error - incorrect work physical scrollers of the mouse.
 
30.09.07 - v0.46 - 25458b
Changes:
1) Deleting of nested folders and files, the progress of deleting while takes
into account the selected files and folders only in the start directory.
 
26.08.07 - v0.45h - 24915b
Changes:
1) SCROLL BAR - size of a pointer changes on amount of files in the directory.
 
17.08.07 - v0.45g - 24617b
Changes:
1) Navigating by the mouse:
a) Processing physical scrollers of the mouse, in left and right panel.
 
09.08.07 - v0.45f - 24257b
Changes:
1) Navigating by the keyboard:
a) Open file in other application with parameter:
Shift + W - set background, mode: tile.
Ctrl + W - set background, mode: stretch.
(Options work only for JPEGVIEW version 0.18 or above)
 
04.08.07 - v0.45e - 24137b
Changes:
1) Menu of choice of the disk - navigating by the keyboard:
à) Insert - load tray of selected ATAPI device.
á) Delete - eject tray of selected ATAPI device.
 
02.08.07 - v0.45d - 24037b
Changes:
1) Fix bug - response of the application to events of the mice occurring concerning other application,
which window is on top of the window stack.
2) Fix bug - "consumption" of system resources at minimization of the window in the panel.
 
12.07.07 - v0.45b - 23977b
Changes:
1) Fix bug - ignoring the mouse on kernels above than 566 revision.
 
05.07.07 - v0.45a - 23993b
Changes:
1) Fix error appeared in v0.45 - the option buttons of devices did not work.
 
24.06.07 - v0.45 - 23988b
Changes:
1) Usage of output of the window without fill of a working area (Function 0, EDX bit C).
Now window does not blink at full redraw.
2) Limitation on a minimum size of the window: Xmin=495, Ymin=180.
Is entered because of failure display of units of the window at smaller sizes.
3) Fix error - terminate program when window is rolled up.
 
17.06.07 - v0.44k - 23421b
Changes:
1) The processing of click of the mouse - started applications is changed are output atop of the window KFM.
2) Opening directories and start of files on a double click.
 
03.06.07 - v0.44i - 23210b
Changes:
1) Capture of focal point active SCROLL BAR before release of a mouse button.
 
04.05.07 - v0.44h - 23066b
Changes:
1) The miss of focal point in EDITBOX, in some cases is eliminated.
(Thank < Lrz > for correction of the code)
 
27.04.07 - v0.44g - 23130b
Changes:
1) The order of indexing of icons in INI is changed and BMP files now first three are rigidly fixed. Before it was not, that could result in inaccuracies at replacement of the file with icons on alternate.
2) Acceleration of output on 20 % at paging contents of the directory, at the expense of optimization of the procedure of search of output icons in INI the file.
 
26.04.07 - v0.44e - 23126b
Changes:
1) The change SCROLL BAR - now at pressing extreme arrows moves not the cursor, and looked through contents of the directory are shifted on one unit.
(Thank Heavyiron for sentence of idea)
2) If the quantity of displayed units in the panel is less than greatest possible displayed value the code SCROLL BAR to become passive.
3) The error resulting in a split between a scroll box SCROLL BAR and lower arrow is eliminated.
4) The error resulting in absence corrections of a position of the cursor at deleting last on the list of the file in the directory, which size of less greatest possible displayed value is eliminated.
5) Small optimization of the code on a size.
 
22.04.07 - v0.44 - 23118b
Changes:
1) Complete implementation of a unit of handle SCROLL BAR.
2) Navigating by the mouse:
a) Choice of the active panel, click on the panel.
b) Installation of a selection cursor on the file or directory, click on the selected item.
c) Click on the placed selection cursor is equivalent to pressing the key ENTER.
d) Handle the menu of choice of the disk through the mouse.
 
21.04.07 - v0.43c - 21777b
Changes:
1) The new version EDITBOX (< Lrz >), are corrected error with residual selection of a name.
2) The acceptable colour of selection for EDITBOX, in the version 0.43 on an error was placed(installed) black.
3) Primary implementation of a unit of handle SCROLL BAR, without feedback.
 
16.04.07 - v0.43 - 20999b
Changes:
1) The new version EDITBOX (Maxxxx32 and < Lrz >), are eliminated error with editing of a name at creation, copying and moving of the file.
2) Mapping files is corrected: the files with the absent extension and simultaneously with a point in the end now are displayed completely.
3) Menu of choice of the disk - navigating by the keyboard:
a) Home and PageUp - cursor in a beginning of the list
b) End and PageDown - cursor in the end of the list
4) Optimization of output of bars of progress at copying, moving and deleting of files.
Now bars of progress are drawn completely only for the first time and at arrival of event redraw of the window.
 
01.04.07 - v0.42 - 20707b
Changes:
1) Draw progress of copying of files.
2) Draw progress of moving of files.
 
31.03.07 - v0.41 - 20091b
Changes:
1) Mapping progress of deleting of files.
2) Navigating by the keyboard:
a) F1 - help, hot shortcut keys.
3) Navigating by the mouse:
a) Button F1 - help, hot shortcut keys.
The presence of the file kfm_keys.txt in the directory is required, where the application is located.
4) New version the indirect component EDITBOX (Maxxxx32 and < Lrz >).
 
29.03.07 - v0.40a - 19708b
Changes:
1) Navigating by the keyboard:
a) F12 - program termination.
2) Navigating by the mouse:
a) Button F12 - program termination.
 
28.03.07 - v0.40 - 19603b
Changes:
1) Moving the selected and single files - the selected directories are ignored.
2) Navigating by the keyboard:
a) F6 - moving of the file from the active panel in opposite.
b) Ctrl+A and Ctrl + (NumPad (+) Up) - selection of all files and directories in the active panel, except for the directory '..'
c) Ctrl + (NumPad (-) Up) - to deselect of all files and directories in the active panel, except for the directory '..'
d) Ctrl + (NumPad (*) Up) - to invert selection of all files and directories in the active panel, except for the directory '..'
3) Navigating by the mouse:
a) Button F6 - moving of the file from the active panel in opposite.
b) The button of the main panel " To move the file " - moving of the file from the active panel in opposite.
 
27.03.07 - v0.39 - 18778b
Changes:
1) Copying the selected files - the selected directories are ignored.
2) Final elimination error with selection of files.
 
24.03.07 - v0.38 - 18510b
Changes:
1) Copying files exceeding a size of the free RAM.
The memory for the buffer of copying is backed up at the rate of 25 % from free memory of the RAM at the moment of a beginning of copying.
If the file size less than 25 % of the free RAM a size of the buffer is equal to a file size.
 
20.03.07 - v0.37b - 18239b
Changes:
1) The error is corrected, when the colour of last file in the directory did not vary at selection by the key Insert.
2) Navigating by the mouse:
Buttons of the main panel:
a) " To create the directory " - creation of the directory in the active panel.
b) " To copy the file " - copying file from the active panel in opposite.
 
17.03.07 - v0.37 - 18157b
Changes:
1) The single copying of files (for one pass) for editing the name of the file is used of indirect components EDITBOX, thank to the authors: Maxxxx32 and <Lrz>, for saving of time in development KFM.
2) Navigating by the keyboard:
a) F5 - copying file from the active panel in opposite.
3) Navigating by the mouse:
b) Button F5 - copying file from the active panel in opposite.
 
16.03.07 - v0.36 - 17338b
Changes:
1) The creation of the directory, for input of the name of the directory is used of indirect components EDITBOX, thank to the authors: Maxxxx32 and <Lrz>, for saving of time in development KFM.
2) Navigating by the keyboard:
a) F7 - creation of the directory in the active panel.
3) Navigating by the mouse:
a) Button F7 - creation of the directory in the active panel.
 
13.03.07 - v0.35f - 15667b
Changes:
1) Jamming the cursor on last page is eliminated at paging End and PageDown.
 
11.03.07 - v0.35e - 15590b
Changes:
1) The button " to reboot the directory " now redraw only active panel.
2) The flicker because of superfluous plottings is eliminated at achievement of the end of the directory by keys End and PageDown.
3) Small optimization of the code on a size.
 
08.03.07 - v0.35b - 15602b
Changes:
1) Optimization of usage of area of paths to files.
2) The error - output of the cursor for limits of the screen is corrected at return from the unwrapped mode of the window.
 
04.03.07 - v0.35 - 21540b
Changes:
1) Procedure of search of the end of section in INI the file.
2) Search and output of icons through associations in INI the file.
3) Optimization of the code on a size.
4) Navigating by the keyboard:
a) F4 - editing of the file in the indirect application, association in INI the file.
5) Navigating by the mouse:
a) Button F4 - editing of the file in the indirect application, association in INI the file.
 
01.03.07 - v0.34b - 23030b
Changes:
1) The miss of the menu of confirmation of deleting of files is corrected at activation of the window of other application.
2) Navigating by the mouse:
a) Button F8 - deleting of the file.
 
18.02.07 - v0.34 - 22870b
Changes:
1) Deleting the selected files.
 
17.02.07 - v0.33b - 22841b
Changes:
1) Menu of confirmation of deleting of files.
 
14.02.07 - v0.33 - 22494b
Changes:
1) Selection of files by red colour.
2) Single deleting of files.
3) Navigating by the keyboard:
a) Delete and F8 - the deleting of the file, on which is the cursor.
b) Insert - the selection by red colour of the file, on which is the cursor and cursor update on 1 position downwards.
 
06.02.07 - v0.32 - 20581b
Changes:
1) Increase of speed of sorting on extensions on 10 %.
2) Error handling of a file system.
3) Button of the main panel: exit from the directory, reboot the directory.
4) Navigating by the keyboard:
a) Ctrl+R - repeated loading of contents of the directory in the active panel
 
28.01.07 - v0.30 - 19555b
Changes:
1) Preprocessing contents of the directory.
2) Acceleration of sorting of contents of the directory on names and extensions.
3) Sorting contents of the directory according a size of files.
4) Sorting contents of the directory by date of modification of files.
5) Navigating by the keyboard:
a) Ctrl+F3 - sorting according names, for the active panel
b) Ctrl+F4 - sorting according extensions, for the active panel
c) Ctrl+F5 - sorting according a size, for the active panel
d) Ctrl+F6 - sorting by date of modification, for the active panel
 
27.01.07 - v0.27 - 18985b
Changes:
1) Sorting contents of the directory according extensions.
 
22.01.07 - v0.25 - 18718b
Changes:
1) Sorting contents of the directory according names.
 
13.01.07 - v0.22e - 17898b
Changes:
1) The new icons for some types of files are added.
2) The output of icons for some types of graphics files is added.
3) Sorting contents of the directory on folders and directories.
 
11.01.07 - v0.22c - 16877b
Changes:
1) The track from the menu of choice of the disk remaining after it, "empty" completion is eliminated, in a case if quantity of files displayed in the directory not it is enough for overwriting a menu display.
 
10.01.07 - v0.22b - 16849b
Changes:
1) The handler of keys in the menu of choice of the disk (Alt+F1, F2) is corrected.
Now menu correctly reacts on activated NumLock.
 
07.01.07 - v0.22 - 16835b
Changes:
1) Dynamic allocation of memory for contents of the directory of the left and right panel.
2) Correct allocation of the cursor at an output from the directory in the parent directory.
 
05.01.07 - v0.18- 16064b
Changes:
1) The flicker is eliminated at cursor update in limits of the panel,
(The flicker appears only on a bar of the cursor)
2) The flicker is reduced at cursor update for limits of the panel,
3) Navigating by the keyboard:
a) Home - in a beginning of the directory,
b) End - in the end of the directory.
4) The error in the procedure is corrected
Opening of files on the extension.
 
29.12.06 - v0.1 - 15411b
Changes:
1) Interface 50 %,
2) Navigating by the keyboard:
a) Up arrow and downwards - cursor update of selection,
b) PageUp and PageDown - page upwards and downwards,
c) Alt+F1 (F2), for choice of the disk of the left (right) panel
3) Start of the applications (Enter),
4) Opening files on the extension (Enter),
5) Loading of files of icons (BMP) both adjustments (INI), and dynamic allocation of memory for them.
 
18.10.06 - beginning of the project
Changes: no anything!
/programs/fs/kfm/trunk/docs/english/kfm_keys.txt
0,0 → 1,43
Controlling keyboard shortcuts in KFM - Kolibri File Manager v0.47.
 
In panels:
1) Cursor update on the active panel:
a) Up arrow and downwards (including keyboards, located in an additional part,) - cursor update on one position upwards or downwards. á) PageUp - page paging upwards.
b) PageDown - page paging downwards.
c) Home - in a beginning of the directory with files.
d) End - in the end of the directory with files.
2) Tab - change of the active panel.
3) Enter - operation with the file on which position there is a selection cursor: à) an input(entrance) in a folder.
a) Start of the program.
b) To open the file in the registered application, according to a contents of the file kfm.ini, unit " < > files associations ".
4) Alt+F1 - call of the menu of choice of the disk displayed on the left panel.
5) Alt+F2 - call of the menu of choice of the disk displayed on the right panel.
6) Sorting files in the active panel:
a) Ctrl+F3 - sorting according names.
b) Ctrl+F4 - sorting according extensions.
c) Ctrl+F5 - sorting according a size.
d) Ctrl+F6 - sorting by date of modification.
7) Ctrl+R - repeated loading of contents of the directory in the active panel.
8) Delete and F8 - the deleting of the file on which is the cursor.
9) Insert - the selection by red colour of the file on which is the cursor and cursor update on 1 position downwards.
10) F4 - to open the file for editing in the registered application, according to a contents of the file kfm.ini, unit " < > files association1 ".
11) F7 - creation of the directory in the active panel.
12) F5 - copying file from the active panel in opposite.
13) F6 - moving of the file from the active panel in opposite.
14) Ctrl+A and Ctrl + (NumPad (+) Up) - selection of all files and directories in the active panel, except for the directory '..'
15) Ctrl + (NumPad (-) Up) - to deselect of all files and directories in the active panel, except for the directory '..'
16) Ctrl + (NumPad (*) Up) - to invert selection of all files and directories in the active panel, except for the directory '..'
17) F12 - program termination.
18) F1 - help, hot shortcut keys. The presence of the file kfm_keys.txt in the directory is required where the application is located.
19) Open file in other application with parameter:
à) Shift + W - set background, mode: tile.
á) Ctrl + W - set background, mode: stretch.
20) Alt+Enter - get for files and directories: location, name, size, amount of files and directories (including for a case of selection of separate files and directories).
 
In the menu of choice of the disk:
1) Up arrow and down arrow (including keys, located in an additional part of keyboard) - cursor update on one position upwards or downwards.
2) Enter - the choice of the disk on which position is a selection cursor.
3) Home and PageUp - cursor in a beginning of the list
4) End and PageDown - cursor in the end of the list.
5) Insert - load tray of selected ATAPI device.
6) Delete - eject tray of selected ATAPI device.
/programs/fs/kfm/trunk/docs/english
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/trunk/docs/russian/dos_kolibri/history.txt
0,0 → 1,343
KFM - Kolibri File Manager
 
13.10.07 - v0.47b - 27271b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­ ¡ £ á¢ï§ ­­ë© á ­¥¢¥à­®© ®¡à ¡®âª®© ¦¥áâª¨å ¤¨áª®¢ ᮤ¥à¦ é¨å
à §¤¥«ë á ­¥¯®¤¤¥à¦¨¢ ¥¬ë¬¨ Ž‘ ä ©«®¢ë¬¨ á¨á⥬ ¬¨ ¨«¨ ­¥ ᮤ¥à¦ é¨¬¨
à §¤¥«®¢.
2) ®¢ ï ¢¥àá¨ï EDITBOX. ˆá¯à ¢«¥­ ¡ £ - § ¢¥à襭¨¥ ¨«¨ ­¥ª®à४⭠ï à ¡®â 
¯à¨«®¦¥­¨ï, ¯à¨ ®¤­®¢à¥¬¥­­®¬ ¢ë¤¥«¥­¨¨ ¬ëèìî ¨ ­ ¦ â¨¨ ª« ¢¨è ¢ EDITBOX.
 
11.10.07 - v0.47 - 27226b
ˆ§¬¥­¥­¨ï:
1) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) Alt+Enter - ¯®«ã祭¨¥ ¤«ï ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©:
à á¯®«®¦¥­¨ï, ­ §¢ ­¨ï, à §¬¥à , ª®«¨ç¥á⢠ ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©
(¢ ⮬ ç¨á«¥ ¨ ¤«ï á«ãç ï ¢ë¤¥«¥­¨ï ®â¤¥«ì­ëå ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©).
Žâ¤¥«ì­®¥ ᯠᨡ® <Lrz> ¨ Mute, §  ¯®¬®éì ¢ ॠ«¨§ æ¨¨ ¯à®æ¥¤ãàë
¤¥«¥­¨ï 楫ëå 64 ¡¨â­ëå ç¨á¥«, ¡¥§ ¨á¯®«ì§®¢ ­¨ï ᮯà®æ¥áá®à .
2) à®£à¥áá 㤠«¥­¨ï ⥯¥àì ãç¨â뢠¥â ¢á¥ ¢«®¦¥­­ë¥ ä ©«ë ¨ ¤¨à¥ªâ®à¨¨.
3) ˆá¯à ¢«¥­ £«îª á¢ï§ ­­ë© á ­¥¢¥à­®© ®¡à ¡®âª®© áªà®««¥à  ¬ëè¨.
 
30.09.07 - v0.46 - 25458b
ˆ§¬¥­¥­¨ï:
1) “¤ «¥­¨¥ ¢«®¦¥­­ëå ¯ ¯®ª ¨ ä ©«®¢, ¯à®£à¥áá 㤠«¥­¨ï ¯®ª  ãç¨â뢠¥â
¢ë¤¥«¥­­ë¥ ä ©«ë ¨ ¯ ¯ª¨ ⮫쪮 ¢ த¨â¥«ì᪮© ¤¨à¥ªâ®à¨¨.
 
26.08.07 - v0.45h - 24915b
ˆ§¬¥­¥­¨ï:
1) SCROLL BAR - à §¬¥à ¡¥£ã­ª  § ¢¨á¨â ®â ª®«¨ç¥á⢠ ä ©«®¢ ¢ ¤¨à¥ªâ®à¨¨.
 
17.08.07 - v0.45g - 24617b
ˆ§¬¥­¥­¨ï:
1) ­ ¢¨£ æ¨ï ¬ëèìî:
a) Ž¡à ¡®âª  䨧¨ç¥áª¨å áªà®««¥à®¢ ¬ëè¨, ¢ «¥¢®© ¨ ¯à ¢®© ¯ ­¥«¨.
 
09.08.07 - v0.45f - 24257b
ˆ§¬¥­¥­¨ï:
1) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) Žâªàëâì ä ©« ¢ áâ®à®­­¥¬ ¯à¨«®¦¥­¨¨ á ¯ à ¬¥â஬:
Shift + W - ãáâ ­®¢¨âì ä®­®¢ë© à¨áã­®ª à ¡®ç¥£® á⮫ , ०¨¬ ®âà¨á®¢ª¨ § ¬®áâ¨âì.
Ctrl + W - ãáâ ­®¢¨âì ä®­®¢ë© à¨áã­®ª à ¡®ç¥£® á⮫ , ०¨¬ ®âà¨á®¢ª¨ à áâï­ãâì.
(„ ­­ë¥ ®¯æ¨¨ ¯®ª  à ¡®â îâ «¨èì ¤«ï JPEGVIEW ¢¥àᨨ 0.18 ¨«¨ ¢ëè¥)
 
04.08.07 - v0.45e - 24137b
ˆ§¬¥­¥­¨ï:
1) Œ¥­î ¢ë¡®à  ¤¨áª  - ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Insert - § £à㧨âì «®â®ª ¢ë¡à ­­®£® ATAPI ¯à¨¢®¤ .
¡) Delete - ¢ë£à㧨âì «®â®ª ¢ë¡à ­­®£® ATAPI ¯à¨¢®¤ .
 
02.08.07 - v0.45d - 24037b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­ ¡ £ - ॠªæ¨ï ¯à¨«®¦¥­¨ï ­  ᮡëâ¨ï ¬ëè¨, ¯à®¨á室ï騥
®â­®á¨â¥«ì­® ¤à㣮£® ¯à¨«®¦¥­¨ï, ®ª­® ª®â®à®£® ­ å®¤¨âáï ­  ¢¥à設¥ ®ª®­­®£® á⥪ .
2) ˆá¯à ¢«¥­ ¡ £ - "¯®¦¨à ­¨¥" à¥áãàᮢ á¨áâ¥¬ë ¯à¨ ¬¨­¨¬¨§ æ¨¨ ®ª­  ¢ ¯ ­¥«ì.
 
12.07.07 - v0.45b - 23977b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­ ¡ £ ¯à¨¢®¤¨¢è¨© ª ¨£­®à¨à®¢ ­¨î ¬ëè¨ ­  ï¤à å ¢ëè¥ 566 ॢ¨§¨¨.
 
05.07.07 - v0.45a - 23993b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­ ¡ £ ¯®ï¢¨¢è¨©áï ¢ v0.45 - ­¥ à ¡®â «¨ ª­®¯ª¨ ¢ë¡®à  ãáâனáâ¢.
 
24.06.07 - v0.45 - 23988b
ˆ§¬¥­¥­¨ï:
1) ˆá¯®«ì§®¢ ­¨¥ ¢ë¢®¤  ®ª­  ¡¥§ § ªà è¨¢ ­¨ï à ¡®ç¥© ®¡« á⨠(”ã­ªæ¨ï 0, EDX ¡¨â C).
’¥¯¥àì ®ª­® ­¥ ¬®à£ ¥â ¯à¨ ¯®«­®© ¯¥à¥à¨á®¢ª¥.
2) Ž£à ­¨ç¥­¨¥ ­  ¬¨­¨¬ «ì­ë© à §¬¥à ®ª­ : Xmin=495, Ymin=180.
‚¢¥¤¥­® ¨§-§  ­¥¢¥à­®£® ®â®¡à ¦¥­¨ï í«¥¬¥­â®¢ ®ª­  ¯à¨ ¬¥­ìè¨å à §¬¥à å.
3) ˆá¯à ¢«¥­  ®è¨¡ª , ¯à¨¢®¤ïé ï ª § ¢¥à襭¨î ¯à®£à ¬¬ë ¯à¨ ᢮à ç¨¢ ­¨¨ ®ª­  ¢ § £®«®¢®ª.
 
17.06.07 - v0.44k - 23421b
ˆ§¬¥­¥­¨ï:
1) ˆ§¬¥­¥­  ®¡à ¡®âª  饫窠 ¬ëè¨ - § ¯ã᪠¥¬ë¥ ¯à¨«®¦¥­¨ï ¢ë¢®¤ïâáï ¯®¢¥àå ®ª­  KFM.
2) Žâªà뢠­¨¥ ¤¨à¥ªâ®à¨© ¨ § ¯ã᪠䠩«®¢ ¯® ¤¢®©­®¬ã 饫çªã.
 
03.06.07 - v0.44i - 23210b
ˆ§¬¥­¥­¨ï:
1) ‡ å¢ â 䮪ãá   ªâ¨¢­ë¬ SCROLL BAR ¤® ®â¯ã᪠­¨ï ª­®¯ª¨ ¬ëè¨.
 
04.05.07 - v0.44h - 23066b
ˆ§¬¥­¥­¨ï:
1) “áâà ­¥­® ¯à®¯ ¤ ­¨¥ 䮪ãá  ¢ EDITBOX, ¢ ­¥ª®â®àëå á«ãç ïå.
(‘¯ á¨¡® <Lrz> §  ¨á¯à ¢«¥­¨¥ ª®¤ )
 
27.04.07 - v0.44g - 23130b
ˆ§¬¥­¥­¨ï:
1) ˆ§¬¥­¥­ ¯®à冷ª ­ã¬¥à æ¨¨ ¨ª®­®ª ¢ INI ¨ BMP ä ©« å, ⥯¥àì ¯¥à¢ë¥ âਠïîâáï
¦¥á⪮ 䨪á¨à®¢ ­­ë¬¨.  ­¥¥ í⮣® ­¥ ¡ë«®, çâ® ¬®£«® ¯à¨¢¥á⨠ª ­¥â®ç­®áâï¬
¯à¨ § ¬¥­¥ ä ©«  á ¨ª®­ª ¬¨ ­   «ìâ¥à­ â¨¢­ë©.
2) “᪮७¨¥ ¢ë¢®¤  ­  20% ¯à¨ «¨áâ ­¨¨ ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨, §  áç¥â ®¯â¨¬¨§ æ¨¨
¯à®æ¥¤ãàë ¯®¨áª  ¢ë¢®¤¨¬ëå ¨ª®­®ª ¢ INI ä ©«¥.
 
26.04.07 - v0.44e - 23126b
ˆ§¬¥­¥­¨ï:
1) ˆ§¬¥­¥­¨¥ SCROLL BAR - ⥯¥àì ¯à¨ ­ ¦ â¨¨ ªà ©­¨å áâ५®ª ¯¥à¥¬¥é ¥âáï ­¥ ªãàá®à,
  ᤢ¨£ ¥âáï ­  ®¤¨­ í«¥¬¥­â ¯à®á¬ âਢ ¥¬®¥ ᮤ¥à¦¨¬®¥ ¤¨à¥ªâ®à¨¨.
(‘¯ á¨¡® Heavyiron §  ¯à¥¤«®¦¥­¨¥ ¨¤¥¨)
2) …᫨ ª®«¨ç¥á⢮ ®â®¡à ¦ ¥¬ëå í«¥¬¥­â®¢ ¢ ¯ ­¥«¨ ¬¥­ìè¥ ç¥¬ ¬ ªá¨¬ «ì­® ¢®§¬®¦­®¥
®â®¡à ¦ ¥¬®¥ §­ ç¥­¨¥ ª®¤ SCROLL BAR áâ ­®¢¨âìáï ¯ áᨢ­ë¬.
3) “áâà ­¥­  ®è¨¡ª , ¯à¨¢®¤¨¢è ï ª § §®àã ¬¥¦¤ã ¡¥£ã­ª®¬ SCROLL BAR ¨ ­¨¦­¥© áâ५ª®©.
4) “áâà ­¥­  ®è¨¡ª , ¯à¨¢®¤¨¢è ï ª ®âáãâáâ¢¨î ª®à४樨 ¯®«®¦¥­¨ï ªãàá®à  ¯à¨ 㤠«¥­¨¨
¯®á«¥¤­¥£® ¯® ᯨáªã ä ©«  ¢ ¤¨à¥ªâ®à¨¨, à §¬¥à ª®â®à®© ¬¥­¥¥ ¬ ªá¨¬ «ì­® ¢®§¬®¦­®£®
®â®¡à ¦ ¥¬®£® §­ ç¥­¨ï.
5) ¥¡®«ìè ï ®¯â¨¬¨§ æ¨ï ª®¤  ¯® à §¬¥àã.
 
22.04.07 - v0.44 - 23118b
ˆ§¬¥­¥­¨ï:
1) ®«­ ï ॠ«¨§ æ¨ï í«¥¬¥­â  ã¯à ¢«¥­¨ï SCROLL BAR.
2) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) ‚ë¡®à  ªâ¨¢­®© ¯ ­¥«¨, ª«¨ª®¬ ¯® ¯ ­¥«¨.
¡) “áâ ­®¢ª  ªãàá®à  ¢ë¤¥«¥­¨ï ­  ä ©« ¨«¨ ¤¨à¥ªâ®à¨î, ª«¨ª®¬ ¯® ¢ë¡¨à ¥¬®¬ã ¯ã­ªâã.
¢) Š«¨ª ¯® ãáâ ­®¢«¥­­®¬ã ªãàá®à㠢뤥«¥­¨ï à ¢­®§­ ç¥­ ­ ¦ â¨î ª« ¢¨è¨ ENTER.
£) “¯à ¢«¥­¨¥ ¬¥­î ¢ë¡®à  ¤¨áª  ¯à¨ ¯®¬®é¨ ¬ëè¨.
 
21.04.07 - v0.43á - 21777b
ˆ§¬¥­¥­¨ï:
1) ®¢ ï ¢¥àá¨ï EDITBOX (<Lrz>), ¨á¯à ¢«¥­ë £«îª¨ c ®áâ â®ç­ë¬ ¢ë¤¥«¥­¨¥¬ ¨¬¥­¨.
2) à¨¥¬«¥¬ë© 梥⠢뤥«¥­¨ï ¤«ï EDITBOX, ¢ ¢¥àᨨ 0.43 ¯® ®è¨¡ª¥ ¡ë« ãáâ ­®¢«¥­ ç¥à­ë©.
3) ¥à¢¨ç­ ï ॠ«¨§ æ¨ï í«¥¬¥­â  ã¯à ¢«¥­¨ï SCROLL BAR, ¡¥§ ®¡à â­®© á¢ï§¨.
 
16.04.07 - v0.43 - 20999b
ˆ§¬¥­¥­¨ï:
1) ®¢ ï ¢¥àá¨ï EDITBOX (Maxxxx32 ¨ <Lrz>), ãáâà ­¥­ë £«îª¨ á ¯à ¢ª®© ¨¬¥­¨
¯à¨ ᮧ¤ ­¨¨, ª®¯¨à®¢ ­¨¨ ¨ ¯¥à¥¬¥é¥­¨¨ ä ©« .
2) ˆá¯à ¢«¥­® ®â®¡à ¦¥­¨¥ ä ©«®¢: ä ©«ë á ®âáãâáâ¢ãî騬 à áè¨à¥­¨¥¬ ¨ ®¤­®¢à¥¬¥­­®
á â®çª®© ¢ ª®­æ¥ ⥯¥àì ®â®¡à ¦ îâáï ¯®«­®áâìî.
3) Œ¥­î ¢ë¡®à  ¤¨áª  - ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Home ¨ PageUp - ªãàá®à ¢ ­ ç «® ᯨ᪠
¡) End ¨ PageDown - ªãàá®à ¢ ª®­¥æ ᯨ᪠
4) Ž¯â¨¬¨§ æ¨ï ¢ë¢®¤  ¯®«®á ¯à®£à¥áá  ¯à¨ ª®¯¨à®¢ ­¨¨, ¯¥à¥¬¥é¥­¨¥ ¨ 㤠«¥­¨¨ ä ©«®¢.
’¥¯¥àì ¯®«®áë ¯à®£à¥áá  à¨áãîâáï ¯®«­®áâìî «¨èì ¢ ¯¥à¢ë© à § ¨ ¯à¨ ¯®áâ㯫¥­¨¨
ᮡëâ¨ï ¯¥à¥à¨á®¢ª¨ ®ª­ .
 
01.04.07 - v0.42 - 20707b
ˆ§¬¥­¥­¨ï:
1) Žâ®¡à ¦¥­¨¥ ¯à®£à¥áá  ª®¯¨à®¢ ­¨ï ä ©«®¢.
2) Žâ®¡à ¦¥­¨¥ ¯à®£à¥áá  ¯¥à¥¬¥é¥­¨ï ä ©«®¢.
 
31.03.07 - v0.41 - 20091b
ˆ§¬¥­¥­¨ï:
1) Žâ®¡à ¦¥­¨¥ ¯à®£à¥áá  ã¤ «¥­¨ï ä ©«®¢.
2) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) F1 - á¯à ¢ª , £®àï稥 ª®¬¡¨­ æ¨¨ ª« ¢¨è.
3) ­ ¢¨£ æ¨ï ¬ëèìî:
a) Š­®¯ª  F1 - á¯à ¢ª , £®àï稥 ª®¬¡¨­ æ¨¨ ª« ¢¨è.
’ॡã¥âáï ­ «¨ç¨¥ ä ©«  kfm_keys.txt ¢ ¤¨à¥ªâ®à¨¨, £¤¥ à á¯®«®¦¥­® ¯à¨«®¦¥­¨¥.
4) ®¢ ï ¢¥àá¨ï áâ®à®­­¥£® ª®¬¯®­¥­â  EDITBOX (Maxxxx32 ¨ <Lrz>).
 
29.03.07 - v0.40a - 19708b
ˆ§¬¥­¥­¨ï:
1) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) F12 - § ¢¥à襭¨¥ à ¡®âë ¯à®£à ¬¬ë.
2) ­ ¢¨£ æ¨ï ¬ëèìî:
a) Š­®¯ª  F12 - § ¢¥à襭¨¥ à ¡®âë ¯à®£à ¬¬ë.
 
28.03.07 - v0.40 - 19603b
ˆ§¬¥­¥­¨ï:
1) ¥à¥¬¥é¥­¨¥ ¢ë¤¥«¥­­ëå ¨ ®¤¨­®ç­ëå ä ©«®¢, ¢ë¤¥«¥­­ë¥ ¤¨à¥ªâ®à¨¨ ¨£­®à¨àãîâáï.
2) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) F6 - ¯¥à¥¬¥é¥­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
¡) Ctrl+A ¨ Ctrl+(NumPad(+) Up) - ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨,
§  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
¢) Ctrl+(NumPad(-) Up) - á­ïâì ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨,
§  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
£) Ctrl+(NumPad(*) Up) - ¨­¢¥àâ¨à®¢ âì ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨,
§  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
3) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) Š­®¯ª  F6 - ¯¥à¥¬¥é¥­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
¡) Š­®¯ª  £« ¢­®© ¯ ­¥«¨ "¥à¥¬¥áâ¨âì ä ©«" -
¯¥à¥¬¥é¥­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
 
27.03.07 - v0.39 - 18778b
ˆ§¬¥­¥­¨ï:
1) Š®¯¨à®¢ ­¨¥ ¢ë¤¥«¥­­ëå ä ©«®¢, ¢ë¤¥«¥­­ë¥ ¤¨à¥ªâ®à¨¨ ¨£­®à¨àãîâáï.
2) Žª®­ç â¥«ì­®¥ ãáâà ­¥­¨¥ £«îª®¢ á ¢ë¤¥«¥­¨¥¬ ä ©«®¢.
 
24.03.07 - v0.38 - 18510b
ˆ§¬¥­¥­¨ï:
1) Š®¯¨à®¢ ­¨¥ ä ©«®¢ ¯à¥¢ëè îé¨å à §¬¥à ᢮¡®¤­®£® Ž‡“.
 ¬ïâì ¤«ï ¡ãä¥à  ª®¯¨à®¢ ­¨ï १¥à¢¨àã¥âáï ¨§ à áç¥â  25%
®â ᢮¡®¤­®© ¯ ¬ï⨠Ž‡“ ¢ ¬®¬¥­â ­ ç «  ª®¯¨à®¢ ­¨ï.
…᫨ à §¬¥à ä ©«  ¬¥­¥¥ 25% ᢮¡®¤­®£® Ž‡“ à §¬¥à ¡ãä¥à  à ¢¥­ à §¬¥àã ä ©« .
 
20.03.07 - v0.37b - 18239b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­  ®è¨¡ª , ª®£¤  ­¥ ¨§¬¥­ï«áï 梥⠯®á«¥¤­¥£® ä ©«  ¢ ¤¨à¥ªâ®à¨¨
¯à¨ ¢ë¤¥«¥­¨¨ ª« ¢¨è¥© Insert.
2) ­ ¢¨£ æ¨ï ¬ëèìî:
Š­®¯ª¨ £« ¢­®© ¯ ­¥«¨:
 ) "‘®§¤ âì ¤¨à¥ªâ®à¨î" - ᮧ¤ ­¨¥ ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨.
¡) "Š®¯¨à®¢ âì ä ©«" - ª®¯¨à®¢ ­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
 
17.03.07 - v0.37 - 18157b
ˆ§¬¥­¥­¨ï:
1) Ž¤¨­®ç­®¥ ª®¯¨à®¢ ­¨¥ ä ©«®¢ (§  ®¤¨­ ¯à®å®¤) ¤«ï । ªâ¨à®¢ ­¨ï ­ §¢ ­¨ï ä ©« 
¨á¯®«ì§ã¥âáï áâ®à®­­¨© ª®¬¯®­¥­â EDITBOX, ᯠᨡ®  ¢â®à ¬: Maxxxx32 ¨ <Lrz>,
§  íª®­®¬¨î ¢à¥¬¥­¨ ¢ ࠧࠡ®âª¥ KFM.
2) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) F5 - ª®¯¨à®¢ ­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
3) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) Š­®¯ª  F5 - ª®¯¨à®¢ ­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
 
16.03.07 - v0.36 - 17338b
ˆ§¬¥­¥­¨ï:
1) ‘®§¤ ­¨¥ ¤¨à¥ªâ®à¨¨, ¤«ï ¢¢®¤  ­ §¢ ­¨ï ¤¨à¥ªâ®à¨¨ ¨á¯®«ì§ã¥âáï
áâ®à®­­¨© ª®¬¯®­¥­â EDITBOX, ᯠᨡ®  ¢â®à ¬: Maxxxx32 ¨ <Lrz>,
§  íª®­®¬¨î ¢à¥¬¥­¨ ¢ ࠧࠡ®âª¥ KFM.
2) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
a) F7 - ᮧ¤ ­¨¥ ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨.
3) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) Š­®¯ª  F7 - ᮧ¤ ­¨¥ ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨.
 
13.03.07 - v0.35f - 15667b
ˆ§¬¥­¥­¨ï:
1) “áâà ­¥­® § áâॢ ­¨¥ ªãàá®à  ­  ¯®á«¥¤­¥© áâà ­¨æ¥ ¯à¨ «¨áâ ­¨¨ End ¨ PageDown.
 
11.03.07 - v0.35e - 15590b
ˆ§¬¥­¥­¨ï:
1) Š­®¯ª  "¯¥à¥§ £à㧨âì ¤¨à¥ªâ®à¨î" ⥯¥àì ¯¥à¥à¨á®¢ë¢ ¥â ⮫쪮  ªâ¨¢­ãî ¯ ­¥«ì.
2) “áâà ­¥­® ¬¥àæ ­¨¥ ¨§-§  «¨è­¨å ¯à®à¨á®¢®ª ¯à¨ ¤®á⨦¥­¨¨ ª®­æ  ¤¨à¥ªâ®à¨¨
ª« ¢¨è ¬¨ End ¨ PageDown.
3) ¥¡®«ìè ï ®¯â¨¬¨§ æ¨ï ª®¤  ¯® à §¬¥àã.
 
08.03.07 - v0.35b - 15602b
ˆ§¬¥­¥­¨ï:
1) Ž¯â¨¬¨§ æ¨ï ¨á¯®«ì§®¢ ­¨ï ®¡« á⨠¯ã⥩ ª ä ©« ¬.
2) ˆá¯à ¢«¥­  ®è¨¡ª  - ¢ë室 ªãàá®à  §  ¯à¥¤¥«ë íªà ­ 
¯à¨ ¢®§¢à â¥ ¨§ à §¢¥à­ã⮣® ०¨¬  ®ª­ .
 
04.03.07 - v0.35 - 21540b
ˆ§¬¥­¥­¨ï:
1) à®æ¥¤ãà  ¯®¨áª  ª®­æ  ᥪ樨 ¢ INI ä ©«¥.
2) ®¨áª ¨ ¢ë¢®¤ ¨ª®­®ª ç¥à¥§  áá®æ¨ æ¨¨ ¢ INI ä ©«¥.
3) Ž¯â¨¬¨§ æ¨ï ª®¤  ¯® à §¬¥àã.
4) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) F4 - । ªâ¨à®¢ ­¨¥ ä ©«  ¢ áâ®à®­­¥¬ ¯à¨«®¦¥­¨¨,
 áá®æ¨ æ¨¨ ¢ INI ä ©«¥.
5) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) Š­®¯ª  F4 - । ªâ¨à®¢ ­¨¥ ä ©«  ¢ áâ®à®­­¥¬ ¯à¨«®¦¥­¨¨,
 áá®æ¨ æ¨¨ ¢ INI ä ©«¥.
 
01.03.07 - v0.34b - 23030b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­® ¯à®¯ ¤ ­¨¥ ¬¥­î ¯®¤â¢¥à¦¤¥­¨ï 㤠«¥­¨ï ä ©«®¢
¯à¨  ªâ¨¢ æ¨¨ ®ª­  ¤à㣮£® ¯à¨«®¦¥­¨ï.
2) ­ ¢¨£ æ¨ï ¬ëèìî:
 ) Š­®¯ª  F8 - 㤠«¥­¨¥ ä ©« .
 
18.02.07 - v0.34 - 22870b
ˆ§¬¥­¥­¨ï:
1) “¤ «¥­¨¥ ¢ë¤¥«¥­­ëå ä ©«®¢.
 
17.02.07 - v0.33b - 22841b
ˆ§¬¥­¥­¨ï:
1) Œ¥­î ¯®¤â¢¥à¦¤¥­¨ï 㤠«¥­¨ï ä ©«®¢.
 
14.02.07 - v0.33 - 22494b
ˆ§¬¥­¥­¨ï:
1) ‚뤥«¥­¨¥ ä ©«®¢ ªà á­ë¬ 梥⮬.
2) Ž¤¨­®ç­®¥ 㤠«¥­¨¥ ä ©«®¢.
3) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Delete ¨ F8 - 㤠«¥­¨¥ ä ©« , ­  ª®â®à®¬ ­ å®¤¨âáï ªãàá®à.
¡) Insert - ¢ë¤¥«¥­¨¥ ªà á­ë¬ 梥⮬ ä ©« , ­  ª®â®à®¬ ­ å®¤¨âáï ªãàá®à
¨ ¯¥à¥¬¥é¥­¨¥ ªãàá®à  ­  1 ¯®§¨æ¨î ¢­¨§.
 
06.02.07 - v0.32 - 20581b
ˆ§¬¥­¥­¨ï:
1) “¢¥«¨ç¥­¨¥ ᪮à®á⨠á®àâ¨à®¢ª¨ ¯® à áè¨à¥­¨ï¬ ­  10%.
2) Ž¡à ¡®âª  ®è¨¡®ª ä ©«®¢®© á¨á⥬ë.
3) Š­®¯ª¨ £« ¢­®© ¯ ­¥«¨: ¢ë室 ¨§ ¤¨à¥ªâ®à¨¨, ¯¥à¥§ £à㧨âì ¤¨à¥ªâ®à¨î.
4) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Ctrl+R - ¯®¢â®à­ ï § £à㧪  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨
 
28.01.07 - v0.30 - 19555b
ˆ§¬¥­¥­¨ï:
1) à¥¤¢ à¨â¥«ì­ ï ®¡à ¡®âª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨.
2) “᪮७¨¥ á®àâ¨à®¢ª¨ ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¯® ¨¬¥­ ¬ ¨ à áè¨à¥­¨ï¬.
3) ‘®àâ¨à®¢ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¯® à §¬¥àã ä ©«®¢.
4) ‘®àâ¨à®¢ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¯® ¤ â¥ ¬®¤¨ä¨ª æ¨¨ ä ©«®¢.
5) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Ctrl+F3 - á®àâ¨à®¢ª  ¯® ¨¬¥­ ¬, ¤«ï  ªâ¨¢­®© ¯ ­¥«¨
¡) Ctrl+F4 - á®àâ¨à®¢ª  ¯® à áè¨à¥­¨ï¬, ¤«ï  ªâ¨¢­®© ¯ ­¥«¨
¢) Ctrl+F5 - á®àâ¨à®¢ª  ¯® à §¬¥àã, ¤«ï  ªâ¨¢­®© ¯ ­¥«¨
£) Ctrl+F6 - á®àâ¨à®¢ª  ¯® ¤ â¥ ¬®¤¨ä¨ª æ¨¨, ¤«ï  ªâ¨¢­®© ¯ ­¥«¨
 
27.01.07 - v0.27 - 18985b
ˆ§¬¥­¥­¨ï:
1) ‘®àâ¨à®¢ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¯® à áè¨à¥­¨ï¬.
 
22.01.07 - v0.25 - 18718b
ˆ§¬¥­¥­¨ï:
1) ‘®àâ¨à®¢ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¯® ¨¬¥­ ¬.
 
13.01.07 - v0.22e - 17898b
ˆ§¬¥­¥­¨ï:
1) „®¡ ¢«¥­ë ­®¢ë¥ ¨ª®­ª¨ ¤«ï ­¥ª®â®àëå ⨯®¢ ä ©«®¢.
2) „®¡ ¢«¥­ ¢ë¢®¤ ¨ª®­®ª ¤«ï ­¥ª®â®àëå ⨯®¢ £à ä¨ç¥áª¨å ä ©«®¢.
3) ‘®àâ¨à®¢ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ­  ¯ ¯ª¨ ¨ ¤¨à¥ªâ®à¨¨.
 
11.01.07 - v0.22c - 16877b
ˆ§¬¥­¥­¨ï:
1) “áâà ­¥­ á«¥¤ ®â ¬¥­î ¢ë¡®à  ¤¨áª  ®áâ î騩áï ¯®á«¥ ¥£®,
"¯ãá⮣®" § ¢¥à襭¨ï, ¢ á«ãç ¥ ¥á«¨ ª®«¨ç¥á⢮ ä ©«®¢ ®â®¡à ¦ ¥¬ëå
¢ ª â «®£¥ ­¥ ¤®áâ â®ç­® ¤«ï § â¨à ­¨ï ¨§®¡à ¦¥­¨ï ¬¥­î.
 
10.01.07 - v0.22b - 16849b
ˆ§¬¥­¥­¨ï:
1) ˆá¯à ¢«¥­ ®¡à ¡®â稪 ª« ¢¨è ¢ ¬¥­î ¢ë¡®à  ¤¨áª  (Alt+F1, F2).
’¥¯¥àì ¬¥­î ª®à४⭮ ॠ£¨àã¥â ­   ªâ¨¢¨à®¢ ­­ë© NumLock.
 
07.01.07 - v0.22 - 16835b
ˆ§¬¥­¥­¨ï:
1) ¤¨­ ¬¨ç¥áª®¥ ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠¤«ï ᮤ¥à¦¨¬®£® ª â «®£ 
«¥¢®© ¨ ¯à ¢®© ¯ ­¥«¨.
2) ¯à ¢¨«ì­®¥ à §¬¥é¥­¨¥ ªãàá®à  ¯à¨ ¢ë室¥ ¨§ ª â «®£ 
¢ த¨â¥«ì᪨© ª â «®£.
 
05.01.07 - v0.18- 16064b
ˆ§¬¥­¥­¨ï:
1) ãáâà ­¥­® ¬¥àæ ­¨¥ ¯à¨ ¯¥à¥¬¥é¥­¨¨ ªãàá®à  ¢ ¯à¥¤¥« å ¯ ­¥«¨,
(¬¥àæ ­¨¥ ¯à®ï¢«ï¥âáï «¨èì ­  ¯®«®á¥ ªãàá®à )
2) 㬥­ì襭® ¬¥àæ ­¨¥ ¯à¨ ¯¥à¥¬¥é¥­¨¨ ªãàá®à  §  ¯à¥¤¥«ë ¯ ­¥«¨,
3) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) Home - ¢ ­ ç «® ª â «®£ ,
¡) End - ¢ ª®­¥æ ª â «®£ .
4) ¨á¯à ¢«¥­  ®è¨¡ª  ¢ ¯à®æ¥¤ãà¥
®âªàëâ¨ï ä ©«®¢ ¯® à áè¨à¥­¨î.
 
29.12.06 - v0.1 - 15411b
ˆ§¬¥­¥­¨ï:
1) ¨­â¥à䥩á 50%,
2) ­ ¢¨£ æ¨ï ª« ¢¨ âãன:
 ) áâ५ª¨ ¢¢¥àå ¨ ¢­¨§ - ¯¥à¥¬¥é¥­¨ï ªãàá®à  ¢ë¤¥«¥­¨ï,
¡) PageUp ¨ PageDown - áâà ­¨æ  ¢¢¥àå ¨ ¢­¨§,
¢) Alt+F1 (F2), ¤«ï ¢ë¡®à  ¤¨áª  «¥¢®© (¯à ¢®©) ¯ ­¥«¨
3) § ¯ã᪠¯à¨«®¦¥­¨© (Enter),
4) ®âªàë⨥ ä ©«®¢ ¯® à áè¨à¥­¨î (Enter),
5) ¯®¤£à㧪  ä ©«®¢ ¨ª®­®ª (BMP) ¨ ­ áâ஥ª (INI),
¨ ¤¨­ ¬¨ç¥áª®¥ ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠¤«ï ­¨å.
 
18.10.06 - ­ ç «® ¯à®¥ªâ 
ˆ§¬¥­¥­¨ï: ¨ç¥£®!
/programs/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt
0,0 → 1,46
“¯à ¢«ïî騥 á®ç¥â ­¨ï ª« ¢¨è ¢ KFM - Kolibri File Manager v0.47.
 
‚ ¯ ­¥«ïå:
1) ¥à¥¬¥é¥­¨¥ ªãàá®à  ¯®  ªâ¨¢­®© ¯ ­¥«¨:
 ) áâ५ª¨ ¢¢¥àå ¨ ¢­¨§ (¢ ⮬ ç¨á«¥ à á¯®«®¦¥­­ë¥ ¢ ¤®¯®«­¨â¥«ì­®© ç á⨠ª« ¢¨ âãàë) - ¯¥à¥¬¥é¥­¨¥ ªãàá®à  ­  ®¤­ã ¯®§¨æ¨î ¢¢¥àå ¨«¨ ¢­¨§.
¡) PageUp - ¯®áâà ­¨ç­®¥ «¨áâ ­¨¥ ¢¢¥àå.
¢) PageDown - ¯®áâà ­¨ç­®¥ «¨áâ ­¨¥ ¢­¨§.
£) Home - ¢ ­ ç «® ª â «®£  á ä ©« ¬¨.
¤) End - ¢ ª®­¥æ ª â «®£  á ä ©« ¬¨.
2) Tab - ¨§¬¥­¥­¨¥  ªâ¨¢­®© ¯ ­¥«¨.
3) Enter - ¤¥©á⢨ï á ä ©«®¬ ­  ¯®§¨æ¨¨ ª®â®à®£® ­ å®¤¨âáï ªãàá®à ¢ë¤¥«¥­¨ï:
 ) ¢å®¤ ¢ ¯ ¯ªã.
¡) § ¯ã᪠¯à®£à ¬¬ë.
¢) ®âªàëâì ä ©« ¢ ¯à®¯¨á ­­®¬ ¯à¨«®¦¥­¨¨, ᮣ« á­® ᮤ¥à¦ ­¨î ä ©«  kfm.ini, à §¤¥«  "<>files associations".
4) Alt+F1 - ¢ë§®¢ ¬¥­î ¢ë¡®à  ¤¨áª , ®â®¡à ¦ ¥¬®£® ­  «¥¢®© ¯ ­¥«¨.
5) Alt+F2 - ¢ë§®¢ ¬¥­î ¢ë¡®à  ¤¨áª , ®â®¡à ¦ ¥¬®£® ­  ¯à ¢®© ¯ ­¥«¨.
6) á®àâ¨à®¢ª  ä ©«®¢ ¢  ªâ¨¢­®© ¯ ­¥«¨:
 ) Ctrl+F3 - á®àâ¨à®¢ª  ¯® ¨¬¥­ ¬.
¡) Ctrl+F4 - á®àâ¨à®¢ª  ¯® à áè¨à¥­¨ï¬.
¢) Ctrl+F5 - á®àâ¨à®¢ª  ¯® à §¬¥àã.
£) Ctrl+F6 - á®àâ¨à®¢ª  ¯® ¤ â¥ ¬®¤¨ä¨ª æ¨¨.
7) Ctrl+R - ¯®¢â®à­ ï § £à㧪  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨.
8) Delete ¨ F8 - 㤠«¥­¨¥ ä ©«  ­  ª®â®à®¬ ­ å®¤¨âáï ªãàá®à.
9) Insert - ¢ë¤¥«¥­¨¥ ªà á­ë¬ 梥⮬ ä ©«  ­  ª®â®à®¬ ­ å®¤¨âáï ªãàá®à ¨ ¯¥à¥¬¥é¥­¨¥ ªãàá®à  ­  1 ¯®§¨æ¨î ¢­¨§.
10) F4 - ®âªàëâì ä ©« ¤«ï । ªâ¨à®¢ ­¨ï ¢ ¯à®¯¨á ­­®¬ ¯à¨«®¦¥­¨¨, ᮣ« á­® ᮤ¥à¦ ­¨î ä ©«  kfm.ini, à §¤¥«  "<>files association1".
11) F7 - ᮧ¤ ­¨¥ ¤¨à¥ªâ®à¨¨ ¢  ªâ¨¢­®© ¯ ­¥«¨.
12) F5 - ª®¯¨à®¢ ­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
13) F6 - ¯¥à¥¬¥é¥­¨¥ ä ©«  ¨§  ªâ¨¢­®© ¯ ­¥«¨ ¢ ¯à®â¨¢®¯®«®¦­ãî.
14) Ctrl+A ¨ Ctrl+(NumPad(+) Up) - ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨, §  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
15) Ctrl+(NumPad(-) Up) - á­ïâì ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨, §  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
16) Ctrl+(NumPad(*) Up) - ¨­¢¥àâ¨à®¢ âì ¢ë¤¥«¥­¨¥ ¢á¥å ä ©«®¢ ¨ ¤¨à¥ªâ®à¨© ¢  ªâ¨¢­®© ¯ ­¥«¨, §  ¨áª«î祭¨¥¬ ¤¨à¥ªâ®à¨¨ '..'
17) F12 - § ¢¥à襭¨¥ à ¡®âë ¯à®£à ¬¬ë.
18) F1 - á¯à ¢ª , £®àï稥 ª®¬¡¨­ æ¨¨ ª« ¢¨è. ’ॡã¥âáï ­ «¨ç¨¥ ä ©«  kfm_keys.txt ¢ ¤¨à¥ªâ®à¨¨ £¤¥ à á¯®«®¦¥­® ¯à¨«®¦¥­¨¥.
19) Žâªàëâì ä ©« ¢ áâ®à®­­¥¬ ¯à¨«®¦¥­¨¨ á ¯ à ¬¥â஬:
 ) Shift + W - ãáâ ­®¢¨âì ä®­®¢ë© à¨áã­®ª à ¡®ç¥£® á⮫ , ०¨¬ ®âà¨á®¢ª¨ § ¬®áâ¨âì.
¡) Ctrl + W - ãáâ ­®¢¨âì ä®­®¢ë© à¨áã­®ª à ¡®ç¥£® á⮫ , ०¨¬ ®âà¨á®¢ª¨ à áâï­ãâì.
20) Alt+Enter - ¯®«ã祭¨¥ ¤«ï ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©: à á¯®«®¦¥­¨ï, ­ §¢ ­¨ï, à §¬¥à , ª®«¨ç¥á⢠ ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©
(¢ ⮬ ç¨á«¥ ¨ ¤«ï á«ãç ï ¢ë¤¥«¥­¨ï ®â¤¥«ì­ëå ä ©«®¢ ¨ ¤¨à¥ªâ®à¨©).
 
‚ ¬¥­î ¢ë¡®à  ¤¨áª :
1) áâ५ª¨ ¢¢¥àå ¨ ¢­¨§ (¢ ⮬ ç¨á«¥ à á¯®«®¦¥­­ë¥ ¢ ¤®¯®«­¨â¥«ì­®© ç á⨠ª« ¢¨ âãàë) - ¯¥à¥¬¥é¥­¨¥ ªãàá®à  ­  ®¤­ã ¯®§¨æ¨î ¢¢¥àå ¨«¨ ¢­¨§.
2) Enter - ¢ë¡®à ¤¨áª  ­  ¯®§¨æ¨¨ ª®â®à®£® ­ å®¤¨âáï ªãàá®à ¢ë¤¥«¥­¨ï.
3) Home ¨ PageUp - ªãàá®à ¢ ­ ç «® ᯨ᪠
4) End ¨ PageDown - ªãàá®à ¢ ª®­¥æ ᯨ᪠.
5) Insert - § £à㧨âì «®â®ª ¢ë¡à ­­®£® ATAPI ¯à¨¢®¤ .
6) Delete - ¢ë£à㧨âì «®â®ª ¢ë¡à ­­®£® ATAPI ¯à¨¢®¤ .
/programs/fs/kfm/trunk/docs/russian/dos_kolibri
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/trunk/docs/russian/windows/history.txt
0,0 → 1,343
KFM - Kolibri File Manager
 
13.10.07 - v0.47b - 27271b
Èçìåíåíèÿ:
1) Èñïðàâëåí áàã ñâÿçàííûé ñ íåâåðíîé îáðàáîòêîé æåñòêèõ äèñêîâ ñîäåðæàùèõ
ðàçäåëû ñ íåïîääåðæèâàåìûìè ÎÑ ôàéëîâûìè ñèñòåìàìè èëè íå ñîäåðæàùèìè
ðàçäåëîâ.
2) Íîâàÿ âåðñèÿ EDITBOX. Èñïðàâëåí áàã - çàâåðøåíèå èëè íåêîððåêòíàÿ ðàáîòà
ïðèëîæåíèÿ, ïðè îäíîâðåìåííîì âûäåëåíèè ìûøüþ è íàæàòèè êëàâèø â EDITBOX.
 
11.10.07 - v0.47 - 27226b
Èçìåíåíèÿ:
1) íàâèãàöèÿ êëàâèàòóðîé:
a) Alt+Enter - ïîëó÷åíèå äëÿ ôàéëîâ è äèðåêòîðèé:
ðàñïîëîæåíèÿ, íàçâàíèÿ, ðàçìåðà, êîëè÷åñòâà ôàéëîâ è äèðåêòîðèé
(â òîì ÷èñëå è äëÿ ñëó÷àÿ âûäåëåíèÿ îòäåëüíûõ ôàéëîâ è äèðåêòîðèé).
Îòäåëüíîå ñïàñèáî <Lrz> è Mute, çà ïîìîùü â ðåàëèçàöèè ïðîöåäóðû
äåëåíèÿ öåëûõ 64 áèòíûõ ÷èñåë, áåç èñïîëüçîâàíèÿ ñîïðîöåññîðà.
2) Ïðîãðåññ óäàëåíèÿ òåïåðü ó÷èòûâàåò âñå âëîæåííûå ôàéëû è äèðåêòîðèè.
3) Èñïðàâëåí ãëþê ñâÿçàííûé ñ íåâåðíîé îáðàáîòêîé ñêðîëëåðà ìûøè.
 
30.09.07 - v0.46 - 25458b
Èçìåíåíèÿ:
1) Óäàëåíèå âëîæåííûõ ïàïîê è ôàéëîâ, ïðîãðåññ óäàëåíèÿ ïîêà ó÷èòûâàåò
âûäåëåííûå ôàéëû è ïàïêè òîëüêî â ðîäèòåëüñêîé äèðåêòîðèè.
 
26.08.07 - v0.45h - 24915b
Èçìåíåíèÿ:
1) SCROLL BAR - ðàçìåð áåãóíêà çàâèñèò îò êîëè÷åñòâà ôàéëîâ â äèðåêòîðèè.
 
17.08.07 - v0.45g - 24617b
Èçìåíåíèÿ:
1) íàâèãàöèÿ ìûøüþ:
a) Îáðàáîòêà ôèçè÷åñêèõ ñêðîëëåðîâ ìûøè, â ëåâîé è ïðàâîé ïàíåëè.
 
09.08.07 - v0.45f - 24257b
Èçìåíåíèÿ:
1) íàâèãàöèÿ êëàâèàòóðîé:
a) Îòêðûòü ôàéë â ñòîðîííåì ïðèëîæåíèè ñ ïàðàìåòðîì:
Shift + W - óñòàíîâèòü ôîíîâûé ðèñóíîê ðàáî÷åãî ñòîëà, ðåæèì îòðèñîâêè çàìîñòèòü.
Ctrl + W - óñòàíîâèòü ôîíîâûé ðèñóíîê ðàáî÷åãî ñòîëà, ðåæèì îòðèñîâêè ðàñòÿíóòü.
(Äàííûå îïöèè ïîêà ðàáîòàþò ëèøü äëÿ JPEGVIEW âåðñèè 0.18 èëè âûøå)
 
04.08.07 - v0.45e - 24137b
Èçìåíåíèÿ:
1) Ìåíþ âûáîðà äèñêà - íàâèãàöèÿ êëàâèàòóðîé:
à) Insert - çàãðóçèòü ëîòîê âûáðàííîãî ATAPI ïðèâîäà.
á) Delete - âûãðóçèòü ëîòîê âûáðàííîãî ATAPI ïðèâîäà.
 
02.08.07 - v0.45d - 24037b
Èçìåíåíèÿ:
1) Èñïðàâëåí áàã - ðåàêöèÿ ïðèëîæåíèÿ íà ñîáûòèÿ ìûøè, ïðîèñõîäÿùèå
îòíîñèòåëüíî äðóãîãî ïðèëîæåíèÿ, îêíî êîòîðîãî íàõîäèòñÿ íà âåðøèíå îêîííîãî ñòåêà.
2) Èñïðàâëåí áàã - "ïîæèðàíèå" ðåñóðñîâ ñèñòåìû ïðè ìèíèìèçàöèè îêíà â ïàíåëü.
 
12.07.07 - v0.45b - 23977b
Èçìåíåíèÿ:
1) Èñïðàâëåí áàã ïðèâîäèâøèé ê èãíîðèðîâàíèþ ìûøè íà ÿäðàõ âûøå 566 ðåâèçèè.
 
05.07.07 - v0.45a - 23993b
Èçìåíåíèÿ:
1) Èñïðàâëåí áàã ïîÿâèâøèéñÿ â v0.45 - íå ðàáîòàëè êíîïêè âûáîðà óñòðîéñòâ.
 
24.06.07 - v0.45 - 23988b
Èçìåíåíèÿ:
1) Èñïîëüçîâàíèå âûâîäà îêíà áåç çàêðàøèâàíèÿ ðàáî÷åé îáëàñòè (Ôóíêöèÿ 0, EDX áèò C).
Òåïåðü îêíî íå ìîðãàåò ïðè ïîëíîé ïåðåðèñîâêå.
2) Îãðàíè÷åíèå íà ìèíèìàëüíûé ðàçìåð îêíà: Xmin=495, Ymin=180.
Ââåäåíî èç-çà íåâåðíîãî îòîáðàæåíèÿ ýëåìåíòîâ îêíà ïðè ìåíüøèõ ðàçìåðàõ.
3) Èñïðàâëåíà îøèáêà, ïðèâîäÿùàÿ ê çàâåðøåíèþ ïðîãðàììû ïðè ñâîðà÷èâàíèè îêíà â çàãîëîâîê.
 
17.06.07 - v0.44k - 23421b
Èçìåíåíèÿ:
1) Èçìåíåíà îáðàáîòêà ùåë÷êà ìûøè - çàïóñêàåìûå ïðèëîæåíèÿ âûâîäÿòñÿ ïîâåðõ îêíà KFM.
2) Îòêðûâàíèå äèðåêòîðèé è çàïóñê ôàéëîâ ïî äâîéíîìó ùåë÷êó.
 
03.06.07 - v0.44i - 23210b
Èçìåíåíèÿ:
1) Çàõâàò ôîêóñà àêòèâíûì SCROLL BAR äî îòïóñêàíèÿ êíîïêè ìûøè.
 
04.05.07 - v0.44h - 23066b
Èçìåíåíèÿ:
1) Óñòðàíåíî ïðîïàäàíèå ôîêóñà â EDITBOX, â íåêîòîðûõ ñëó÷àÿõ.
(Ñïàñèáî <Lrz> çà èñïðàâëåíèå êîäà)
 
27.04.07 - v0.44g - 23130b
Èçìåíåíèÿ:
1) Èçìåíåí ïîðÿäîê íóìåðàöèè èêîíîê â INI è BMP ôàéëàõ, òåïåðü ïåðâûå òðè ÿâëÿþòñÿ
æåñòêî ôèêñèðîâàííûìè. Ðàíåå ýòîãî íå áûëî, ÷òî ìîãëî ïðèâåñòè ê íåòî÷íîñòÿì
ïðè çàìåíå ôàéëà ñ èêîíêàìè íà àëüòåðíàòèâíûé.
2) Óñêîðåíèå âûâîäà íà 20% ïðè ëèñòàíèè ñîäåðæèìîãî äèðåêòîðèè, çà ñ÷åò îïòèìèçàöèè
ïðîöåäóðû ïîèñêà âûâîäèìûõ èêîíîê â INI ôàéëå.
 
26.04.07 - v0.44e - 23126b
Èçìåíåíèÿ:
1) Èçìåíåíèå SCROLL BAR - òåïåðü ïðè íàæàòèè êðàéíèõ ñòðåëîê ïåðåìåùàåòñÿ íå êóðñîð,
à ñäâèãàåòñÿ íà îäèí ýëåìåíò ïðîñìàòðèâàåìîå ñîäåðæèìîå äèðåêòîðèè.
(Ñïàñèáî Heavyiron çà ïðåäëîæåíèå èäåè)
2) Åñëè êîëè÷åñòâî îòîáðàæàåìûõ ýëåìåíòîâ â ïàíåëè ìåíüøå ÷åì ìàêñèìàëüíî âîçìîæíîå
îòîáðàæàåìîå çíà÷åíèå êîä SCROLL BAR ñòàíîâèòüñÿ ïàññèâíûì.
3) Óñòðàíåíà îøèáêà, ïðèâîäèâøàÿ ê çàçîðó ìåæäó áåãóíêîì SCROLL BAR è íèæíåé ñòðåëêîé.
4) Óñòðàíåíà îøèáêà, ïðèâîäèâøàÿ ê îòñóòñòâèþ êîððåêöèè ïîëîæåíèÿ êóðñîðà ïðè óäàëåíèè
ïîñëåäíåãî ïî ñïèñêó ôàéëà â äèðåêòîðèè, ðàçìåð êîòîðîé ìåíåå ìàêñèìàëüíî âîçìîæíîãî
îòîáðàæàåìîãî çíà÷åíèÿ.
5) Íåáîëüøàÿ îïòèìèçàöèÿ êîäà ïî ðàçìåðó.
 
22.04.07 - v0.44 - 23118b
Èçìåíåíèÿ:
1) Ïîëíàÿ ðåàëèçàöèÿ ýëåìåíòà óïðàâëåíèÿ SCROLL BAR.
2) íàâèãàöèÿ ìûøüþ:
à) Âûáîð àêòèâíîé ïàíåëè, êëèêîì ïî ïàíåëè.
á) Óñòàíîâêà êóðñîðà âûäåëåíèÿ íà ôàéë èëè äèðåêòîðèþ, êëèêîì ïî âûáèðàåìîìó ïóíêòó.
â) Êëèê ïî óñòàíîâëåííîìó êóðñîðó âûäåëåíèÿ ðàâíîçíà÷åí íàæàòèþ êëàâèøè ENTER.
ã) Óïðàâëåíèå ìåíþ âûáîðà äèñêà ïðè ïîìîùè ìûøè.
 
21.04.07 - v0.43ñ - 21777b
Èçìåíåíèÿ:
1) Íîâàÿ âåðñèÿ EDITBOX (<Lrz>), èñïðàâëåíû ãëþêè c îñòàòî÷íûì âûäåëåíèåì èìåíè.
2) Ïðèåìëåìûé öâåò âûäåëåíèÿ äëÿ EDITBOX, â âåðñèè 0.43 ïî îøèáêå áûë óñòàíîâëåí ÷åðíûé.
3) Ïåðâè÷íàÿ ðåàëèçàöèÿ ýëåìåíòà óïðàâëåíèÿ SCROLL BAR, áåç îáðàòíîé ñâÿçè.
 
16.04.07 - v0.43 - 20999b
Èçìåíåíèÿ:
1) Íîâàÿ âåðñèÿ EDITBOX (Maxxxx32 è <Lrz>), óñòðàíåíû ãëþêè ñ ïðàâêîé èìåíè
ïðè ñîçäàíèè, êîïèðîâàíèè è ïåðåìåùåíèè ôàéëà.
2) Èñïðàâëåíî îòîáðàæåíèå ôàéëîâ: ôàéëû ñ îòñóòñòâóþùèì ðàñøèðåíèåì è îäíîâðåìåííî
ñ òî÷êîé â êîíöå òåïåðü îòîáðàæàþòñÿ ïîëíîñòüþ.
3) Ìåíþ âûáîðà äèñêà - íàâèãàöèÿ êëàâèàòóðîé:
à) Home è PageUp - êóðñîð â íà÷àëî ñïèñêà
á) End è PageDown - êóðñîð â êîíåö ñïèñêà
4) Îïòèìèçàöèÿ âûâîäà ïîëîñ ïðîãðåññà ïðè êîïèðîâàíèè, ïåðåìåùåíèå è óäàëåíèè ôàéëîâ.
Òåïåðü ïîëîñû ïðîãðåññà ðèñóþòñÿ ïîëíîñòüþ ëèøü â ïåðâûé ðàç è ïðè ïîñòóïëåíèè
ñîáûòèÿ ïåðåðèñîâêè îêíà.
 
01.04.07 - v0.42 - 20707b
Èçìåíåíèÿ:
1) Îòîáðàæåíèå ïðîãðåññà êîïèðîâàíèÿ ôàéëîâ.
2) Îòîáðàæåíèå ïðîãðåññà ïåðåìåùåíèÿ ôàéëîâ.
 
31.03.07 - v0.41 - 20091b
Èçìåíåíèÿ:
1) Îòîáðàæåíèå ïðîãðåññà óäàëåíèÿ ôàéëîâ.
2) íàâèãàöèÿ êëàâèàòóðîé:
a) F1 - ñïðàâêà, ãîðÿ÷èå êîìáèíàöèè êëàâèø.
3) íàâèãàöèÿ ìûøüþ:
a) Êíîïêà F1 - ñïðàâêà, ãîðÿ÷èå êîìáèíàöèè êëàâèø.
Òðåáóåòñÿ íàëè÷èå ôàéëà kfm_keys.txt â äèðåêòîðèè, ãäå ðàñïîëîæåíî ïðèëîæåíèå.
4) Íîâàÿ âåðñèÿ ñòîðîííåãî êîìïîíåíòà EDITBOX (Maxxxx32 è <Lrz>).
 
29.03.07 - v0.40a - 19708b
Èçìåíåíèÿ:
1) íàâèãàöèÿ êëàâèàòóðîé:
a) F12 - çàâåðøåíèå ðàáîòû ïðîãðàììû.
2) íàâèãàöèÿ ìûøüþ:
a) Êíîïêà F12 - çàâåðøåíèå ðàáîòû ïðîãðàììû.
 
28.03.07 - v0.40 - 19603b
Èçìåíåíèÿ:
1) Ïåðåìåùåíèå âûäåëåííûõ è îäèíî÷íûõ ôàéëîâ, âûäåëåííûå äèðåêòîðèè èãíîðèðóþòñÿ.
2) íàâèãàöèÿ êëàâèàòóðîé:
a) F6 - ïåðåìåùåíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
á) Ctrl+A è Ctrl+(NumPad(+) Up) - âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè,
çà èñêëþ÷åíèåì äèðåêòîðèè '..'
â) Ctrl+(NumPad(-) Up) - ñíÿòü âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè,
çà èñêëþ÷åíèåì äèðåêòîðèè '..'
ã) Ctrl+(NumPad(*) Up) - èíâåðòèðîâàòü âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè,
çà èñêëþ÷åíèåì äèðåêòîðèè '..'
3) íàâèãàöèÿ ìûøüþ:
à) Êíîïêà F6 - ïåðåìåùåíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
á) Êíîïêà ãëàâíîé ïàíåëè "Ïåðåìåñòèòü ôàéë" -
ïåðåìåùåíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
 
27.03.07 - v0.39 - 18778b
Èçìåíåíèÿ:
1) Êîïèðîâàíèå âûäåëåííûõ ôàéëîâ, âûäåëåííûå äèðåêòîðèè èãíîðèðóþòñÿ.
2) Îêîí÷àòåëüíîå óñòðàíåíèå ãëþêîâ ñ âûäåëåíèåì ôàéëîâ.
 
24.03.07 - v0.38 - 18510b
Èçìåíåíèÿ:
1) Êîïèðîâàíèå ôàéëîâ ïðåâûøàþùèõ ðàçìåð ñâîáîäíîãî ÎÇÓ.
Ïàìÿòü äëÿ áóôåðà êîïèðîâàíèÿ ðåçåðâèðóåòñÿ èç ðàñ÷åòà 25%
îò ñâîáîäíîé ïàìÿòè ÎÇÓ â ìîìåíò íà÷àëà êîïèðîâàíèÿ.
Åñëè ðàçìåð ôàéëà ìåíåå 25% ñâîáîäíîãî ÎÇÓ ðàçìåð áóôåðà ðàâåí ðàçìåðó ôàéëà.
 
20.03.07 - v0.37b - 18239b
Èçìåíåíèÿ:
1) Èñïðàâëåíà îøèáêà, êîãäà íå èçìåíÿëñÿ öâåò ïîñëåäíåãî ôàéëà â äèðåêòîðèè
ïðè âûäåëåíèè êëàâèøåé Insert.
2) íàâèãàöèÿ ìûøüþ:
Êíîïêè ãëàâíîé ïàíåëè:
à) "Ñîçäàòü äèðåêòîðèþ" - ñîçäàíèå äèðåêòîðèè â àêòèâíîé ïàíåëè.
á) "Êîïèðîâàòü ôàéë" - êîïèðîâàíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
 
17.03.07 - v0.37 - 18157b
Èçìåíåíèÿ:
1) Îäèíî÷íîå êîïèðîâàíèå ôàéëîâ (çà îäèí ïðîõîä) äëÿ ðåäàêòèðîâàíèÿ íàçâàíèÿ ôàéëà
èñïîëüçóåòñÿ ñòîðîííèé êîìïîíåíò EDITBOX, ñïàñèáî àâòîðàì: Maxxxx32 è <Lrz>,
çà ýêîíîìèþ âðåìåíè â ðàçðàáîòêå KFM.
2) íàâèãàöèÿ êëàâèàòóðîé:
a) F5 - êîïèðîâàíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
3) íàâèãàöèÿ ìûøüþ:
à) Êíîïêà F5 - êîïèðîâàíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
 
16.03.07 - v0.36 - 17338b
Èçìåíåíèÿ:
1) Ñîçäàíèå äèðåêòîðèè, äëÿ ââîäà íàçâàíèÿ äèðåêòîðèè èñïîëüçóåòñÿ
ñòîðîííèé êîìïîíåíò EDITBOX, ñïàñèáî àâòîðàì: Maxxxx32 è <Lrz>,
çà ýêîíîìèþ âðåìåíè â ðàçðàáîòêå KFM.
2) íàâèãàöèÿ êëàâèàòóðîé:
a) F7 - ñîçäàíèå äèðåêòîðèè â àêòèâíîé ïàíåëè.
3) íàâèãàöèÿ ìûøüþ:
à) Êíîïêà F7 - ñîçäàíèå äèðåêòîðèè â àêòèâíîé ïàíåëè.
 
13.03.07 - v0.35f - 15667b
Èçìåíåíèÿ:
1) Óñòðàíåíî çàñòðåâàíèå êóðñîðà íà ïîñëåäíåé ñòðàíèöå ïðè ëèñòàíèè End è PageDown.
 
11.03.07 - v0.35e - 15590b
Èçìåíåíèÿ:
1) Êíîïêà "ïåðåçàãðóçèòü äèðåêòîðèþ" òåïåðü ïåðåðèñîâûâàåò òîëüêî àêòèâíóþ ïàíåëü.
2) Óñòðàíåíî ìåðöàíèå èç-çà ëèøíèõ ïðîðèñîâîê ïðè äîñòèæåíèè êîíöà äèðåêòîðèè
êëàâèøàìè End è PageDown.
3) Íåáîëüøàÿ îïòèìèçàöèÿ êîäà ïî ðàçìåðó.
 
08.03.07 - v0.35b - 15602b
Èçìåíåíèÿ:
1) Îïòèìèçàöèÿ èñïîëüçîâàíèÿ îáëàñòè ïóòåé ê ôàéëàì.
2) Èñïðàâëåíà îøèáêà - âûõîä êóðñîðà çà ïðåäåëû ýêðàíà
ïðè âîçâðàòå èç ðàçâåðíóòîãî ðåæèìà îêíà.
 
04.03.07 - v0.35 - 21540b
Èçìåíåíèÿ:
1) Ïðîöåäóðà ïîèñêà êîíöà ñåêöèè â INI ôàéëå.
2) Ïîèñê è âûâîä èêîíîê ÷åðåç àññîöèàöèè â INI ôàéëå.
3) Îïòèìèçàöèÿ êîäà ïî ðàçìåðó.
4) íàâèãàöèÿ êëàâèàòóðîé:
à) F4 - ðåäàêòèðîâàíèå ôàéëà â ñòîðîííåì ïðèëîæåíèè,
àññîöèàöèè â INI ôàéëå.
5) íàâèãàöèÿ ìûøüþ:
à) Êíîïêà F4 - ðåäàêòèðîâàíèå ôàéëà â ñòîðîííåì ïðèëîæåíèè,
àññîöèàöèè â INI ôàéëå.
 
01.03.07 - v0.34b - 23030b
Èçìåíåíèÿ:
1) Èñïðàâëåíî ïðîïàäàíèå ìåíþ ïîäòâåðæäåíèÿ óäàëåíèÿ ôàéëîâ
ïðè àêòèâàöèè îêíà äðóãîãî ïðèëîæåíèÿ.
2) íàâèãàöèÿ ìûøüþ:
à) Êíîïêà F8 - óäàëåíèå ôàéëà.
 
18.02.07 - v0.34 - 22870b
Èçìåíåíèÿ:
1) Óäàëåíèå âûäåëåííûõ ôàéëîâ.
 
17.02.07 - v0.33b - 22841b
Èçìåíåíèÿ:
1) Ìåíþ ïîäòâåðæäåíèÿ óäàëåíèÿ ôàéëîâ.
 
14.02.07 - v0.33 - 22494b
Èçìåíåíèÿ:
1) Âûäåëåíèå ôàéëîâ êðàñíûì öâåòîì.
2) Îäèíî÷íîå óäàëåíèå ôàéëîâ.
3) íàâèãàöèÿ êëàâèàòóðîé:
à) Delete è F8 - óäàëåíèå ôàéëà, íà êîòîðîì íàõîäèòñÿ êóðñîð.
á) Insert - âûäåëåíèå êðàñíûì öâåòîì ôàéëà, íà êîòîðîì íàõîäèòñÿ êóðñîð
è ïåðåìåùåíèå êóðñîðà íà 1 ïîçèöèþ âíèç.
 
06.02.07 - v0.32 - 20581b
Èçìåíåíèÿ:
1) Óâåëè÷åíèå ñêîðîñòè ñîðòèðîâêè ïî ðàñøèðåíèÿì íà 10%.
2) Îáðàáîòêà îøèáîê ôàéëîâîé ñèñòåìû.
3) Êíîïêè ãëàâíîé ïàíåëè: âûõîä èç äèðåêòîðèè, ïåðåçàãðóçèòü äèðåêòîðèþ.
4) íàâèãàöèÿ êëàâèàòóðîé:
à) Ctrl+R - ïîâòîðíàÿ çàãðóçêà ñîäåðæèìîãî äèðåêòîðèè â àêòèâíîé ïàíåëè
 
28.01.07 - v0.30 - 19555b
Èçìåíåíèÿ:
1) Ïðåäâàðèòåëüíàÿ îáðàáîòêà ñîäåðæèìîãî äèðåêòîðèè.
2) Óñêîðåíèå ñîðòèðîâêè ñîäåðæèìîãî äèðåêòîðèè ïî èìåíàì è ðàñøèðåíèÿì.
3) Ñîðòèðîâêà ñîäåðæèìîãî äèðåêòîðèè ïî ðàçìåðó ôàéëîâ.
4) Ñîðòèðîâêà ñîäåðæèìîãî äèðåêòîðèè ïî äàòå ìîäèôèêàöèè ôàéëîâ.
5) íàâèãàöèÿ êëàâèàòóðîé:
à) Ctrl+F3 - ñîðòèðîâêà ïî èìåíàì, äëÿ àêòèâíîé ïàíåëè
á) Ctrl+F4 - ñîðòèðîâêà ïî ðàñøèðåíèÿì, äëÿ àêòèâíîé ïàíåëè
â) Ctrl+F5 - ñîðòèðîâêà ïî ðàçìåðó, äëÿ àêòèâíîé ïàíåëè
ã) Ctrl+F6 - ñîðòèðîâêà ïî äàòå ìîäèôèêàöèè, äëÿ àêòèâíîé ïàíåëè
 
27.01.07 - v0.27 - 18985b
Èçìåíåíèÿ:
1) Ñîðòèðîâêà ñîäåðæèìîãî äèðåêòîðèè ïî ðàñøèðåíèÿì.
 
22.01.07 - v0.25 - 18718b
Èçìåíåíèÿ:
1) Ñîðòèðîâêà ñîäåðæèìîãî äèðåêòîðèè ïî èìåíàì.
 
13.01.07 - v0.22e - 17898b
Èçìåíåíèÿ:
1) Äîáàâëåíû íîâûå èêîíêè äëÿ íåêîòîðûõ òèïîâ ôàéëîâ.
2) Äîáàâëåí âûâîä èêîíîê äëÿ íåêîòîðûõ òèïîâ ãðàôè÷åñêèõ ôàéëîâ.
3) Ñîðòèðîâêà ñîäåðæèìîãî äèðåêòîðèè íà ïàïêè è äèðåêòîðèè.
 
11.01.07 - v0.22c - 16877b
Èçìåíåíèÿ:
1) Óñòðàíåí ñëåä îò ìåíþ âûáîðà äèñêà îñòàþùèéñÿ ïîñëå åãî,
"ïóñòîãî" çàâåðøåíèÿ, â ñëó÷àå åñëè êîëè÷åñòâî ôàéëîâ îòîáðàæàåìûõ
â êàòàëîãå íå äîñòàòî÷íî äëÿ çàòèðàíèÿ èçîáðàæåíèÿ ìåíþ.
 
10.01.07 - v0.22b - 16849b
Èçìåíåíèÿ:
1) Èñïðàâëåí îáðàáîò÷èê êëàâèø â ìåíþ âûáîðà äèñêà (Alt+F1, F2).
Òåïåðü ìåíþ êîððåêòíî ðåàãèðóåò íà àêòèâèðîâàííûé NumLock.
 
07.01.07 - v0.22 - 16835b
Èçìåíåíèÿ:
1) äèíàìè÷åñêîå âûäåëåíèå ïàìÿòè äëÿ ñîäåðæèìîãî êàòàëîãà
ëåâîé è ïðàâîé ïàíåëè.
2) ïðàâèëüíîå ðàçìåùåíèå êóðñîðà ïðè âûõîäå èç êàòàëîãà
â ðîäèòåëüñêèé êàòàëîã.
 
05.01.07 - v0.18- 16064b
Èçìåíåíèÿ:
1) óñòðàíåíî ìåðöàíèå ïðè ïåðåìåùåíèè êóðñîðà â ïðåäåëàõ ïàíåëè,
(ìåðöàíèå ïðîÿâëÿåòñÿ ëèøü íà ïîëîñå êóðñîðà)
2) óìåíüøåíî ìåðöàíèå ïðè ïåðåìåùåíèè êóðñîðà çà ïðåäåëû ïàíåëè,
3) íàâèãàöèÿ êëàâèàòóðîé:
à) Home - â íà÷àëî êàòàëîãà,
á) End - â êîíåö êàòàëîãà.
4) èñïðàâëåíà îøèáêà â ïðîöåäóðå
îòêðûòèÿ ôàéëîâ ïî ðàñøèðåíèþ.
 
29.12.06 - v0.1 - 15411b
Èçìåíåíèÿ:
1) èíòåðôåéñ 50%,
2) íàâèãàöèÿ êëàâèàòóðîé:
à) ñòðåëêè ââåðõ è âíèç - ïåðåìåùåíèÿ êóðñîðà âûäåëåíèÿ,
á) PageUp è PageDown - ñòðàíèöà ââåðõ è âíèç,
â) Alt+F1 (F2), äëÿ âûáîðà äèñêà ëåâîé (ïðàâîé) ïàíåëè
3) çàïóñê ïðèëîæåíèé (Enter),
4) îòêðûòèå ôàéëîâ ïî ðàñøèðåíèþ (Enter),
5) ïîäãðóçêà ôàéëîâ èêîíîê (BMP) è íàñòðîåê (INI),
è äèíàìè÷åñêîå âûäåëåíèå ïàìÿòè äëÿ íèõ.
 
18.10.06 - íà÷àëî ïðîåêòà
Èçìåíåíèÿ: Íè÷åãî!
/programs/fs/kfm/trunk/docs/russian/windows/kfm_keys.txt
0,0 → 1,46
Óïðàâëÿþùèå ñî÷åòàíèÿ êëàâèø â KFM - Kolibri File Manager v0.47.
 
 ïàíåëÿõ:
1) Ïåðåìåùåíèå êóðñîðà ïî àêòèâíîé ïàíåëè:
à) ñòðåëêè ââåðõ è âíèç (â òîì ÷èñëå ðàñïîëîæåííûå â äîïîëíèòåëüíîé ÷àñòè êëàâèàòóðû) - ïåðåìåùåíèå êóðñîðà íà îäíó ïîçèöèþ ââåðõ èëè âíèç.
á) PageUp - ïîñòðàíè÷íîå ëèñòàíèå ââåðõ.
â) PageDown - ïîñòðàíè÷íîå ëèñòàíèå âíèç.
ã) Home - â íà÷àëî êàòàëîãà ñ ôàéëàìè.
ä) End - â êîíåö êàòàëîãà ñ ôàéëàìè.
2) Tab - èçìåíåíèå àêòèâíîé ïàíåëè.
3) Enter - äåéñòâèÿ ñ ôàéëîì íà ïîçèöèè êîòîðîãî íàõîäèòñÿ êóðñîð âûäåëåíèÿ:
à) âõîä â ïàïêó.
á) çàïóñê ïðîãðàììû.
â) îòêðûòü ôàéë â ïðîïèñàííîì ïðèëîæåíèè, ñîãëàñíî ñîäåðæàíèþ ôàéëà kfm.ini, ðàçäåëà "<>files associations".
4) Alt+F1 - âûçîâ ìåíþ âûáîðà äèñêà, îòîáðàæàåìîãî íà ëåâîé ïàíåëè.
5) Alt+F2 - âûçîâ ìåíþ âûáîðà äèñêà, îòîáðàæàåìîãî íà ïðàâîé ïàíåëè.
6) ñîðòèðîâêà ôàéëîâ â àêòèâíîé ïàíåëè:
à) Ctrl+F3 - ñîðòèðîâêà ïî èìåíàì.
á) Ctrl+F4 - ñîðòèðîâêà ïî ðàñøèðåíèÿì.
â) Ctrl+F5 - ñîðòèðîâêà ïî ðàçìåðó.
ã) Ctrl+F6 - ñîðòèðîâêà ïî äàòå ìîäèôèêàöèè.
7) Ctrl+R - ïîâòîðíàÿ çàãðóçêà ñîäåðæèìîãî äèðåêòîðèè â àêòèâíîé ïàíåëè.
8) Delete è F8 - óäàëåíèå ôàéëà íà êîòîðîì íàõîäèòñÿ êóðñîð.
9) Insert - âûäåëåíèå êðàñíûì öâåòîì ôàéëà íà êîòîðîì íàõîäèòñÿ êóðñîð è ïåðåìåùåíèå êóðñîðà íà 1 ïîçèöèþ âíèç.
10) F4 - îòêðûòü ôàéë äëÿ ðåäàêòèðîâàíèÿ â ïðîïèñàííîì ïðèëîæåíèè, ñîãëàñíî ñîäåðæàíèþ ôàéëà kfm.ini, ðàçäåëà "<>files association1".
11) F7 - ñîçäàíèå äèðåêòîðèè â àêòèâíîé ïàíåëè.
12) F5 - êîïèðîâàíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
13) F6 - ïåðåìåùåíèå ôàéëà èç àêòèâíîé ïàíåëè â ïðîòèâîïîëîæíóþ.
14) Ctrl+A è Ctrl+(NumPad(+) Up) - âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè, çà èñêëþ÷åíèåì äèðåêòîðèè '..'
15) Ctrl+(NumPad(-) Up) - ñíÿòü âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè, çà èñêëþ÷åíèåì äèðåêòîðèè '..'
16) Ctrl+(NumPad(*) Up) - èíâåðòèðîâàòü âûäåëåíèå âñåõ ôàéëîâ è äèðåêòîðèé â àêòèâíîé ïàíåëè, çà èñêëþ÷åíèåì äèðåêòîðèè '..'
17) F12 - çàâåðøåíèå ðàáîòû ïðîãðàììû.
18) F1 - ñïðàâêà, ãîðÿ÷èå êîìáèíàöèè êëàâèø. Òðåáóåòñÿ íàëè÷èå ôàéëà kfm_keys.txt â äèðåêòîðèè ãäå ðàñïîëîæåíî ïðèëîæåíèå.
19) Îòêðûòü ôàéë â ñòîðîííåì ïðèëîæåíèè ñ ïàðàìåòðîì:
à) Shift + W - óñòàíîâèòü ôîíîâûé ðèñóíîê ðàáî÷åãî ñòîëà, ðåæèì îòðèñîâêè çàìîñòèòü.
á) Ctrl + W - óñòàíîâèòü ôîíîâûé ðèñóíîê ðàáî÷åãî ñòîëà, ðåæèì îòðèñîâêè ðàñòÿíóòü.
20) Alt+Enter - ïîëó÷åíèå äëÿ ôàéëîâ è äèðåêòîðèé: ðàñïîëîæåíèÿ, íàçâàíèÿ, ðàçìåðà, êîëè÷åñòâà ôàéëîâ è äèðåêòîðèé
(â òîì ÷èñëå è äëÿ ñëó÷àÿ âûäåëåíèÿ îòäåëüíûõ ôàéëîâ è äèðåêòîðèé).
 
 ìåíþ âûáîðà äèñêà:
1) ñòðåëêè ââåðõ è âíèç (â òîì ÷èñëå ðàñïîëîæåííûå â äîïîëíèòåëüíîé ÷àñòè êëàâèàòóðû) - ïåðåìåùåíèå êóðñîðà íà îäíó ïîçèöèþ ââåðõ èëè âíèç.
2) Enter - âûáîð äèñêà íà ïîçèöèè êîòîðîãî íàõîäèòñÿ êóðñîð âûäåëåíèÿ.
3) Home è PageUp - êóðñîð â íà÷àëî ñïèñêà
4) End è PageDown - êóðñîð â êîíåö ñïèñêà.
5) Insert - çàãðóçèòü ëîòîê âûáðàííîãî ATAPI ïðèâîäà.
6) Delete - âûãðóçèòü ëîòîê âûáðàííîãî ATAPI ïðèâîäà.
/programs/fs/kfm/trunk/docs/russian/windows
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/trunk/docs/russian
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/trunk/docs
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/trunk/draw.inc
0,0 → 1,1210
draw_buttons_panel:
mov ecx,[skin_high]
add ecx,19
shl ecx,16
mov cx,18
mov ebx,[window_width]
sub ebx,9
add ebx,5 shl 16
mcall 13,,,0xffffff
mov edx,15 shl 16+20
add edx,[skin_high]
pusha
call .calculate_button
mov edx,150
int 0x40
popa
mcall 7,[buttons_img_start],<16,16>
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,151
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,152
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,153
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,154
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,155
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,156
int 0x40
popa
int 0x40
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,157
int 0x40
popa
int 0x40
ret
.calculate_button:
mov esi,0xffffff
mov ebx,edx
mov bx,15
mov ecx,edx
shl ecx,16
mov cx,bx
mov eax,8
ret
;---------------------------------------------------------------------
draw_left_sort_button:
mov bx,[left_panel_x.start_x]
add bx,[left_panel_x.size_x]
sub ebx,50+15
mov cx,[left_panel_y.start_y]
call calclulate_sort_button_1
mov edx,145
.start:
mov esi,0xffffff
dec ebp
cmp [left_sort_flag],ebp
jne @f
mov esi,0xccccff
@@:
call calclulate_sort_button_2
jnz .start
ret
;---------------------------------------------------------------------
calclulate_sort_button_1:
shl ebx,16
mov bx,50
sub cx,14
shl ecx,16
mov cx,12
mov eax,8
mov ebp,4
ret
;---------------------------------------------------------------------
calclulate_sort_button_2:
inc ebp
int 0x40
pusha
push ebx
mov eax,ebx
inc eax
shl eax,16
add ebx,eax
cmp ebp,4
jne @f
mov bx,15
jmp .continue
@@:
mov bx,1
.continue:
mov edx,0xcccccc
inc ecx
mcall 13
pop ebx
cmp ebp,1
jne @f
mov eax,[temp_panel_end]
shl eax,16
add eax,[temp_panel_end]
shr eax,16
shr ebx,16
sub ebx,eax
shl ebx,16
mov bx,ax
rol ebx,16
mcall 13
mov [temp_panel_end],ebx
@@:
popa
pusha
shr ecx,16
mov bx,cx
add ebx,3 shl 16+2
mov ecx,0x10000000
mov edx,ebp
dec edx
shl edx,2
add edx,sort_button_name
mov eax,4
mov esi,eax
int 0x40
popa
dec edx
sub ebx,38 shl 16
mov bx,36
dec ebp
ret
;---------------------------------------------------------------------
draw_right_sort_button:
mov bx,[right_panel_x.start_x]
add bx,[right_panel_x.size_x]
sub ebx,50+15
mov cx,[right_panel_y.start_y]
call calclulate_sort_button_1
mov edx,149
.start:
mov esi,0xffffff
dec ebp
cmp [right_sort_flag],ebp
jne @f
mov esi,0xccccff
@@:
call calclulate_sort_button_2
jnz .start
ret
;---------------------------------------------------------------------
draw_left_select_disk_button:
mov bx,[left_panel_x.start_x]
mov cx,[left_panel_y.start_y]
mov ebp,read_folder_name ;read_folder.name
mov edx,0x40000000+140
.1:
shl ebx,16
mov bx,60
sub cx,14
shl ecx,16
mov cx,13
mov esi,0xffffff
mov eax,8
int 0x40
mov edx,0xffffff
mov eax,13
int 0x40
pusha
; mov esi,read_folder.name+2
mov esi,ebp
add esi,2
@@:
inc esi
cmp [esi],byte 0
je @f
cmp [esi],byte '/'
jne @r
add esi,2
@@:
sub esi,ebp ;read_folder.name
add ebx,1 shl 16
shr ecx,16
mov bx,cx
add ebx,3
mov edx,ebp
mcall 4, ,0 ;,read_folder.name
popa
add ebx,50 shl 16
mov bx,10
mov edx,0x6060ff
int 0x40
mov [temp_panel_end],ebx
add ebx,1 shl 16
shr ecx,16
mov bx,cx
add ebx,3
mcall 4, ,0x80ffffff,select_disk_char
add ebx,1 shl 16
int 0x40
ret
;---------------------------------------------------------------------
draw_right_select_disk_button:
mov bx,[right_panel_x.start_x]
mov cx,[right_panel_y.start_y]
mov ebp,read_folder_1_name ;read_folder_1.name
mov edx,0x40000000+141
jmp draw_left_select_disk_button.1
;---------------------------------------------------------------------
draw_device_button:
mov edi,device_present
mov edx,120
mov bx,[left_panel_x.start_x]
mov cx,[left_panel_y.start_y]
mov eax,[left_panel_x]
mov [temp_panel_end],eax
mov [temp_counter],0
call .draw
; inc edx
mov edx,130
mov bx,[right_panel_x.start_x]
mov cx,[right_panel_y.start_y]
mov eax,[right_panel_x]
mov [temp_panel_end],eax
mov [temp_counter],1
.draw:
shl ebx,16
mov bx,25
sub cx,30
shl ecx,16
mov cx,12
mov eax,8
mov esi,0xaa00
cmp [edi],byte 1
jne @f
mov ebp,read_folder_device_name.rd
call .draw_1
@@:
inc edx
cmp [edi+1],byte 1
jne @f
mov ebp,read_folder_device_name.fd
call .draw_1
@@:
inc edx
cmp [edi+2],byte 1
jne @f
mov ebp,read_folder_device_name.hd0
call .draw_1
@@:
inc edx
cmp [edi+3],byte 1
jne @f
mov ebp,read_folder_device_name.hd1
call .draw_1
@@:
inc edx
cmp [edi+4],byte 1
jne @f
mov ebp,read_folder_device_name.hd2
call .draw_1
@@:
inc edx
cmp [edi+5],byte 1
jne @f
mov ebp,read_folder_device_name.hd3
call .draw_1
@@:
inc edx
cmp [edi+6],byte 1
jne @f
mov ebp,read_folder_device_name.cd0
call .draw_1
@@:
inc edx
cmp [edi+7],byte 1
jne @f
mov ebp,read_folder_device_name.cd1
call .draw_1
@@:
inc edx
cmp [edi+8],byte 1
jne @f
mov ebp,read_folder_device_name.cd2
call .draw_1
@@:
inc edx
cmp [edi+9],byte 1
jne @f
mov ebp,read_folder_device_name.cd3
call .draw_1
@@:
push ebx
mov ebx,[temp_panel_end]
mov ax,bx
shr ebx,16
add eax,ebx
pop ebx
ror ebx,16
sub ax,bx
rol ebx,16
mov bx,ax
add ecx,1
add ebx,1
mcall 13,,,0xcccccc
cmp [temp_counter],0
je @f
mov ax,bx
shr ebx,16
add bx,ax
mov eax,[window_width]
sub eax,4
sub ax,bx
cmp eax,0
jbe @f
shl ebx,16
mov bx,ax
mov ax,[right_panel_y.size_y]
add ax,[right_panel_y.start_y]
shr ecx,16
sub ax,cx
shl ecx,16
mov cx,ax
mov edx,0xcccccc
mcall 13
ret
.draw_1:
int 0x40
pusha
mov eax,ebx
inc eax
shl eax,16
add ebx,eax
mov bx,1
inc ecx
mov edx,0xcccccc
mcall 13
popa
pusha
mov edx,ebp
shr ecx,16
mov bx,cx
add ebx,2 shl 16 +3
mov ecx,0x90000000
mov eax,4
int 0x40
mov ecx,0x90ffffff
sub ebx,1 shl 16 + 1
int 0x40
popa
add ebx,27 shl 16
@@:
ret
;---------------------------------------------------------------------
draw_ATAPI_tray_control:
ret
;---------------------------------------------------------------------
calc_max_panel_line:
xor eax,eax
mov ax,[left_panel_y.size_y]
mov ebx,10
xor edx,edx
div ebx
mov [max_panel_line],eax
ret
;---------------------------------------------------------------------
draw_icon:
pusha
test [edx-40],byte 0x10
jnz .draw_dir_pic
call get_icon_number
imul ebx,270
add ebx,mem
jmp .draw
.draw_dir_pic:
mov ebx,mem
cmp [edx],word '..'
jne .draw
add ebx,270 ;*17
.draw:
mov edx,[esp+16] ;ebx
ror edx,16
sub edx,12
rol edx,16
mcall 7, ,<10,9>
popa
ret
;---------------------------------------------------------------------
; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ
; Âõîä:
; AX - ÷èñëî
; EBX - àäðåñ ñòðîêè
; Âûõîä:
; ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0
decimal_string_2:
push eax ebx ecx edx
xor ecx,ecx
mov [ebx],byte '0'
inc ebx
.p3:
xor edx,edx
push ebx
mov ebx,10
div ebx
pop ebx
add edx,48
push edx
inc ecx
cmp ax,0
jne .p3
cmp ecx,1
jbe .p4
mov ecx,2
dec ebx
.p4:
pop edx
mov [ebx],dl
inc ebx
loop .p4
pop edx ecx ebx eax
ret
;---------------------------------------------------------------------
decimal_string_4:
push eax ecx edx
xor ecx,ecx
mov [ebx],byte '0'
inc ebx
.p3:
xor edx,edx
push ebx
mov ebx,10
div ebx
pop ebx
add edx,48
push edx
inc ecx
cmp eax,0
jne .p3
cmp ecx,3
jbe .p4
mov ecx,4
dec ebx
.p4:
pop edx
mov [ebx],dl
inc ebx
loop .p4
pop edx ecx eax
ret
;---------------------------------------------------------------------
draw_type_size_date:
pusha
test [edx-40],byte 0x10
jz .copy_type
mov [type_table],dword '<DIR'
mov [type_table+4],word '> '
mov [file_name_length],0
mov [extension_size],0
jmp .start ;.size
.copy_type:
mov [type_table],dword ' '
mov [type_table+4],word ' '
.start:
mov esi,edx
xor eax,eax
@@:
cld
lodsb
test eax,eax
jnz @b
mov [file_name_length],esi
sub [file_name_length],edx
mov [temp_counter_1],esi
test [edx-40],byte 0x10
jnz .size
;@@:
dec esi
dec edx
@@:
std
lodsb
cmp esi,edx
je .extension_size_0 ;@f
cmp al,'.'
jnz @b
add esi,2
mov [extension_start],esi
mov ecx,[temp_counter_1]
sub ecx,esi
inc ecx
mov [extension_size],ecx
sub [file_name_length],ecx
cmp ecx,2
ja @f
inc [file_name_length]
@@:
sub ecx,2
cmp ecx,4
jbe @f
mov ecx,4
mov [type_table+4],word '..'
@@:
mov edi,type_table ;+1
cld
rep movsb
mov [edi],byte ' '
inc edx
jmp .size
.extension_size_0:
inc edx
mov [extension_size],0
.size:
test [edx-40],byte 0x10
jz .copy_size
mov [size_table],dword '----'
mov [size_table+4],word '- '
jmp .date
.copy_size:
;/0x40000000 - Gb
;/0x100000 - Mb
;/0x400 Kb
mov [size_table],dword ' '
mov [size_table+4],word ' '
push ebx
push edx
mov eax,[edx-40+32]
mov ebx,0x40000000
xor edx,edx
div ebx
cmp eax,0
je @f
mov ebx,size_table
call decimal_string_4
mov [ebx],byte 'G'
jmp .size_convert_end
@@:
mov edx,[esp]
mov eax,[edx-40+32]
mov ebx,0x100000
xor edx,edx
div ebx
cmp eax,0
je @f
mov ebx,size_table
call decimal_string_4
mov [ebx],byte 'M'
jmp .size_convert_end
@@:
mov edx,[esp]
mov eax,[edx-40+32]
mov ebx,0x400
xor edx,edx
div ebx
cmp eax,0
je @f
mov ebx,size_table
call decimal_string_4
mov [ebx],byte 'K'
jmp .size_convert_end
@@:
mov edx,[esp]
mov eax,[edx-40+32]
;.size_convert:
mov ebx,size_table
call decimal_string_4
.size_convert_end:
cmp [size_table],byte '0'
jne @f
mov [size_table],byte ' '
@@:
cmp [size_table+4],byte ' '
jne @f
mov esi,size_table+3
mov edi,esi
inc edi
mov ecx,5
std
rep movsb
jmp @r
@@:
pop edx
pop ebx
.date:
xor eax,eax
mov al,[edx-40+28]
push ebx
mov ebx,date_table
call decimal_string_2
mov al,[edx-40+29]
mov ebx,date_table+3
call decimal_string_2
mov ax,[edx-40+30]
mov ebx,year_table
call decimal_string_4
mov ax,[year_table+2]
mov [date_table+6],ax
pop ebx
ror ebx,16
add bx,[left_panel_x.size_x]
sub ebx,122+12+15
rol ebx,16
mov ecx,0
cmp [marked_file],byte 0
je @f
mov ecx,0xff0000
@@:
mov edx,type_table
mov esi,20
mov eax,4
int 0x40
popa
ret
;---------------------------------------------------------------------
draw_folder_data:
cmp [drawing_panel_folder],1
jne .right_panel
mov eax,[left_folder_block]
sub eax,[max_panel_line]
test eax,0x8000000
jz .ok_left
mov [left_start_draw_line],0
jmp @f
.ok_left:
cmp eax,[left_start_draw_line]
jae @f
mov [left_start_draw_line],eax
@@:
mov bx,[left_panel_x.start_x]
; inc bx
add bx,12
shl ebx,16
mov bx,[left_panel_y.start_y]
inc bx
mov edx,[left_start_draw_line]
imul edx,304
add edx,[left_folder_data]
add edx,32+40
mov [temp_counter],0
jmp .type_folder
.right_panel:
mov eax,[right_folder_block]
sub eax,[max_panel_line]
test eax,0x8000000
jz .ok_right
mov [right_start_draw_line],0
jmp @f
.ok_right:
cmp eax,[right_start_draw_line]
jae @f
mov [right_start_draw_line],eax
@@:
mov bx,[right_panel_x.start_x]
; inc bx
add bx,12
shl ebx,16
mov bx,[right_panel_y.start_y]
inc bx
mov edx,[right_start_draw_line]
imul edx,304
add edx,[right_folder_data]
add edx,32+40
mov [temp_counter],1
; mov edx,retrieved_devices_table
.type_folder:
xor eax,eax
.start:
pusha
mov eax,edx
cmp [temp_counter],1
je @f
sub eax,[left_folder_data]
sub eax,32+40
xor edx,edx
mov ebx,304
div ebx
cmp eax,[left_folder_block]
je .end_1
jmp .continue_1
@@:
sub eax,[right_folder_data]
sub eax,32+40
xor edx,edx
mov ebx,304
div ebx
cmp eax,[right_folder_block]
je .end_1
.continue_1:
popa
cmp eax,[max_panel_line] ; 20
je .end_2 ;.end
mov [marked_file],0
cmp [edx+299-40],byte 0
je @f
mov [marked_file],1
@@:
call clear_line
call draw_type_size_date
call draw_icon
push eax
xor eax,eax
mov ax,[left_panel_x.size_x]
push ebx edx
mov ebx,6
xor edx,edx
div ebx
pop edx ebx
sub eax,23+2+2
mov esi,[file_name_length]
mov [temp_counter_1],0
cmp esi,eax
jbe @f
mov esi,eax
mov [temp_counter_1],1
@@:
mov ecx,0
cmp [marked_file],byte 0
je @f
mov ecx,0xff0000
@@:
mov eax,4
int 0x40
cmp [temp_counter_1],0
je .continue
mov eax,esi ;[file_name_length]
imul eax,6
shl eax,16
push ebx edx
add ebx,eax
mov esi,2
mov ecx,0xff0000
mov edx,truncated_filename_char
mov eax,4
int 0x40
add ebx,1 shl 16
int 0x40
pop edx ebx
.continue:
add ebx,10
add edx,304 ;10
pop eax
inc eax
jmp .start
.end_1:
popa
.end_2:
mov ax,[left_panel_y.start_y]
add ax,[left_panel_y.size_y]
mov cx,bx
dec cx
rol ecx,16
mov cx,ax
mov eax,ecx
shr eax,16
sub cx,ax
cmp cx,0
jbe @f
mov bx,[left_panel_x.size_x]
sub ebx,12 shl 16
mov edx,0xffffff
mcall 13
@@:
 
.end:
cmp [drawing_panel_folder],1
jne @f
call draw_scroll_bar_left
ret
@@:
call draw_scroll_bar_right
ret
;---------------------------------------------------------------------
clear_line:
cmp [not_clear_lines],0
jne .end_1
pusha
shl ebx,16
shr ebx,16
dec ebx
cmp [drawing_panel_folder],1
jne .right
cmp [select_panel_counter],0
jne .continue
mov ax,[left_start_draw_cursor_line]
add ax,[left_panel_y.start_y]
cmp bx,ax
je .end
jmp .continue
.right:
cmp [select_panel_counter],0
je .continue
mov ax,[right_start_draw_cursor_line]
add ax,[right_panel_y.start_y]
cmp bx,ax
je .end
.continue:
mov ebx,[esp+16]
mov cx,bx
dec cx
rol ecx,16
mov cx,10
mov bx,[left_panel_x.size_x]
cmp [drawing_panel_folder],1
je @f
dec ebx
@@:
sub ebx,12 shl 16+15
mov edx,0xffffff
mov eax,13
int 0x40
.end:
popa
.end_1:
ret
;---------------------------------------------------------------------
draw_left_panel:
call clear_left_panel
call calc_max_panel_line
call draw_left_panel_selection
mov [drawing_panel_folder],1
call draw_folder_data
call draw_left_panel_patch
ret
;---------------------------------------------------------------------
draw_right_panel:
call clear_right_panel
call calc_max_panel_line
call draw_right_panel_selection
mov [drawing_panel_folder],2
call draw_folder_data
call draw_right_panel_patch
ret
;---------------------------------------------------------------------
draw_left_panel_patch:
cmp [select_panel_counter],0
jne .end
mov edx,read_folder_name ;read_folder.name
.1:
call clear_patch_area
mov ebx,[window_high]
sub ebx,33
add ebx,8 shl 16
mcall 4, ,0x80000000 ; ,read_folder.name
.end:
ret
;---------------------------------------------------------------------
draw_right_panel_patch:
cmp [select_panel_counter],1
jne draw_left_panel_patch.end
mov edx,read_folder_1_name ;read_folder_1.name
jmp draw_left_panel_patch.1
;---------------------------------------------------------------------
clear_patch_area:
push edx
mov ebx,[window_width]
sub ebx,9
add ebx,5 shl 16
mov ecx,[window_high]
sub ecx,35
shl ecx,16
mov cx,12
mov edx,0xffffcc
mov eax,13
int 0x40
pop edx
ret
;---------------------------------------------------------------------
draw_left_panel_selection:
cmp [select_panel_counter],0
jne .end
mov eax,[left_folder_block]
sub eax,[left_start_draw_line]
mov edx,left_start_draw_cursor_line
mov cx,[edx]
call for_all_panel_selection
mov eax,[left_folder_block]
dec eax
imul eax,10
cmp ax,cx
jae @f
mov cx,ax
@@:
mov [edx],cx
mov ebx,[left_panel_x]
add cx,[left_panel_y.start_y]
.1:
shl ecx,16
mov cx,10
mov edx,0xbbddff
sub ebx,15
mov eax,13
int 0x40
.end:
ret
;---------------------------------------------------------------------
draw_right_panel_selection:
cmp [select_panel_counter],1
jne draw_left_panel_selection.end
mov eax,[right_folder_block]
sub eax,[right_start_draw_line]
mov edx,right_start_draw_cursor_line
mov cx,[edx]
call for_all_panel_selection
mov eax,[right_folder_block]
dec eax
imul eax,10
cmp ax,cx
jae @f
mov cx,ax
@@:
mov [edx],cx
mov ebx,[right_panel_x]
add cx,[right_panel_y.start_y]
jmp draw_left_panel_selection.1
;---------------------------------------------------------------------
for_all_panel_selection:
; dec eax
imul eax,10
cmp ax,cx
jae @f
mov cx,ax
@@:
mov eax,[max_panel_line]
dec eax
imul eax,10
cmp ax,cx
jae @f
mov cx,ax
@@:
ret
;---------------------------------------------------------------------
clear_left_panel:
mov ebx,7 shl 16
add ebx,[window_width]
shr bx,1
sub ebx,6+1
mov [left_panel_x],ebx
call calculate_panel_1
mov [left_panel_y],ecx
; cmp [left_panel_clear_all],0
; je @f
; call calculate_panel_2
; mov [left_panel_clear_all],0
;@@:
ret
;---------------------------------------------------------------------
calculate_panel_1:
mov ecx,[skin_high]
add ecx,70
shl ecx,16
add ecx,[window_high]
sub ecx,130
ret
;---------------------------------------------------------------------
;calculate_panel_2:
; sub ebx,15
; mov edx,0xffffff
; mov eax,13
; int 0x40
; ret
;---------------------------------------------------------------------
clear_right_panel:
mov ebx,[window_width]
shr ebx,1
add ebx,3
shl ebx,16
add ebx,[window_width]
shr bx,1
sub bx,2+6
mov [right_panel_x],ebx
call calculate_panel_1
mov [right_panel_y],ecx
; cmp [right_panel_clear_all],0
; je @f
; call calculate_panel_2
; mov [right_panel_clear_all],0
;@@:
ret
;---------------------------------------------------------------------
erase_fbutton:
mov edx,0x80000065
mov eax,8
mov ebp,12
.start:
int 0x40
dec ebp
jnz .start
ret
;---------------------------------------------------------------------
draw_fbutton:
mov ecx,[window_high]
sub ecx,20
shl ecx,16
add ecx,15
mov eax,[window_width]
; sub eax,8
mov ebx,12
xor edx,edx
div ebx
mov [fbutton_width],eax
mov ebx,5 shl 16
add ebx,eax
sub ebx,2
mov esi,0xaa00
mov edx,101
mov eax,8
mov ebp,12
.start:
cmp ebp,1
jne @f
mov eax,ebx
shr eax,16
mov bx,ax
mov eax,[window_width]
sub ax,bx
sub ax,5
mov bx,ax
mov eax,8
@@:
mcall
push eax ebx edx
mov edx,0x6060ff
mov bx,10
cmp ebp,4
jae @f
mov bx,18
@@:
mcall 13
cmp ebp,1
je @f
ror ebx,16
add ebx,[fbutton_width]
dec ebx
rol ebx,16
mov bx,1
mov edx,0xcccccc
inc ecx
mcall
dec ecx
@@:
pop edx ebx eax
call .rol_ror
inc edx
dec ebp
jnz .start
call draw_fbutton_name
ret
.rol_ror:
rol ebx,16
add ebx,[fbutton_width]
ror ebx,16
ret
;---------------------------------------------------------------------
draw_fbutton_name:
mov ebx, 7 shl 16
add ebx,[window_high]
sub ebx,15
mov eax,4
mov ecx,0x90000000
push ebx
call .type_1
pop ebx
mov ecx,0x90ffffff
sub ebx,1 shl 16 + 1
.type_1:
cmp [shift_flag],1
je .type_shift
cmp [ctrl_flag],1
je .type_ctrl
cmp [alt_flag],1
je .type_alt
.type:
mov edx,fbutton_name.f1
call .type_all
mov edx,fbutton_name.f2
call .type_all
mov edx,fbutton_name.f3
call .type_all
mov edx,fbutton_name.f4
call .type_all
mov edx,fbutton_name.f5
call .type_all
mov edx,fbutton_name.f6
call .type_all
mov edx,fbutton_name.f7
call .type_all
mov edx,fbutton_name.f8
call .type_all
mov edx,fbutton_name.f9
call .type_all
mov edx,fbutton_name.f10
call .type_all
mov edx,fbutton_name.f11
call .type_all
mov edx,fbutton_name.f12
int 0x40
ret
.type_shift:
mov edx,fbutton_name_shift.f1
call .type_all
mov edx,fbutton_name_shift.f2
call .type_all
mov edx,fbutton_name_shift.f3
call .type_all
mov edx,fbutton_name_shift.f4
call .type_all
mov edx,fbutton_name_shift.f5
call .type_all
mov edx,fbutton_name_shift.f6
call .type_all
mov edx,fbutton_name_shift.f7
call .type_all
mov edx,fbutton_name_shift.f8
call .type_all
mov edx,fbutton_name_shift.f9
call .type_all
mov edx,fbutton_name_shift.f10
call .type_all
mov edx,fbutton_name_shift.f11
call .type_all
mov edx,fbutton_name_shift.f12
int 0x40
ret
.type_ctrl:
mov edx,fbutton_name_ctrl.f1
call .type_all
mov edx,fbutton_name_ctrl.f2
call .type_all
mov edx,fbutton_name_ctrl.f3
call .type_all
mov edx,fbutton_name_ctrl.f4
call .type_all
mov edx,fbutton_name_ctrl.f5
call .type_all
mov edx,fbutton_name_ctrl.f6
call .type_all
mov edx,fbutton_name_ctrl.f7
call .type_all
mov edx,fbutton_name_ctrl.f8
call .type_all
mov edx,fbutton_name_ctrl.f9
call .type_all
mov edx,fbutton_name_ctrl.f10
call .type_all
mov edx,fbutton_name_ctrl.f11
call .type_all
mov edx,fbutton_name_ctrl.f12
int 0x40
ret
.type_alt:
mov edx,fbutton_name_alt.f1
call .type_all
mov edx,fbutton_name_alt.f2
call .type_all
mov edx,fbutton_name_alt.f3
call .type_all
mov edx,fbutton_name_alt.f4
call .type_all
mov edx,fbutton_name_alt.f5
call .type_all
mov edx,fbutton_name_alt.f6
call .type_all
mov edx,fbutton_name_alt.f7
call .type_all
mov edx,fbutton_name_alt.f8
call .type_all
mov edx,fbutton_name_alt.f9
call .type_all
mov edx,fbutton_name_alt.f10
call .type_all
mov edx,fbutton_name_alt.f11
call .type_all
mov edx,fbutton_name_alt.f12
.type_all:
int 0x40
call draw_fbutton.rol_ror
ret
/programs/fs/kfm/trunk/editbox.mac
0,0 → 1,1129
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬
macro use_general_func
{
;debug_func
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­®© ç á⨠-----------------
;----------------------------------------------------------
.draw_shift:
test word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
jz @f
mov ebp,shift_color
mov ebx,dword ed_shift_pos
call .sh_cl_
@@: ret
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ⥪áâ  --------------------------
;----------------------------------------------------------
.draw_text:
;--- ¢ëç¨á«ï¥¬, ᪮«ìª® ¯®¬¥é ¥âáï ᨬ¢®«®¢ ---
;--- çâ®¡ë ¬ãá®à ­¥ à¨á®¢ âì ---
call .get_n
mov esi,ed_size
mov ebx,ed_offset
sub esi,ebx
cmp eax,esi
jae @F
mov esi,eax ;çâ®¡ë ­¥ ¢ë室¨âì §  ¯à¥¤¥«ë íªà ­ 
;--- à¨á㥬 ⥪áâ ---
@@: mov eax,4
mov ebx,ed_left
mov edx,ed_offset
add ebx,2
shl ebx,16
add ebx,ed_top
mov ecx,ed_text_color
add ebx,4
add edx,ed_text
mcall
ret
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ä®­  ----------------------------
;¢å®¤­ë¥ ¤ ­­ë¥
;eax
;edx - color
;----------------------------------------------------------
;¢å®¤ ⮫쪮 梥â edx
.draw_bg:
mov ebx,ed_left
add ebx,1
mov edx,ed_color
shl ebx,16
add ebx,ed_width
sub ebx,1
.draw_bg_eax:
mov ecx,ed_top
mov eax,13
add ecx,1
shl ecx,16
add ecx,ed_height
dec ecx
mcall
ret
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â 
;----------------------------------------------------------
.get_n:
mov eax,ed_width ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
xor edx,edx ;१ã«ìâ â à á¯®«®£ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
sub eax,4 ;¢ëç⨬ 4
mov ebx,6 ;§ £à㧬¨ ¤¥«¨â¥«ì
div ebx ;à §¬¤¥«¨¬ ­  6
ret
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
;----------------------------------------------------------
;¢å®¤­ë¥ ebp- 梥â
.clear_cursor:
mov edx,ebp
mov ebx,cl_curs_x
mov ecx,cl_curs_y
jmp .draw_curs
.draw_cursor:
mov edx,ed_text_color
mov ebx,ed_pos
mov ecx,ed_offset
sub ebx,ecx
 
lea ebx,[ebx*2+ebx]
shl ebx,1
;imul ebx,6
add ebx,ed_left
mov ecx,ed_top
inc ebx
add ecx,2
mov ebp,ebx
shl ebx,16
mov bx,bp
mov ebp,ecx
shl ecx,16
mov cx,bp
add ecx,ed_height-4
mov cl_curs_x,ebx
mov cl_curs_y,ecx
.draw_curs:
mcall 38
ret
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï à ¬ª¨ ----------------------------
;----------------------------------------------------------
.draw_border:
;--- 梥â à ¬ª¨ ---
test word ed_flags,ed_focus
mov edx,ed_focus_border_color
jne @f
mov edx,ed_blur_border_color
@@:
;--- ᢥàåã ---
mov eax,38
mov ebx,ed_left
mov ecx,ebx
shl ebx,16
mov bx,cx
add ebx,ed_width
mov ecx,ed_top
mov esi,ecx
shl ecx,16
mov cx,si
mcall
;--- á­¨§ã ---
mov esi,ecx
add ecx,ed_height
mov ebp,ecx
shl ecx,16
mov cx,bp
mcall
;--- á«¥¢  ---
mov cx,si
mov ebp,ebx
sub ebx,ed_width
mcall
;--- á¯à ¢  ---
mov ebx,ebp
shl ebx,16
mov bx,bp
mcall
ret
;----------------------------------------------------------
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«® ãáâ ­®¢ª  ä« £  ed_offset_cl ¨­ ç¥
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
; ¢ ®¡é¥© ¡¨â®¢®© ¬ àà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
;----------------------------------------------------------
.check_offset:
pusha
mov ecx,ed_pos
mov ebx,ed_offset
cmp ebx,ecx
ja .sub_8
 
push ebx
call .get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ¢ ¯ à¥ ॣ¨áâ஢ edx:eax
pop ebx
mov edx,ebx
add edx,eax ;ed_offset+width editbox
inc edx ;­¥®¡å®¤¨¬® ¤«ï ­®¬ «ì­®£® ¯®«®¦¥­¨ï ªãàá®à  ¢ ªà ©­¥© «¥¢®© ¯®§¨æ¨¨
cmp edx,ecx
ja @f
 
mov edx,ed_size
cmp edx,ecx
je .add_end
 
sub edx,ecx
cmp edx,8
jbe .add_8
add ebx,8
jmp .chk_d
 
.sub_8: cmp ecx,0
je .sub_min
cmp ebx,8
jbe .sub_min
sub ebx,8 ;ebx=ed_offset
jmp .chk_d
.sub_min:
xor ebx,ebx
jmp .chk_d
 
.add_end:sub edx,eax
mov ebx,edx
jmp .chk_d
.add_8: add ebx,edx
.chk_d: mov ed_offset,ebx
call .draw_bg
and word ed_flags,ed_offset_cl
edit_ex
@@:
or word ed_flags,ed_offset_fl
edit_ex
}
 
macro use_key_func
{
;Ž¡à ¡®âª  Shift ¤«ï á­ïâ¨ï ¢ë¤¥«¥­¨ï ­¥¨§¢¥áâ­®© ®¡« áâ¨
.shift: ;;;;;;;SHIFT
test word ed_flags,ed_shift
je .f_exit
 
@@: mov ebp,shift_color
or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
mov ebx,dword ed_shift_pos
call .sh_cl_
jmp .draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;
.f_exit:call .check_offset
and word ed_flags,ed_shift_cl
call .enable_null
jmp .draw_cursor_text
.sh_cl_:
;;;;;;SHIFT end
;®¡à ¡®âª  ®ç¨á⪨, ¯à¨ «¥¢®¬ - ¯à ¢®¬ ¤¢¨¦¥­¨¨ ¢ë¤¥«¥­¨ï
;¤«ï ®¡à ¡®âª¨ á­ïâ¨ï ¢ë¤¥«¥­¨ï
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
mov eax,dword ed_pos
cmp eax,ebx
 
jae .sh_n
push eax ;¬¥­ì襥 ¢ eax
push ebx ;¡®«ì襥
jmp .sh_n1
;¥á«¨ ¨­ ç¥
.sh_n: push ebx
push eax
.sh_n1:
call .check_offset
call .get_n
mov edx,eax ;size of ed_box
mov ecx,ed_offset
add eax,ecx ;eax = w_off= ed_offset+width
mov edx,eax ;save
pop ebx ;¡®«ì襥
pop eax ;¬¥­ì襥
 
cmp eax,ecx ;áà ¢­¥­¨¥ á ¬¥­ì襣® á offset.
jae .f_f ;¥á«¨ ¡®«ìè¥
xor eax,eax
cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
jb @f
sub ebx,ecx
jmp .nxt_f
@@: mov ebx,edx
sub ebx,ecx
jmp .nxt_f
.f_f:
sub eax,ecx
cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
jle @f
sub ebx,ecx
sub ebx,eax
jmp .nxt_f
@@:
mov ebx,edx
sub ebx,ecx
sub ebx,eax
.nxt_f:
mov edx,ebx
lea ebx,[eax*2+eax]
shl ebx,1
add ebx,ed_left
inc ebx
shl ebx,16
lea ecx,[edx*2+edx]
shl ecx,1
mov bx,cx
inc ebx
mov edx,ebp;shift_color
 
call .draw_bg_eax
@@: call .enable_null
ret
;;;;;;;;;;;;;;;;;;;;;
;“áâ ­®¢ª - á­ï⨥ ¢ë¤¥«¥­¨ï ¢ ®¤¨­ ᨬ¢®«
;;;;;;;;;;;;;;;;;;;;;
.drw_sim:
mov eax,dword ed_pos
call .draw_rectangle ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
jmp @b
;;;;;;;;;;;;;;;;;;;;;
;”ãªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
;‹®£¨ª :
;;;;;;;;;;
.draw_wigwag:
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
mov ebp,shift_color
call .clear_cursor
 
or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
mov ebp,shift_color
mov eax,dword ed_pos
test word ed_flags,ed_left_fl
jz .low
jmp @f
;;;;;;;;;;
;”ãªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
;‹®£¨ª :
;;;;;;;;;;
.draw_wigwag_cl:
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
mov ebp,ed_color
call .clear_cursor
 
mov ebp,ed_color
mov eax,dword ed_pos
test word ed_flags,ed_left_fl
jz .low
@@: call .draw_rectangle ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª § ªà è¨¢ ¥¬®© ®¡« áâ¨
ret
.low: dec eax
jmp @b
;¢å®¤­®© ¯ à ¬¥âà ebx - ed_pos
.sh_first_sh:
test word ed_flags,ed_shift
je @f
mov dword ed_shift_pos_old,ebx
test word ed_flags,ed_shift_on
jne @f
mov dword ed_shift_pos,ebx
or word ed_flags,ed_shift_on
@@: ret
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨¥, ¥á«¨ ­¥â shift
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
.sh_st_of:
test word ed_flags,ed_shift
jne @f
test word ed_flags,ed_shift_bac
je @f
mov ebp,ed_color
mov ebx,dword ed_shift_pos
call .sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
and word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥
jmp .draw_cursor_text
@@:
and word ed_flags,ed_shift_off
edit_ex
;¯à®¢¥àª  á®áâ®ï­¨ï shift ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
.sh_enable:
test word ed_flags,ed_shift
jne .sh_ext_en ;­ à¨á®¢ âì § ªà è¥­ë© ¯àאַ㣮«ì­¨ª
 
test word ed_flags,ed_shift_bac
je @f
call .check_offset
 
mov ebp,ed_color
mov ebx,dword ed_shift_pos
call .sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
call .draw_wigwag_cl
and word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­®
ret
 
@@: mov ebp,ed_color
call .clear_cursor
call .check_offset
ret
.sh_ext_en:
call .check_offset
test word ed_flags,ed_offset_fl
je @f
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
mov eax,dword ed_shift_pos
mov ebx,dword ed_pos
mov ecx,dword ed_shift_pos_old
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
cmp eax,ecx
je .1_shem
jb .smaller
cmp ecx,ebx
ja .1_shem
call .draw_wigwag_cl ;clear
jmp .sh_e_end
.smaller:
cmp ecx,ebx
jb .1_shem
call .draw_wigwag_cl ;clear
jmp .sh_e_end
;alike =
.1_shem: call .draw_wigwag
.sh_e_end: and word ed_flags,ed_shift_off
ret
@@: mov ebp,shift_color
mov ebx,dword ed_shift_pos
call .sh_cl_
jmp .sh_e_end
;äã­ªæ¨ï ¤«ï ®¡à ¡®âª¨ shift ¯à¨ ­ ¦ â¨¨ home and end
.sh_home_end:
mov ebp,ed_color
call .clear_cursor
test word ed_flags,ed_shift_bac
je @f
mov ebp,ed_color
mov ebx,dword ed_shift_pos_old
call .sh_cl_
 
@@: test word ed_flags,ed_shift
je .sh_exit_ ;¢ë©â¨
mov ebp,shift_color
mov ebx,dword ed_shift_pos
call .sh_cl_
or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
jmp .sh_e_end
.sh_exit_: call .check_offset
ret
;äã­ªæ¨ï ¢­¥á¥­¨ï 0 ¯®  ¤à¥áã ed_size+1
.enable_null:
pusha
mov eax,ed_size
mov ebx,ed_text
test eax,eax
add eax,ebx
jne @f
inc eax
@@: xor ebx,ebx
mov [eax],bl
edit_ex
;- 㤠«¥­¨¥ ᨬ¢®« 
;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
.del_char:
mov esi,ed_text
test word ed_flags,ed_shift_on
je @f
mov eax,dword ed_shift_pos
mov ebx,esi
cmp eax,ecx
jae .dh_n
 
mov ed_pos,eax ;çâ® ¡ë ­¥ ¡ë«® ã¡¥£ ­¨ï ªãàá®à 
mov ebp,ecx
sub ebp,eax
add ebx,eax ;eax ¬¥­ìè¥
sub edx,ecx
add esi,ecx
 
mov dword ed_shift_pos,ebp
jmp .del_ch_sh
;¥á«¨ ¨­ ç¥
.dh_n:
mov ebp,eax
sub ebp,ecx
add ebx,ecx
sub edx,eax
add esi,eax
mov dword ed_shift_pos,ebp
jmp .del_ch_sh
 
@@: add esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãää¥àã
mov ebx,esi
inc esi
cld
 
sub edx,ecx
.del_ch_sh:
 
push edi
mov edi,ebx
@@:
lodsb
stosb
dec edx
jns @b
pop edi
ret
;¢ëç¨á«¨âì § ªà è¨¢ ¥¬ãî ®¡« áâì
;ᮣ« è¥­¨¥ ¢ ebp - ¯¥à¥¤ ¥âáï ed_size
.clear_bg:
call .get_n ;¯®«ãç¨âì à §¬¥à ¢ ᨬ¢®« å è¨à¨­ë ª®¬¯®­¥­â 
push eax
mov ebx,ed_offset
add eax,ebx ;eax = w_off= ed_offset+width
mov ebx,ebp ;ed_size
cmp eax,ebx
jb @f
mov eax,ed_pos
sub ebx,eax
mov ecx,ed_offset
sub eax,ecx
jmp .nxt
@@: mov ebx,ed_pos
push ebx
sub eax,ebx
mov ebx,eax ;It is don't optimal
pop eax ;ed_pos
mov ecx,ed_offset
sub eax,ecx
.nxt:
mov ebp,eax ;¯à®¢¥àª  ­  ¢ë室 § ªà è¨¢ ¥¬®© ®¡« á⨠§  ¯à¥¤¥«ë ¤«¨­ë
add ebp,ebx
pop edx
cmp ebp,edx
je @f
inc ebx
 
@@: mov edx,ebx
lea ebx,[eax*2+eax]
shl ebx,1
add ebx,ed_left
inc ebx
shl ebx,16
lea ecx,[edx*2+edx]
shl ecx,1
mov bx,cx
mov edx,ed_color
call .draw_bg_eax
ret
;;;;;;;;;;;;;;;;;;;
;;; Ž¡à ¡®âª  ¯à¨¬¨â¨¢®¢
;;;;;;;;;;;;;;;;;;;;
; à¨á®¢ âì ¯àאַ㣮«ì­¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp
;¢å®¤­ë¥ ¯ à ¬¥âàë:
;eax=dword ed_pos
;ebp=-梥â ed_color or shift_color
.draw_rectangle:
mov ecx,dword ed_offset
sub eax,ecx
lea ebx,[eax*2+eax]
shl ebx,1
inc ebx
add ebx,ed_left
shl ebx,16
add ebx,6
mov edx,ebp
call .draw_bg_eax
ret
;;;;;;;;;;;;;;;;;;
;;à®¢¥àª  ­ ¦ â «¨ shift
;;;;;;;;;;;;;;;;;;
.check_shift:
pusha ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
mcall 66,3,1
test al,0x03
je @f
or word ed_flags,ed_shift ;ãáâ ­®¢¨¬ ä« £
@@:edit_ex
}
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï
macro use_key_process backspase,delete,left,right,home,end,insert
{
if backspase eq
else
cmp ah,8
jz .backspace
end if
if delete eq
else
cmp ah,0xb6
jz .delete
end if
if left eq
else
cmp ah,176
jz .left
end if
if right eq
else
cmp ah,179
jz .right
end if
if home eq
else
cmp ah,180
jz .home
end if
if home eq
else
cmp ah,181
jz .end
end if
if insert eq
else
cmp ah,185 ;insert
jz .insert
end if
}
macro use_key_no_process up,down,esc
{
if up eq
else
cmp ah,177
jz .editbox_exit
end if
if down eq
else
cmp ah,178
jz .editbox_exit
end if
if esc eq
else
cmp ah,27 ;ESC - ª« ¢¨è  ))
jz .editbox_exit
end if
}
 
macro use_key_figures_only
{
test word ed_flags,ed_figure_only ; ⮫쪮 æ¨äàë ?
jz @f
cmp ah,'0'
jb .editbox_exit
cmp ah,'9'
ja .editbox_exit
@@:
}
macro are_key_shift_press
{
test word ed_flags,ed_shift_on
je @f
;‚室­ë¥ ¤ ­­ë¥ edx=ed_size;ecx=ed_pos
push eax
mov edx,ed_size
mov ecx, ed_pos
pusha
;;;;;;;;;;;;;;;;;;;;;
;clear input arrea
mov ebp,ed_color
mov ebx,dword ed_shift_pos
call .sh_cl_
mov ebp,ed_size
call .clear_bg
;;;;;;;;;;;;;;;;;;;;;
popa
call .del_char
;;;;
mov eax,dword ed_shift_pos
mov ebx,ed_size
sub ebx,eax
mov ed_size,ebx
pop eax
@@:
}
macro are_key_cur_end
{
mov ecx,ed_size
mov edx, ed_max
test word ed_flags,ed_insert
jne @f
cmp ecx,edx
jae .editbox_exit
@@: mov ebx, ed_pos
cmp ebx,edx
jl @f ; ¥á«¨ ¬¥­ìè¥ ¨«¨ à ¢­®
jmp .editbox_exit
 
@@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à  ¢¯à ¢®
mov ecx,ed_size
push edi eax
mov ebp,edi
mov esi,ed_text ; “ª § â¥«ì ­  ¡ãä¥à
;ã¤¥¬ à ¡®â âì á® áâப®©
add esi,ecx ;add ed_size ¤®¡ ¢¨¬ max size
mov edi,esi
 
cmp ecx,ebx ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
je .In_k
 
test word [ebp+40],ed_insert ;IF insert is enable â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp
jne .ins_v
;clear
pusha
mov edi,ebp
mov ebp,ed_size
call .clear_bg
popa
sub ecx,ebx ; ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï.
inc edi ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢ ¯à ¢®
std
inc ecx
@@:
;--------
lodsb
stosb
;--------
loop @b
.In_k: cld
pop eax
mov al,ah
stosb
pop edi
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
; 㢥«¨ç¨¢ ¥¬ §­ ç¥­¨¥ à §¬¥à  ¨ ¯®§¨æ¨¨
inc dword ed_size
inc dword ed_pos
call .draw_all2
jmp .shift
}
macro use_work_key
{
.insert: test word ed_flags,ed_insert ;not word ed_insert
je @f
and word ed_flags,ed_insert_cl
jmp .editbox_exit
@@:
or word ed_flags,ed_insert
jmp .editbox_exit
.ins_v:
dec dword [ebp+42];ed_size ;processing is insert
sub esi,ecx
add esi,ebx
mov edi,esi
;clear
pusha
mov edi,ebp
mov ebp,ed_pos
call .clear_bg
popa
jmp .In_k
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.delete:
mov edx,ed_size
mov ecx,ed_pos
cmp edx,ecx
jg .bac_del
test word ed_flags,ed_shift_on
jne .del_bac
edit_ex
.bac_del:
call .del_char
jmp .draw_all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  backspace ---
.backspace:
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
mov ecx,ed_pos
test ecx,ecx
jnz .del_bac
test word ed_flags,ed_shift_on
jne .bac_del
 
edit_ex
.del_bac:
mov edx,ed_size
cmp edx,ecx ;if ed_pos=ed_size
je @f
dec ecx
call .del_char
@@: test word ed_flags,ed_shift_on
jne .bac_del
dec dword ed_pos
.draw_all:
push .shift;.draw_cursor_text;eax
 
test word ed_flags,ed_shift_on
je @f
mov eax,dword ed_shift_pos
mov ebx,ed_size
sub ebx,eax
mov ed_size,ebx
 
mov ebp,ed_color
call .clear_cursor
call .check_offset
call .draw_bg
ret
@@: dec dword ed_size
 
.draw_all2:
and word ed_flags,ed_shift_cl
mov ebp,ed_color
call .clear_cursor
call .check_offset
mov ebp,ed_size
call .clear_bg
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  left ---
.left: mov ebx,ed_pos
test ebx,ebx
jz .sh_st_of
or word ed_flags,ed_left_fl
call .sh_first_sh
dec dword ed_pos
call .sh_enable
jmp .draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  right ---
.right: mov ebx,ed_pos
cmp ebx,ed_size
je .sh_st_of
and word ed_flags,ed_right_fl
call .sh_first_sh
inc dword ed_pos
call .sh_enable
jmp .draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.home:
mov ebx,ed_pos
test ebx,ebx
jz .sh_st_of
call .sh_first_sh
xor eax,eax
mov ed_pos,eax
call .sh_home_end
jmp .draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.end:
mov ebx,ed_pos
cmp ebx,dword ed_size
je .sh_st_of
call .sh_first_sh
mov eax,ed_size
mov ed_pos,eax
call .sh_home_end
jmp .draw_cursor_text
}
 
macro use_mouse_func scr_w
{
;----------------------------------------------------------
;--- Ž¡à ¡®âª  .mouse_wigwag
;----------------------------------------------------------
.mouse_wigwag:
shr eax,16
or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
;;;;;;;;;;;;;;;;;;
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
;;;;;;;;;;;;;;;;;;
mov ebx,dword [procinfo+34]
add ebx,ed_left
if scr_w eq
else
add ebx,dword scr_w
end if
cmp eax,ebx
jb .mleft
 
add ebx,ed_width
cmp eax,ebx
ja .mright
 
sub ebx,ed_width
 
xor edx,edx
sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
mov ebx,6
div ebx
;;;;;;;;;;;;;;;;;;
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
;;;;;;;;;;;;;;;;;;
;®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饭¨¥
cmp eax,dword ed_size ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
ja .mwigvag
.mdraw:
mov dword ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
;¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å
mov ecx,dword ed_shift_pos
mov ebx,dword ed_shift_pos_old
mov dword ed_shift_pos_old,eax ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩
cmp ecx,ebx ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
je .m1_shem ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥
jb .msmaller ;¤¢¨¦¥­¨¥ ¡ë«® ->
cmp ebx,eax ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â
ja .m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì
je .mwigvag ;¥á«¨ ¨§¬¥­¥­¨ï ­¥ ¡ë«®, â® ­¨ç¥£® ­¥ ¤¥« âì
mov ebp,ed_color ;âã⠭㦭® ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
call .sh_cl_
jmp .mwigvag
.msmaller:
cmp ebx,eax
jb .m1_shem
mov ebp,ed_color
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
call .sh_cl_
jmp .mwigvag
;alike =
.m1_shem:
mov ebp,shift_color
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
mov ebx,ecx
call .sh_cl_
jmp .mwigvag
.mwigvag:
and word ed_flags,ed_shift_mcl
jmp .draw_cursor_text
; popa
; ret
.mleft:
mov eax,ed_pos
cmp eax,0
jbe .mwigvag
dec eax
call .check_offset
push eax
mov ebx,ed_shift_pos
mov ebp,shift_color
call .sh_cl_
pop eax
jmp .mdraw
.mright:
mov eax,ed_pos
mov ebx,ed_size
cmp eax,ebx
jae .mwigvag
inc eax
call .check_offset
mov ebx,ed_shift_pos
mov ebp,shift_color
push eax
call .sh_cl_
pop eax
jmp .mdraw
}
 
macro use_work_mause scr_h,scr_w
;----------------------------------------------------------
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
;----------------------------------------------------------
{
test word ed_flags,ed_mouse_on
jne .mouse_wigwag
;----------------------------------------------------------
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
;----------------------------------------------------------
mov ebx,dword [procinfo + 38]
add ebx,ed_top
if scr_h eq
else
add ebx,scr_h
end if
cmp ax,bx
jl ._blur;.mouse_end_no_focus
 
add ebx,ed_height
cmp ax,bx
jg ._blur;.mouse_end_no_focus
 
shr eax,16
 
mov ebx,dword [procinfo + 34]
add ebx,ed_left
if scr_w eq
else
add ebx,scr_w
end if
cmp ax,bx
jl ._blur;.mouse_end_no_focus
 
add ebx,ed_width
cmp ax,bx
jg ._blur;.mouse_end_no_focus
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
push eax
mov ebp,ed_color
call .clear_cursor
pop eax
._mvpos:
mov ebx,dword [procinfo+ 34]
xor edx,edx
sub eax,ed_left
sub eax,ebx
if scr_w eq
else
add ebx,scr_w
sub eax,2
end if
mov ebx,6
div bx
add eax,ed_offset
cmp eax,ed_size
jna ._mshift
mov eax,ed_size
._mshift:
;;;;;;;
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥­¨ï ¯® shift
;;;;;;;
test word ed_flags,ed_shift_bac
je @f
mov ebp,dword ed_color
mov ebx,dword ed_shift_pos
push eax
call .sh_cl_
and word ed_flags,ed_shift_bac_cl
pop eax
@@:
test word ed_flags,ed_mouse_on
jne @f
mov dword ed_shift_pos,eax
or word ed_flags,ed_mouse_on
mov dword ed_pos,eax
mov dword [mouse_flag],edi ;ãáâ ­®¢¨¬ ¨¤¥­â¨ä¨ª â®à
bts word ed_flags,1 ;ãáâ ­®¢ª  䮪ãá 
jmp .m_sh
@@:
cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
je .editbox_exit
mov ed_pos,eax
mov ebp,dword shift_color
mov ebx,dword ed_shift_pos
call .sh_cl_
or word ed_flags,ed_mous_adn_b ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
.m_sh: call .draw_text
call .draw_cursor
;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ãáâ ­®¢ª¨ 䮪ãá  ---------------------------
;----------------------------------------------------------
jmp .drc
._blur:
test word ed_flags,ed_always_focus
jne .editbox_exit
btr word ed_flags,1 ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
jnc .editbox_exit
 
mov ebp,ed_color
call .clear_cursor
.drc: call .draw_border
jmp .editbox_exit
}
 
 
; Œ ªà®á ¢ë室 
macro edit_ex
{
popa
ret
}
macro debug
{
;----------- ®â« ¤ª 
pushad
; mov dword [ed_buffer.2],0
; mov eax,edi
mov eax,dword [ed_buffer.2]
mov edi,ed_buffer.3
call .str
;à¨á®¢ ­¨¥ ä®­ 
mov eax,13
mov ebx,178*65536+70
mov ecx,28*65536+10
xor edx,edx
int 0x40
;¢ë¢®¤ §­ ç¥­¨ï ­  íªà ­
mov eax,4
mov ebx,180*65536+30
mov ecx,0x10DDBBCC
mov edx,ed_buffer.3
mov esi,8
int 0x40
popad
;----------- ®â« ¤ª 
}
macro debug_func
{
.str:
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®©
cmp eax,ecx ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
jb @f
xor edx,edx ;®ç¨áâ¨âì edx
div ecx ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
push edx ;¯®«®¦¨âì ¢ á⥪
;dec edi ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
pop eax
@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
;sbb al,$69 ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
;das ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
}
 
;;;;;;;;;;;;;;;
;For LibGui
;;;;;;;;;;;;;;;
macro srt_ed_libgui
{
ed_width equ [EditBox.ed_width] ;è¨à¨­  ª®¬¯®­¥­â 
ed_left equ [EditBox.ed_left] ;¯®«®¦¥­¨¥ ¯® ®á¨ å
ed_top equ [EditBox.ed_top] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
ed_color equ [EditBox.ed_color] ;梥â ä®­  ª®¬¯®­¥­â 
shift_color equ [EditBox.shift_color] ;=0x6a9480
ed_focus_border_color equ [EditBox.ed_focus_border_color] ;梥â à ¬ª¨ ª®¬¯®­¥­â 
ed_blur_border_color equ [EditBox.ed_blur_border_color] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
ed_text_color equ [EditBox.ed_text_color] ;梥â ⥪áâ 
ed_max equ [EditBox.ed_max] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
ed_text equ [EditBox.ed_text] ;㪠§ â¥«ì ­  ¡ãä¥à
ed_flags equ [EditBox.ed_flags] ;ä« £¨
ed_size equ [EditBox.ed_size] ;ª®«-¢® ᨬ¢®«®¢
ed_pos equ [EditBox.ed_poz] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [EditBox.ed_offset] ;ᬥ饭¨¥
cl_curs_x equ [EditBox.cl_curs_x] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [EditBox.cl_curs_y] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [EditBox.ed_shift_pos] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [EditBox.ed_shift_pos_old] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;®¤­¨ ᨬ¢®«ë
ed_always_focus= 100000000000000b
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥­¨ï
ed_shift_on= 1000b ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; ¢ëá®â 
}
/programs/fs/kfm/trunk/err_wind.inc
0,0 → 1,58
read_folder_error:
mov [error_pointer],read_folder_name ;read_folder.name
jmp error_window
read_folder_1_error:
mov [error_pointer],read_folder_1_name ;read_folder_1.name
jmp error_window
initiation_error:
mov [error_pointer],ini_file_name
jmp error_window
buttons_error:
mov [error_pointer],buttons_file_name
jmp error_window
icon_error:
mov [error_pointer],icons_file_name
error_window:
mov [file_system_error],eax
.red:
call draw_error_window
.still:
mcall 10
cmp eax,1
je .red
cmp eax,3
je .button
jmp .still
.button:
mcall -1
jmp .still
;---------------------------------------------------------------------
draw_error_window:
mcall 12, 1
mcall 0,[error_window_x] ,[error_window_y], 0x03ff0000
mcall 4,<10,30>,0x90ffffff,[error_pointer]
mcall 4,<10,50>, ,error_type
mcall 47,0xa0000,[file_system_error],<140,50>,0x10ffffff
mcall 12, 2
ret
;---------------------------------------------------------------------
start_error_window_thread:
mov [file_system_error],eax
mcall 9, procinfo, -1
mov eax,[ebx+46]
shr eax,1
add eax,[ebx+38]
sub eax,40
mov [error_window_y+2],ax
mov eax,[ebx+42]
shr eax,1
add eax,[ebx+34]
sub eax,125
mov [error_window_x+2],ax
mcall 51,1,thread_start,thread_stack
ret
;---------------------------------------------------------------------
thread_start:
; mov [error_pointer],start_file_data.name
jmp error_window.red
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/exit.inc
0,0 → 1,6
exit_apl:
mov [confirmation_type],exit_type
call confirmation_action
cmp [work_confirmation_yes],1
jne red
mcall -1
/programs/fs/kfm/trunk/file_inf.inc
0,0 → 1,481
files_information:
xor eax,eax
mov [alt_flag],al
mov [files_counter],eax
mov [directories_counter],eax
mov [files_size.low],eax
mov [files_size.high],eax
call get_files_information
mov eax,files_size
mov ebx,type_size_string
call decimal_string_20
call start_files_information_thread
jmp still
;---------------------------------------------------------------------
start_files_information_thread:
mcall 9, procinfo, -1
mov eax,[ebx+46]
shr eax,1
add eax,[ebx+38]
sub eax,150
mov [files_information_window_y+2],ax
mov eax,[ebx+42]
shr eax,1
add eax,[ebx+34]
sub eax,125
mov [files_information_window_x+2],ax
mcall 51,1,thread_files_information_start,thread_stack
ret
;---------------------------------------------------------------------
draw_files_information_window:
mcall 12, 1
mcall 0,[files_information_window_x] ,[files_information_window_y], 0x03ffffcc
mov edx,90 shl 16+50
mov ebx,0xa0000
mov esi,0x10000000
cmp [inf_marked_yes],1
je .continue_4
cmp [nesting_direction],1
je @f
add edx,15
.continue_4:
mcall 47, ,[files_counter]
@@:
cmp [inf_marked_yes],1
je .continue_2
cmp [nesting_direction],0
je .continue_2
cmp [directories_counter],0
je @f
.continue_2:
add edx,15
mcall 47, ,[directories_counter]
@@:
add edx,15
mov ebx,edx
mcall 4, ,0x90000000,type_size_string
cmp [select_panel_counter],0
jne .right_1
mov edx,read_folder_name
jmp @f
.right_1:
mov edx,read_folder_1_name
@@:
mcall 4,<75,35>,0x80000000, ;file_name
mcall 4,<10,35>,0x90000000,type_location
cmp [inf_marked_yes],1
je .continue
mcall 4,<90,50>,0x80000000,type_name
mov ecx,0x90000000
cmp [nesting_direction],1
je @f
mcall 4,<10,50>, ,type_dir_name
jmp .continue
@@:
mcall 4,<10,50>, ,type_file_name
.continue:
cmp [inf_marked_yes],1
je .continue_3
cmp [nesting_direction],1
je @f
.continue_3:
add ebx,15
mcall 4, , ,type_files
@@:
cmp [inf_marked_yes],1
je .continue_1
cmp [nesting_direction],0
je .continue_1
cmp [directories_counter],0
je @f
.continue_1:
add ebx,15
mcall 4, , ,type_dir
@@:
add ebx,15
mcall 4, , ,type_size
mcall 12, 2
ret
;---------------------------------------------------------------------
thread_files_information_start:
.red:
call draw_files_information_window
.still:
mcall 10
cmp eax,1
je .red
cmp eax,2
je .key
cmp eax,3
je .button
jmp .still
.key:
.button:
mcall -1
jmp .still
;---------------------------------------------------------------------
; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ
; Âõîä:
; EAX - óêàçàòåëü íà ÷èñëî
; EBX - àäðåñ ñòðîêè
;---------------------------------------------------------------------
decimal_string_20:
push eax ebx ecx edx
mov [divisor],word 10
mov ebp,eax
xor ecx,ecx
; mov [ebx],byte '0'
; inc ebx
.p3:
xor edx,edx
push ebx
call Division_64bit
mov eax,[quotent]
mov [ebp],eax
mov eax,[quotent+4]
mov [ebp+4],eax
pop ebx
add edx,48
push edx
inc ecx
cmp [ebp],dword 0
jne .p3
cmp [ebp+4],dword 0
jne .p3
cmp ecx,19
jbe .p4
mov ecx,20
dec ebx
.p4:
pop edx
mov [ebx],dl
inc ebx
loop .p4
mov [ebx], byte 0
pop edx ecx ebx eax
ret
;----------------------------------------------------------
; äåëåíèå 64-áèòíîãî ÷èñëà divident íà 16-áèòíîå ÷èñëî divisor.
; ×àñòíîå ïîìåùàåòñÿ â 64-áèòíóþ ïåðåìåííóþ quotent,
; à îñòàòîê - â 16-áèòíóþ ïåðåìåííóþ modulo
Division_64bit:
mov ax,[ebp+6]
xor dx,dx
mov bx,[divisor]
div bx
mov [quotent+6],ax
mov ax,[ebp+4]
div bx
mov [quotent+4],ax
mov ax,[ebp+2]
div bx
mov [quotent+2],ax
mov ax,[ebp]
div bx
mov [quotent],ax
; mov [modulo],dx
ret
;divident:
; rb 8
divisor:
rb 2
quotent:
rb 8
;modulo:
; rb 2
;---------------------------------------------------------------------
copy_type_name:
push esi
mov esi,ebx
mov edi,type_name
@@:
cld
lodsb
stosb
test al,al
jnz @b
pop esi
ret
;---------------------------------------------------------------------
get_files_information:
call get_information_marked_files
cmp [inf_marked_yes],1
je .end_2
xor eax,eax
xor edx,edx
cmp [select_panel_counter],0
jne .right_1
mov ax,[left_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[left_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[left_folder_data]
call prepare_data_8
mov esi,read_folder_name
jmp .end
.right_1:
mov ax,[right_start_draw_cursor_line]
mov ebx,10
div ebx
mov ebx,[right_start_draw_line]
add ebx,eax
imul ebx,304
add ebx,[right_folder_data]
call prepare_data_8
mov esi,read_folder_1_name
.end:
mov [error_pointer],ebx
call copy_type_name
mov edi,file_name
call copy_path_1
test [ebx-40],byte 0x10
jz @f
push eax ebx
call get_inf_dir
mov [nesting_direction],0
pop ebx eax
dec [directories_counter]
jmp .end_2
@@:
mov [nesting_direction],1
call get_file_size
test eax,eax
jz .end_1
call start_error_window_thread
add esp,4
jmp reload_dir_all
.end_1:
; inc [files_counter]
mov eax,[file_features_temp_area+32]
add [files_size.low],eax
mov eax,[file_features_temp_area+32+4]
adc [files_size.high],eax
.end_2:
ret
;---------------------------------------------------------------------
get_information_marked_files:
xor eax,eax
mov [inf_marked_yes],al
cmp [select_panel_counter],al
jne .right_1
mov ebp,[left_folder_block]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[left_folder_data]
add ebx,32+40
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_1
.continue:
mov esi,read_folder_name
call prepare_data_9
.continue_1:
mov [inf_marked_yes],1
@@:
dec ebp
jnz .start
ret
.right_1:
mov ebp,[right_folder_block]
.start_1:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[right_folder_data]
add ebx,32+40
cmp [ebx+299-40],byte 0
je @f
cmp [ebx],word '..'
jne .continue_2
cmp [ebx+2],byte 0
je .continue_3
.continue_2:
mov esi,read_folder_1_name
call prepare_data_9
.continue_3:
mov [inf_marked_yes],1
@@:
dec ebp
jnz .start_1
ret
;---------------------------------------------------------------------
prepare_data_9:
mov [error_pointer],ebx
mov edi,file_name
call copy_path_1
test [ebx-40],byte 0x10
jz @f
call get_inf_dir
ret
@@:
inc [files_counter]
call get_file_size
test eax,eax
jz .continue
call start_error_window_thread
add esp,8+4
ret
.continue:
mov eax,[file_features_temp_area+32]
add [files_size.low],eax
mov eax,[file_features_temp_area+32+4]
adc [files_size.high],eax
.continue_1:
ret
;---------------------------------------------------------------------
prepare_data_8:
add ebx,32+40
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
jne .continue
add esp,4+4
jmp reload_dir
.continue:
ret
;---------------------------------------------------------------------
get_inf_dir:
mov [nesting_direction],0
pusha
mov [recursive_pointer],0
mov eax,[appl_memory]
mov [appl_memory_old],eax
.1:
mov [read_delete_dir_data.size],0
mov [read_delete_dir_data.return],delete_dir_data
call read_delete_dir
test eax,eax
jz @f
mov [error_pointer],file_name
call start_error_window_thread
popa
add esp,8+8
ret
@@:
mov eax,[delete_dir_data+8]
imul eax,304
add eax,32
mov ebx,eax
add ebx,[appl_memory_old]
cmp ebx,[appl_memory]
jbe @f
mov ecx,[appl_memory]
mov ecx,ebx
mov [appl_memory],ecx
mcall 64,1
@@:
mov eax,[delete_dir_data+8]
mov [read_delete_dir_data.size],eax
mov eax,[appl_memory_old]
mov [read_delete_dir_data.return],eax
call read_delete_dir
test eax,eax
jz @f
mov [error_pointer],file_name
call start_error_window_thread
popa
add esp,8+8
ret
@@:
cmp [nesting_direction],0
je @f
call get_inf_dir_2
jnc .end
dec ebp
push ebp
jmp .1
@@:
call get_inf_dir_1
jnc .end
dec ebp
push ebp
jmp .1
.end:
call return_delete_path
dec [recursive_pointer]
cmp [recursive_pointer],0
jge .1
mov ecx,[appl_memory_old]
cmp [appl_memory],ecx
je @f
mov [appl_memory],ecx
mcall 64,1
@@:
popa
ret
;---------------------------------------------------------------------
get_inf_dir_2:
pop eax
pop ebp
push eax
jmp get_inf_dir_1.start
get_inf_dir_1:
inc [directories_counter]
mov ebp,[appl_memory_old]
mov ebp,[ebp+8]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[appl_memory_old]
add ebx,32+40
cmp [ebx],byte '.'
jne @f
cmp [ebx+1],byte 0
je .continue_4
@@:
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_4
.continue:
mov esi,file_name
inc [recursive_pointer]
call copy_path_2
test [ebx-40],byte 0x10
jnz .continue_3
@@:
inc [files_counter]
.continue_1:
mov eax,[ebx+32-40]
add [files_size.low],eax
mov eax,[ebx+32+4-40]
adc [files_size.high],eax
dec [recursive_pointer]
call return_delete_path
dec ebp
jnz .start
 
.continue_4:
clc
mov [nesting_direction],1
ret
.continue_3:
stc
mov [nesting_direction],0
ret
;---------------------------------------------------------------------
;type_patch_test:
; pusha
; mcall 5,200
; mcall 13,<290,300>,<3,13>,0x0
; mcall 4,<300, 5>,0x80FFFFFF,file_name ;[error_pointer]
; mcall 47,0x160100,[recursive_pointer],<300, 5>,0xffffff
; mcall 47,0x160100,ebp,<300, 5>,0xffffff
; mcall 5,1
; popa
; ret
;temp_value_1 db '1',0
;temp_value_2 db '2',0
;temp_value_3 db '3',0
;temp_value_4 db '4',0
;temp_value_5 db '5',0
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/files.inc
0,0 → 1,476
read_delete_dir:
mcall 70, read_delete_dir_data
ret
;---------------------------------------------------------------------
create_directory_f70:
mcall 70, create_dir_file_data
ret
;---------------------------------------------------------------------
del_file:
mcall 70, delete_file_data
ret
;---------------------------------------------------------------------
start_appl:
mcall 70, start_file_data
ret
;---------------------------------------------------------------------
get_file_size:
mcall 70, read_file_features
ret
;---------------------------------------------------------------------
load_file:
mcall 70, read_file
ret
;---------------------------------------------------------------------
write_file:
mcall 70, save_file
ret
;---------------------------------------------------------------------
add_write_file:
mcall 70, add_save_file
ret
;---------------------------------------------------------------------
proc_read_left_folder:
xor eax,eax
mov [left_marked_counter],eax
mov [read_folder.start],eax ;dword 0
inc eax
mov [read_folder.size],eax ;dword 1
mov eax,[left_folder_data]
push eax
mov [read_folder.return],eax
mcall 70, read_folder
test eax,eax
jz @f
cmp eax,6
jne .error_1
@@:
mov eax,[esp]
cmp [eax+32+40],word 2Eh
jne @f
mov [read_folder.start],dword 1
@@:
mov ebx,[eax+8]
mov [read_folder.size],ebx ;dword 10 ;5000
imul ebx,304
add ebx,32
mov ecx,[right_folder_data]
sub ecx,[left_folder_data]
push ebx ecx
cmp ebx,ecx
je .continue
sub ebx,ecx
js .sub_mem
.add_mem:
mov ecx,[appl_memory]
add ecx,ebx
mov [esp],ebx
mov ebx,[appl_memory]
mov [esp+4],ebx
mov [appl_memory],ecx
mcall 64,1
call move_up_right_table
; mov [temp_znak],1
jmp .continue
.sub_mem:
mov ebx,[esp]
mov ecx,[esp+4]
sub ebx,ecx
mov ecx,[appl_memory]
sub ecx,ebx
mov [esp],ebx
mov ebx,[appl_memory]
mov [esp+4],ebx
mov [appl_memory],ecx
call move_down_right_table
mcall 64,1
; mov [temp_znak],2
.continue:
; mov edi,eax ;folder_data
; call clear_folder_data_area
mcall 70, read_folder
mov [left_folder_block],ebx
add esp,4*3
test eax,eax
jz @f
cmp eax,6
jne .error
@@:
push eax
call left_files_name_normalize
call left_prepare_extension_start
call left_sort_files
pop eax
; pusha
; call draw_window
; popa
ret
.error_1:
add esp,4
.error:
mov [left_folder_block],dword 2
mov edi,[left_folder_data]
call error_handler
ret
;---------------------------------------------------------------------
error_handler:
push eax
xor eax,eax
add edi,32+40
push edi
sub edi,40
mov ecx,304/4
cld
rep stosd
pop edi
mov [edi-40],byte 0x10
mov [edi],word '..'
mov [edi+2],al
add edi,304
push edi
sub edi,40
mov ecx,304/4
cld
rep stosd
pop edi
mov eax,[esp]
mov [edi+32-40],eax
mov esi,error_type
mov ecx,19
cld
rep movsb
pop eax
ret
;---------------------------------------------------------------------
proc_read_right_folder:
xor eax,eax
mov [right_marked_counter],eax
mov [read_folder_1.start],eax ;dword 0
inc eax
mov [read_folder_1.size],eax ;dword 1
mov eax,[right_folder_data]
push eax
mov [read_folder_1.return],eax
mcall 70, read_folder_1
test eax,eax
jz @f
cmp eax,6
jne .error_1
@@:
mov eax,[esp]
cmp [eax+32+40],word 2Eh
jne @f
mov [read_folder_1.start],dword 1
@@:
mov ebx,[eax+8]
mov [read_folder_1.size],ebx ;dword 10 ;5000
imul ebx,304
add ebx,32
mov ecx,[appl_memory]
sub ecx,[right_folder_data]
push ebx ecx
cmp ebx,ecx
je .continue
sub ebx,ecx
js .sub_mem
.add_mem:
mov ecx,[appl_memory]
add ecx,ebx
mov [appl_memory],ecx
mcall 64,1
; mov [temp_znak],1
jmp .continue
.sub_mem:
mov ebx,[esp]
mov ecx,[esp+4]
sub ebx,ecx
mov ecx,[appl_memory]
sub ecx,ebx
mov [appl_memory],ecx
mcall 64,1
; mov [temp_znak],2
.continue:
; mov edi,eax ;folder_data_1
; call clear_folder_data_area
mcall 70, read_folder_1
mov [right_folder_block],ebx
add esp,4*3
test eax,eax
jz @f
cmp eax,6
jne .error
@@:
push eax
call right_files_name_normalize
call right_prepare_extension_start
call right_sort_files
pop eax
; pusha
; call draw_window
; popa
ret
.error_1:
add esp,4
.error:
mov [right_folder_block],dword 2
mov edi,[right_folder_data]
call error_handler
ret
;---------------------------------------------------------------------
move_up_right_table:
mov esi,[esp+8]
mov ecx,esi
sub ecx,[right_folder_data]
mov edi,esi
add edi,[esp+4]
shr ecx,2
std
; rep movsb
rep movsd
mov eax,[esp+4]
add [right_folder_data],eax
ret
;---------------------------------------------------------------------
move_down_right_table:
mov esi,[right_folder_data]
mov edi,esi
sub edi,[esp+4]
push ecx
mov ecx,[esp+12]
sub ecx,[right_folder_data]
shr ecx,2
cld
; rep movsb
rep movsd
pop ecx
mov eax,[esp+4]
sub [right_folder_data],eax
ret
;---------------------------------------------------------------------
;clear_folder_data_area:
; mov ecx,4096*10/4
; xor eax,eax
; cld
; rep stosd
; ret
;---------------------------------------------------------------------
proc_read_folder:
call proc_read_left_folder
; mov [left_panel_clear_all],1
cmp [search_pre_folder],0
jne @f
mov [left_start_draw_cursor_line],0
mov [left_start_draw_line],0
jmp .continue
@@:
mov edi,[left_folder_data]
add edi,32+40
sub edi,304
xor ebp,ebp
.search_file:
cmp [left_folder_block],ebp
jbe .end_folder
mov esi,[temp_counter_dword]
mov ecx,[extension_size]
add edi,304
inc ebp
cld
; mov [temp_counter_dword_1],edi
push edi
rep cmpsb
pop edi
jne .search_file
dec ebp
mov eax,[left_folder_block]
cmp [max_panel_line],eax
js @f
mov eax,ebp
imul eax,10
mov [left_start_draw_cursor_line],ax
mov [left_start_draw_line],0
jmp .end_folder
@@:
; sub eax,ebp
; push eax
; sub eax,[max_panel_line]
; jns @f
; mov eax,[max_panel_line]
; sub eax,[esp]
; imul eax,10
; mov [left_start_draw_cursor_line],ax
;@@:
mov [left_start_draw_cursor_line],0
mov [left_start_draw_line],ebp
.end_folder:
mov [search_pre_folder],0
.continue:
call draw_left_panel
call draw_left_select_disk_button
; call draw_window
; pop eax
jmp still
;---------------------------------------------------------------------
proc_read_folder_1:
call proc_read_right_folder
; mov [right_panel_clear_all],1
cmp [search_pre_folder],0
jne @f
mov [right_start_draw_cursor_line],0
mov [right_start_draw_line],0
jmp .continue
@@:
mov edi,[right_folder_data]
add edi,32+40
sub edi,304
xor ebp,ebp
.search_file:
cmp [right_folder_block],ebp
jbe .end_folder
mov esi,[temp_counter_dword]
mov ecx,[extension_size]
add edi,304
inc ebp
cld
; mov [temp_counter_dword_1],edi
push edi
rep cmpsb
pop edi
jne .search_file
dec ebp
mov eax,[right_folder_block]
cmp [max_panel_line],eax
js @f
mov eax,ebp
imul eax,10
mov [right_start_draw_cursor_line],ax
mov [right_start_draw_line],0
jmp .end_folder
@@:
; sub eax,ebp
; push eax
; sub eax,[max_panel_line]
; jns @f
; mov eax,[max_panel_line]
; sub eax,[esp]
; imul eax,10
; mov [right_start_draw_cursor_line],ax
;@@:
mov [right_start_draw_cursor_line],0
mov [right_start_draw_line],ebp
.end_folder:
mov [search_pre_folder],0
.continue:
call draw_right_panel
call draw_right_select_disk_button
jmp still
;---------------------------------------------------------------------
copy_folder_name:
mov edi,read_folder_name+1 ;read_folder.name+1
@@:
cld
lodsb
stosb
cmp al,0
jne @r
ret
;---------------------------------------------------------------------
copy_folder_name_1:
mov edi,read_folder_1_name+1 ;read_folder_1.name+1
@@:
cld
lodsb
stosb
cmp al,0
jne @r
ret
;---------------------------------------------------------------------
read_folder:
.subfunction dd 1
.start dd 0
.flags dd 0
.size dd 5000
.return dd 0 ;folder_data
db 0
.name: dd read_folder_name
;---------------------------------------------------------------------
read_folder_1:
.subfunction dd 1
.start dd 0
.flags dd 0
.size dd 5000
.return dd 0 ;folder_data_1
db 0
.name: dd read_folder_1_name
;---------------------------------------------------------------------
read_file_features:
.subfunction dd 5
.Offset dd 0
.Offset_1 dd 0
.size dd 0
.return dd file_features_temp_area
db 0
.name: dd file_name
;---------------------------------------------------------------------
read_file:
.subfunction dd 0
.Offset dd 0
.Offset_1 dd 0
.size dd 0
.return dd mem
db 0
.name: dd file_name
;---------------------------------------------------------------------
save_file:
.subfunction dd 2
.Offset dd 0
.Offset_1 dd 0
.size dd 0
.pointer dd mem
db 0
.name: dd start_parameter
;---------------------------------------------------------------------
add_save_file:
.subfunction dd 3
.Offset dd 0
.Offset_1 dd 0
.size dd 0
.pointer dd mem
db 0
.name: dd start_parameter
;---------------------------------------------------------------------
create_dir_file_data:
.subfunction dd 9
.flags dd 0
.param dd 0
.rezerv dd 0
.rezerv1 dd 0
db 0
.name: dd file_name
;---------------------------------------------------------------------
start_file_data:
.subfunction dd 7
.flags dd 0
.param dd 0
.rezerv dd 0
.rezerv1 dd 0
db 0
.name: dd file_name
;---------------------------------------------------------------------
delete_file_data:
.subfunction dd 8
.flags dd 0
.param dd 0
.rezerv dd 0
.rezerv1 dd 0
db 0
.name: dd file_name
;---------------------------------------------------------------------
read_delete_dir_data:
.subfunction dd 1
.start dd 0
.flags dd 0
.size dd 0
.return dd delete_dir_data
db 0
.name: dd file_name
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/help.inc
0,0 → 1,9
help_start:
mov ebx,help_file_name
mov esi,path
mov edi,start_parameter ;file_name
call copy_path
call draw_window
mov [use_patch],1
mov esi,help_file_name-40
jmp file_no_folder
/programs/fs/kfm/trunk/icons.bmp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programs/fs/kfm/trunk/key.inc
0,0 → 1,719
key:
mcall 2
cmp [extended_key],1
je .extended_key
test al, al
jnz still
cmp ah, 0xE0
jne @f
mov [extended_key],1
jmp still
@@:
cmp ah,15
jne .no_tab
inc [select_panel_counter]
and [select_panel_counter],1b
call draw_left_panel
call draw_right_panel
jmp still
.no_tab:
cmp ah,72 ; arrow up
je key_72.1
cmp ah,80 ; arrow down
je key_80.1
cmp ah,28 ; Enter
je key_28.1
cmp ah,17 ; W
je set_background
cmp ah,19 ; R
je reload_dir_1
cmp ah,42
je key_shift_up
cmp ah,54
je key_shift_up
cmp ah,170
je key_shift_down
cmp ah,182
je key_shift_down
cmp ah,29
je key_ctrl_up.1
cmp ah,157
je key_ctrl_down.1
cmp ah,56
je key_alt_up.1
cmp ah,184
je key_alt_down.1
cmp ah,206 ; NumPad+ Up
je NumPad_plus_Up
cmp ah,202 ; NumPad- Up
je NumPad_minus_Up
cmp ah,183 ; NumPad* Up
je NumPad_sneg_Up
cmp ah,158
je symbol_a_up
cmp ah,59 ; down F1
je f_key_f1
cmp ah,60 ; down F2
je f_key_f2
cmp ah,61 ; down F3
je f_key_f3 ;sort_name
cmp ah,62 ; down F4
je f_key_f4 ;sort_type
cmp ah,63 ; down F5
je f_key_f5 ;sort_size
cmp ah,64 ; down F6
je f_key_f6 ; sort_date
cmp ah,65 ; down F7
je f_key_f7 ;
cmp ah,66 ; down F8
je f_key_f8 ; delete_file
cmp ah,88 ; down F12
je f_key_f12
jmp still
;-------------------------------------------------------------
.extended_key:
mov [extended_key],0
key_80:
cmp ah,80 ; arrow down
jne key_72
.1:
cmp [select_panel_counter],0
jne .right_1
mov eax,[left_folder_block]
dec eax
imul eax,10
cmp ax,[left_start_draw_cursor_line]
jbe .marked_action ;still
mov ax,[left_start_draw_cursor_line]
add ax,10
cmp ax,[left_panel_y.size_y]
jae @f
.add_1:
add [left_start_draw_cursor_line],10
call draw_left_panel_selection
mov [drawing_panel_folder],1
.all:
sub ecx,10 shl 16
mov edx,0xffffff
int 0x40
mov [not_clear_lines],1
call draw_folder_data
mov [not_clear_lines],0
jmp still
.marked_action:
cmp [marked_action],0
je still
mov [marked_action],0
call draw_left_panel
jmp still
.marked_action_1:
cmp [marked_action],0
je still
mov [marked_action],0
call draw_right_panel
jmp still
@@:
mov eax,[left_folder_block]
sub eax,[max_panel_line]
test eax,0x80000000
jz @f
xor eax,eax
@@:
cmp [marked_action],0
jne @f
cmp [left_start_draw_line],eax
je still
@@:
mov [marked_action],0
inc [left_start_draw_line]
call draw_left_panel
jmp still
.right_1:
mov eax,[right_folder_block]
dec eax
imul eax,10
cmp ax,[right_start_draw_cursor_line]
jbe .marked_action_1 ;still
mov ax,[right_start_draw_cursor_line]
add ax,10
cmp ax,[right_panel_y.size_y]
jae @f
.add_2:
add [right_start_draw_cursor_line],10
call draw_right_panel_selection
mov [drawing_panel_folder],2
jmp key_80.all
@@:
mov eax,[right_folder_block]
sub eax,[max_panel_line]
test eax,0x80000000
jz @f
xor eax,eax
@@:
cmp [marked_action],0
jne @f
cmp [right_start_draw_line],eax
je still
@@:
mov [marked_action],0
inc [right_start_draw_line]
call draw_right_panel
jmp still
;-------------------------------------------------------------
key_72:
cmp ah,72 ;arrow up
jne key_81
.1:
cmp [select_panel_counter],0
jne .right_1
mov ax,[left_start_draw_cursor_line]
add ax,[left_panel_y.start_y]
cmp [left_panel_y.start_y],ax
je @f
sub [left_start_draw_cursor_line],10
call draw_left_panel_selection
mov [drawing_panel_folder],1
.all:
add ecx,10 shl 16
mov edx,0xffffff
int 0x40
mov [not_clear_lines],1
call draw_folder_data
mov [not_clear_lines],0
jmp still
@@:
cmp [left_start_draw_line],0
je still
dec [left_start_draw_line]
call draw_left_panel
jmp still
.right_1:
mov ax,[right_start_draw_cursor_line]
add ax,[right_panel_y.start_y]
cmp [right_panel_y.start_y],ax
je @f
sub [right_start_draw_cursor_line],10
call draw_right_panel_selection
mov [drawing_panel_folder],2
jmp key_72.all
@@:
cmp [right_start_draw_line],0
je still
dec [right_start_draw_line]
call draw_right_panel
jmp still
;-------------------------------------------------------------
key_81:
cmp ah,81 ; PageDown
jne key_73
mov eax,[max_panel_line]
cmp [select_panel_counter],0
jne .right_1
mov ebx,[left_folder_block]
sub ebx,eax
test ebx,0x80000000
jnz .left_2
sub ebx,[left_start_draw_line]
cmp ebx,eax
ja .ok_1
mov ebx,[left_folder_block]
sub ebx,eax
call prepare_data_left_down
ja @f
cmp ebx,[left_start_draw_line]
je still
@@:
mov [left_start_draw_line],ebx
.left_3:
dec eax
imul eax,10
.left_1:
mov [left_start_draw_cursor_line],ax
call draw_left_panel
jmp still
.left_2:
mov eax,[left_folder_block]
sub eax,[left_start_draw_line]
dec eax
imul eax,10
cmp ax,[left_start_draw_cursor_line]
jbe still
jmp .left_1
.ok_1:
add [left_start_draw_line],eax
call draw_left_panel
jmp still
.right_1:
mov ebx,[right_folder_block]
sub ebx,eax
test ebx,0x80000000
jnz .right_3
sub ebx,[right_start_draw_line]
cmp ebx,eax
jae .ok_2
mov ebx,[right_folder_block]
sub ebx,eax
call prepare_data_right_down
ja @f
cmp ebx,[right_start_draw_line]
je still
@@:
mov [right_start_draw_line],ebx
.right_4:
dec eax
imul eax,10
.right_2:
mov [right_start_draw_cursor_line],ax
call draw_right_panel
jmp still
.right_3:
mov eax,[right_folder_block]
sub eax,[right_start_draw_line]
dec eax
imul eax,10
cmp ax,[right_start_draw_cursor_line]
jbe still
jmp .right_2
.ok_2:
add [right_start_draw_line],eax
call draw_right_panel
jmp still
;-------------------------------------------------------------
prepare_data_right_down:
mov ecx,[right_folder_block]
sub ecx,[right_start_draw_line]
dec ecx
imul ecx,10
cmp cx,[right_start_draw_cursor_line]
ret
;-------------------------------------------------------------
prepare_data_left_down:
mov ecx,[left_folder_block]
sub ecx,[left_start_draw_line]
dec ecx
imul ecx,10
cmp cx,[left_start_draw_cursor_line]
ret
;-------------------------------------------------------------
key_73:
cmp ah,73 ; PageUp
jne key_71
mov eax,[max_panel_line]
cmp [select_panel_counter],0
jne .right_1
mov ebx,[left_start_draw_line]
sub ebx,eax
test ebx,0x8000000
jz @f
cmp [left_start_draw_line],0
jne .draw_line_1
cmp [left_start_draw_cursor_line],0
je still
mov [left_start_draw_cursor_line],0
.draw_line_1:
mov [left_start_draw_line],0
call draw_left_panel
jmp still
@@:
sub [left_start_draw_line],eax
call draw_left_panel
jmp still
.right_1:
mov ebx,[right_start_draw_line]
sub ebx,eax
test ebx,0x80000000
jz @f
cmp [right_start_draw_line],0
jne .draw_line_2
cmp [right_start_draw_cursor_line],0
je still
mov [right_start_draw_cursor_line],0
.draw_line_2:
mov [right_start_draw_line],0
call draw_right_panel
jmp still
@@:
sub [right_start_draw_line],eax
call draw_right_panel
jmp still
;-------------------------------------------------------------
key_71:
cmp ah,71 ; Home
jne key_79
cmp [select_panel_counter],0
jne .right_1
cmp [left_start_draw_line],0
jne .draw_left_panel
cmp [left_start_draw_cursor_line],0
je still
.draw_left_panel:
mov [left_start_draw_line],0
mov [left_start_draw_cursor_line],0
call draw_left_panel
jmp still
.right_1:
cmp [right_start_draw_line],0
jne .draw_right_panel
cmp [right_start_draw_cursor_line],0
je still
.draw_right_panel:
mov [right_start_draw_line],0
mov [right_start_draw_cursor_line],0
call draw_right_panel
jmp still
;-------------------------------------------------------------
key_79:
cmp ah,79 ; End
jne key_28
cmp [select_panel_counter],0
jne .right_1
mov eax,[left_folder_block]
sub eax,[max_panel_line]
test eax,0x80000000
jnz key_81.left_2
call prepare_data_left_down
ja @f
cmp eax,[left_start_draw_line]
je still
@@:
mov [left_start_draw_line],eax
mov eax,[max_panel_line]
jmp key_81.left_3
.right_1:
mov eax,[right_folder_block]
sub eax,[max_panel_line]
test eax,0x80000000
jnz key_81.right_3
call prepare_data_right_down
ja @f
cmp eax,[right_start_draw_line]
je still
@@:
mov [right_start_draw_line],eax
mov eax,[max_panel_line]
jmp key_81.right_4
;-------------------------------------------------------------
key_28:
cmp ah,28 ; Enter
jne key_ctrl_up
.1:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je files_information
mov [open_param],0
.2:
cmp [select_panel_counter],0
jne .right_1
mov ebp,read_folder_name ;read_folder.name
call calculate_left_data_1
add esi,32
cmp [exit_dir],1
je .up_patch
test [esi],byte 0x10
jz file_no_folder
cmp [open_param],0
jne still
cmp [esi+40],word 2Eh
je still
cmp [esi+40],word '..'
je .up_patch
call calculate_key_28_1
mov [left_start_draw_cursor_line],0
mov [left_start_draw_line],0
jmp proc_read_folder
.up_patch:
call calculate_key_28_2
jmp proc_read_folder
.right_1:
mov ebp,read_folder_1_name ;read_folder_1.name
call calculate_right_data_1
add esi,32
cmp [exit_dir],1
je .up_patch_1
test [esi],byte 0x10
jz file_no_folder
cmp [esi+40],word 2Eh
je still
cmp [esi+40],word '..'
je .up_patch_1
call calculate_key_28_1
mov [right_start_draw_cursor_line],0
mov [right_start_draw_line],0
jmp proc_read_folder_1
.up_patch_1:
call calculate_key_28_2
jmp proc_read_folder_1
;---------------------------------------------------------------------
calculate_key_28_1:
; mov edi,read_folder.name-1
mov edi,ebp
dec edi
inc ebp
@@:
inc edi
cmp [edi],byte 0
jne @r
cmp edi,ebp ;read_folder.name+1
je @f
mov al,'/'
mov [edi],al
inc edi
@@:
add esi,40
@@:
cld
lodsb
stosb
cmp al,0
jnz @r
ret
;---------------------------------------------------------------------
calculate_key_28_2:
mov [exit_dir],0
mov edi,ebp ;read_folder.name
@@:
inc edi
cmp [edi],byte 0
jne @r
mov [extension_size],edi
dec edi
@@:
dec edi
cmp [edi],byte '/'
jne @r
mov eax,ebp ;read_folder.name
cmp edi,eax
jbe @f
mov [edi],byte 0
@@:
inc edi
mov [temp_counter_dword],edi
dec edi
sub [extension_size],edi
mov [search_pre_folder],1
ret
;---------------------------------------------------------------------
set_background:
cmp [shift_flag],1
je .shift
cmp [ctrl_flag],1
jne still
mov [open_param],background_stretch
jmp key_28.2
.shift:
mov [open_param],background_tile
jmp key_28.2
;---------------------------------------------------------------------
reload_dir_1:
cmp [ctrl_flag],0
je still
jmp reload_dir
;---------------------------------------------------------------------
symbol_a_up:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp still
.ctrl:
mov [mark_action_counter],0
jmp mark_all_file
;---------------------------------------------------------------------
NumPad_plus_Up:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp still
.ctrl:
mov [mark_action_counter],0
jmp mark_all_file
;---------------------------------------------------------------------
NumPad_minus_Up:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp still
.ctrl:
mov [mark_action_counter],1
jmp mark_all_file
;---------------------------------------------------------------------
NumPad_sneg_Up:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp still
.ctrl:
mov [mark_action_counter],2
jmp mark_all_file
;---------------------------------------------------------------------
f_key_f1:
;sort_name:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je draw_left_select_disk_menu
jmp help_start
;---------------------------------------------------------------------
f_key_f2:
;sort_name:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je draw_right_select_disk_menu
jmp still
;---------------------------------------------------------------------
f_key_f3:
;sort_name:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp still
.ctrl:
cmp [select_panel_counter],1
je right_sort_name
jmp left_sort_name
;---------------------------------------------------------------------
f_key_f4:
;sort_type:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp open_file_f4
.ctrl:
cmp [select_panel_counter],1
je right_sort_type
jmp left_sort_type
;---------------------------------------------------------------------
f_key_f5:
;sort_size:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp copy_file_f5
.ctrl:
cmp [select_panel_counter],1
je right_sort_size
jmp left_sort_size
;---------------------------------------------------------------------
f_key_f6:
;sort_date:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je .ctrl
cmp [alt_flag],1
je still
jmp move_file_f6
.ctrl:
cmp [select_panel_counter],1
je right_sort_date
jmp left_sort_date
;---------------------------------------------------------------------
f_key_f7:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je still
jmp create_directory
;---------------------------------------------------------------------
f_key_f8:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je still
jmp delete_file
;---------------------------------------------------------------------
f_key_f12:
cmp [shift_flag],1
je still
cmp [ctrl_flag],1
je still
cmp [alt_flag],1
je still
jmp exit_apl
;---------------------------------------------------------------------
key_shift_up:
cmp [shift_flag],1
je still
mov [shift_flag],1
jmp key_alt_down.for_all
;---------------------------------------------------------------------
key_shift_down:
mov [shift_flag],0
jmp key_alt_down.for_all
;---------------------------------------------------------------------
key_ctrl_up:
cmp ah,29
jne key_ctrl_down
.1:
cmp [ctrl_flag],1
je still
mov [ctrl_flag],1
jmp key_alt_down.for_all
;---------------------------------------------------------------------
key_ctrl_down:
cmp ah,157
jne key_alt_up
.1:
mov [ctrl_flag],0
jmp key_alt_down.for_all
;---------------------------------------------------------------------
key_alt_up:
cmp ah,56
jne key_alt_down
.1:
cmp [alt_flag],1
je still
mov [alt_flag],1
jmp key_alt_down.for_all
;---------------------------------------------------------------------
key_alt_down:
cmp ah,184
jne key_insert
.1:
mov [alt_flag],0
.for_all:
call erase_fbutton
call draw_fbutton
jmp still
;---------------------------------------------------------------------
key_insert:
cmp ah,82 ; Insert
je mark_file
cmp ah,83
je delete_file
key_end:
jmp still
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/kfm.ini
0,0 → 1,157
start
<>icons_associations
asm 0004
inc 0004
txt 0003
rtf 0003
ini 0003
log 0003
dic 0003
doc 0003
exc 0003
wtx 0003
inf 0003
jpg 0006
jpe 0006
jpeg 0006
jif 0006
jfif 0006
jp2 0006
jpx 0006
jpk 0006
j2k 0006
jpc 0006
j2c 0006
bmp 0006
dib 0006
rle 0006
pbm 0006
wbm 0006
wbmp 0006
xbm 0006
xpm 0006
gif 0006
png 0006
ico 0006
cur 0006
ani 0006
tif 0006
tiff 0006
xif 0006
tga 0006
pcx 0006
dcx 0006
ppm 0006
psd 0006
psp 0006
raw 0006
raf 0006
x3f 0006
orf 0006
nef 0006
mrw 0006
dcr 0006
crw 0006
cr2 0006
ras 0006
pix 0006
pict 0006
pct 0006
pic 0006
pgm 0006
pef 0006
pcd 0006
iff 0006
lbm 0006
ilbm 0006
fpx 0006
djv 0006
djvu 0006
iw4 0006
wav 0007
mp3 0007
mid 0007
midi 0007
aif 0007
aifc 0007
aiff 0007
au 0007
snd 0007
wma 0007
wm 0007
avi 0011
mpg 0011
img 0005
ima 0005
imz 0005
bwz 0005
dsk 0005
vfd 0005
wil 0005
wlz 0005
exe 0008
com 0008
bat 0008
7z 0009
rar 0009
zip 0009
cab 0009
arj 0009
lha 0009
lzh 0009
tar 0009
taz 0009
tbz 0009
tbz2 0009
bz 0009
bz2 0009
ice 0009
gz 0009
tgz 0009
uue 0009
uu 0009
xxe 0009
z 0009
dat 0010
ttf 0012
ttc 0012
chr 0012
mt 0012
htm 0013
html 0013
lif 0014
3ds 0015
kex 0016
skn 0017
<>end
 
<>files_associations
asm /rd/1/tinypad
inc /rd/1/tinypad
txt /rd/1/tinypad
ini /rd/1/tinypad
log /rd/1/tinypad
dat /rd/1/tinypad
inf /rd/1/tinypad
bat /rd/1/tinypad
jpg /rd/1/jpegview
jpeg /rd/1/jpegview
jpe /rd/1/jpegview
gif /rd/1/gifview
wav /rd/1/ac97snd
mp3 /rd/1/ac97snd
mid /rd/1/midamp
bmp /rd/1/mv
png /rd/1/@rcher
rtf /rd/1/rtfread
3ds /rd/1/3d/view3ds
lif /rd/1/demos/life2
skn /rd/1/desktop
avi /rd/1/kvid.kex
<>end
 
<>files_association1
bmp /rd/1/animage
<>end
 
end
/programs/fs/kfm/trunk/macros.inc
0,0 → 1,269
; new application structure
macro meos_app_start
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd __memory
dd __stack
 
if used __params & ~defined __params
dd __params
else
dd 0x0
end if
 
dd 0x0
}
MEOS_APP_START fix meos_app_start
 
macro code
{
__start:
}
CODE fix code
 
macro data
{
__data:
}
DATA fix data
 
macro udata
{
if used __params & ~defined __params
__params:
db 0
__end:
rb 255
else
__end:
end if
__udata:
}
UDATA fix udata
 
macro meos_app_end
{
align 32
rb 2048
__stack:
__memory:
}
MEOS_APP_END fix meos_app_end
 
 
; macro for defining multiline text data
struc mstr [sstring]
{
forward
local ssize
virtual at 0
db sstring
ssize = $
end virtual
dd ssize
db sstring
common
dd -1
}
 
 
; strings
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if used name
db data
end if
common
if used name
.size = $-name
end if
}
 
macro lsz name,[lng,data] { ; from MFAR [mike.dld]
common
if used name
label name
end if
forward
if (used name)&(lang eq lng)
db data
end if
common
if used name
.size = $-name
end if
}
 
 
 
; easy system call macro
macro mpack dest, hsrc, lsrc
{
if (hsrc eqtype 0) & (lsrc eqtype 0)
mov dest, (hsrc) shl 16 + lsrc
else
if (hsrc eqtype 0) & (~lsrc eqtype 0)
mov dest, (hsrc) shl 16
add dest, lsrc
else
mov dest, hsrc
shl dest, 16
add dest, lsrc
end if
end if
}
 
macro __mov reg,a,b { ; mike.dld
if (~a eq)&(~b eq)
mpack reg,a,b
else if (~a eq)&(b eq)
mov reg,a
end if
}
 
macro mcall a,b,c,d,e,f { ; mike.dld
__mov eax,a
__mov ebx,b
__mov ecx,c
__mov edx,d
__mov esi,e
__mov edi,f
int 0x40
}
 
 
 
; optimize the code for size
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp>
 
macro add arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
inc arg1
else
add arg1,arg2
end if
else
add arg1,arg2
end if
}
 
macro sub arg1,arg2
{
if (arg2 eqtype 0)
if (arg2) = 1
dec arg1
else
sub arg1,arg2
end if
else
sub arg1,arg2
end if
}
 
macro mov arg1,arg2
{
if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
if (arg2) = 0
xor arg1,arg1
else if (arg2) = 1
xor arg1,arg1
inc arg1
else if (arg2) = -1
or arg1,-1
else if (arg2) > -128 & (arg2) < 128
push arg2
pop arg1
else
mov arg1,arg2
end if
else
mov arg1,arg2
end if
}
 
 
macro struct name
{
virtual at 0
name name
sizeof.#name = $ - name
end virtual
}
 
; structures used in MeOS
struc process_information
{
.cpu_usage dd ? ; +0
.window_stack_position dw ? ; +4
.window_stack_value dw ? ; +6
.not_used1 dw ? ; +8
.process_name rb 12 ; +10
.memory_start dd ? ; +22
.used_memory dd ? ; +26
.PID dd ? ; +30
.x_start dd ? ; +34
.y_start dd ? ; +38
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
dw ? ; +52 - reserved
.client_left dd ? ; +54
.client_top dd ? ; +58
.client_width dd ? ; +62
.client_height dd ? ; +66
.wnd_state db ? ; +70
rb (1024-71)
}
;struct process_information
 
struc system_colors
{
.frame dd ?
.grab dd ?
.grab_button dd ?
.grab_button_text dd ?
.grab_text dd ?
.work dd ?
.work_button dd ?
.work_button_text dd ?
.work_text dd ?
.work_graph dd ?
}
;struct system_colors
 
 
; constants
 
; events
EV_IDLE = 0
EV_TIMER = 0
EV_REDRAW = 1
EV_KEY = 2
EV_BUTTON = 3
EV_EXIT = 4
EV_BACKGROUND = 5
EV_MOUSE = 6
EV_IPC = 7
EV_STACK = 8
 
; event mask bits for function 40
EVM_REDRAW = 1b
EVM_KEY = 10b
EVM_BUTTON = 100b
EVM_EXIT = 1000b
EVM_BACKGROUND = 10000b
EVM_MOUSE = 100000b
EVM_IPC = 1000000b
EVM_STACK = 10000000b
/programs/fs/kfm/trunk/markfile.inc
0,0 → 1,158
;---------------------------------------------------------------------
mark_file:
mov [marked_action],1
cmp [select_panel_counter],0
jne .right_1
call calculate_left_data_1
jmp .for_all
.right_1:
call calculate_right_data_1
.for_all:
add esi,32+299
mov al,[esi]
and al,1
cmp [select_panel_counter],0
jne .right_2
test al,al
jnz @f
inc [left_marked_counter]
jmp .for_all_1
@@:
dec [left_marked_counter]
.for_all_1:
mov al,[esi]
inc al
and al,1
mov [esi],al
jmp key_80.1
.right_2:
test al,al
jnz @f
inc [right_marked_counter]
jmp .for_all_1
@@:
dec [right_marked_counter]
jmp .for_all_1
;---------------------------------------------------------------------
calculate_left_data_1:
xor eax,eax
mov ax,[left_start_draw_cursor_line]
xor edx,edx
mov ebx,10
div ebx
mov esi,[left_start_draw_line]
add esi,eax
imul esi,304
add esi,[left_folder_data]
ret
;---------------------------------------------------------------------
calculate_right_data_1:
xor eax,eax
mov ax,[right_start_draw_cursor_line]
xor edx,edx
mov ebx,10
div ebx
mov esi,[right_start_draw_line]
add esi,eax
imul esi,304
add esi,[right_folder_data]
ret
;---------------------------------------------------------------------
mark_all_file:
cmp [select_panel_counter],0
jne .right_1
mov ebp,[left_folder_block]
.start:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[left_folder_data]
add ebx,32+40
cmp [ebx],word '..'
jne .continue
cmp [ebx+2],byte 0
je .continue_1
.continue:
call select_mark_action
.continue_1:
@@:
dec ebp
jnz .start
call draw_left_panel
cmp [mark_action_counter],0
jne @f
mov eax,[left_folder_block]
; dec eax
; mov [left_marked_counter],eax
; jmp still
jmp .end
@@:
cmp [mark_action_counter],1
jne @f
mov [left_marked_counter],0
jmp still
@@:
mov eax,[left_folder_block]
sub eax,[left_marked_counter]
.end:
dec eax
mov [left_marked_counter],eax
jmp still
.right_1:
mov ebp,[right_folder_block]
.start_1:
mov ebx,ebp
dec ebx
imul ebx,304
add ebx,[right_folder_data]
add ebx,32+40
cmp [ebx],word '..'
jne .continue_2
cmp [ebx+2],byte 0
je .continue_3
.continue_2:
call select_mark_action
.continue_3:
@@:
dec ebp
jnz .start_1
call draw_right_panel
cmp [mark_action_counter],0
jne @f
mov eax,[right_folder_block]
; dec eax
; mov [right_marked_counter],eax
; jmp still
jmp .end_1
@@:
cmp [mark_action_counter],1
jne @f
mov [right_marked_counter],0
jmp still
@@:
mov eax,[right_folder_block]
sub eax,[right_marked_counter]
.end_1:
dec eax
mov [right_marked_counter],eax
jmp still
;---------------------------------------------------------------------
select_mark_action:
add ebx,299-40
cmp [mark_action_counter],0
jne @f
mov [ebx],byte 1
jmp .continue
@@:
cmp [mark_action_counter],1
jne @f
mov [ebx],byte 0
jmp .continue
@@:
mov al,[ebx]
inc al
and al,1
mov [ebx],al
.continue:
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/menu_bar.inc
0,0 → 1,47
draw_menu_bar:
mov ecx,[skin_high]
shl ecx,16
mov cx,19
mov ebx,[window_width]
sub ebx,9
add ebx,5 shl 16
mcall 13,,,0xcccccc
add ecx,37 shl 16
mov cx,3
mcall
push ecx
add ecx,16 shl 16
mcall
add ecx,16 shl 16
mov cx,1
mcall
pop ecx
add ecx,3 shl 16
mov eax,[window_high]
shr ecx,16
sub eax,ecx
sub eax,4
shl ecx,16
add ecx,eax
mov bx,2
sub ecx,33
mcall 13
push ebx
ror ebx,16
mov bx,[right_panel_x.start_x]
sub bx,2
rol ebx,16
mcall
pop ebx
mov ax,cx
dec ax
shl eax,16
add ecx,eax
mov cx,3
mov eax,[window_width]
mov bx,ax
sub ebx,9
mcall 13
add ecx,15 shl 16
mcall
ret
/programs/fs/kfm/trunk/menu_drv.inc
0,0 → 1,420
;---------------------------------------------------------------------
key_menu:
mcall 2
cmp [extended_key],1
je .extended_key
test al, al
jnz .end_1
cmp ah, 0xE0
jne @f
mov [extended_key],1
.end_1:
ret
@@:
cmp ah,72
je menu_key_72.1
cmp ah,80
je menu_key_80.1
cmp ah,28
je menu_key_28.1
.end:
cmp ah,208
je .end_1
cmp ah,200
je .end_1
cmp ah,156
je .end_1
cmp ah,184
je .end_5
cmp ah,187
je .end_1
cmp ah,188
je .end_1
cmp ah,199
je .end_1
cmp ah,207
je .end_1
cmp ah,201
je .end_1
cmp ah,209
je .end_1
cmp ah,42 ; NumLock ON
je .end_1
cmp ah,170 ; NumLock ON
je .end_1
cmp ah,210
je .end_1
cmp ah,211
je .end_1
cmp ah,56
je .end_4
cmp ah,59
je .end_2
cmp ah,60
je .end_3
.for_all:
mov [close_menu],1
ret
 
.end_2:
cmp [alt_flag],0
je .for_all
cmp [select_panel_counter],0
je .end_1
mov [close_menu],2
ret
.end_3:
cmp [alt_flag],0
je .for_all
cmp [select_panel_counter],0
jne .end_1
mov [close_menu],2
ret
.end_4:
cmp [alt_flag],1
je .end_1
mov [alt_flag],1
jmp @f
.end_5:
cmp [alt_flag],0
je .end_1
mov [alt_flag],0
@@:
call erase_fbutton
call draw_fbutton
ret
;---------------------------------------------------------------------
.extended_key:
mov [extended_key],0
menu_key_80:
cmp ah,80 ; arrow down
jne menu_key_72
.1:
mov eax,[retrieved_devices_table_counter]
dec eax
cmp eax,[start_draw_menu_cursor_line]
je @f
inc [start_draw_menu_cursor_line]
@@:
ret
;---------------------------------------------------------------------
menu_key_72:
cmp ah,72 ;arrow up
jne menu_key_71
.1:
cmp [start_draw_menu_cursor_line],0
je @f
dec [start_draw_menu_cursor_line]
@@:
ret
;---------------------------------------------------------------------
menu_key_71:
cmp ah,71 ;Home
je @f
cmp ah,73 ;PageUp
jne menu_key_79
@@:
mov [start_draw_menu_cursor_line],0
ret
;---------------------------------------------------------------------
menu_key_79:
cmp ah,79 ; End
je @f
cmp ah,81 ; PageDown
jne menu_key_82
@@:
mov eax,[retrieved_devices_table_counter]
dec eax
mov [start_draw_menu_cursor_line],eax
ret
;---------------------------------------------------------------------
menu_key_82:
cmp ah,82 ; Insert
jne menu_key_83
mov esi,[start_draw_menu_cursor_line]
imul esi,10
add esi,retrieved_devices_table
inc esi
cmp [esi],word 'cd'
jne @f
xor ecx,ecx
mov cl,[esi+2]
sub ecx,0x30
mcall 24,5
@@:
ret
;---------------------------------------------------------------------
menu_key_83:
cmp ah,83 ; Delete
jne menu_key_28
mov esi,[start_draw_menu_cursor_line]
imul esi,10
add esi,retrieved_devices_table
inc esi
cmp [esi],word 'cd'
jne @f
xor ecx,ecx
mov cl,[esi+2]
sub ecx,0x30
mcall 24,4
@@:
ret
;---------------------------------------------------------------------
menu_key_28:
cmp ah,28 ; Enter
jne menu_key_end
.1:
mov [press_enter_menu],1
ret
menu_key_end:
jmp key_menu.end
;---------------------------------------------------------------------
key_menu_left:
mov [close_menu],0
mov [press_enter_menu],0
call key_menu
cmp [press_enter_menu],1
je .press_enter_menu
cmp [close_menu],0
je draw_left_select_disk_menu.red
.1:
; mov [left_panel_clear_all],1
call draw_left_panel
; mov [right_panel_clear_all],1
call draw_right_panel
cmp [alt_flag],0
je still
cmp [close_menu],2
je draw_right_select_disk_menu
jmp still
.press_enter_menu:
mov esi,[start_draw_menu_cursor_line]
imul esi,10
add esi,retrieved_devices_table
inc esi
call copy_folder_name
mov [left_start_draw_cursor_line],0
call proc_read_folder
jmp still
;---------------------------------------------------------------------
key_menu_right:
mov [close_menu],0
mov [press_enter_menu],0
call key_menu
cmp [press_enter_menu],1
je .press_enter_menu
cmp [close_menu],0
je draw_right_select_disk_menu.red
.1:
; mov [left_panel_clear_all],1
call draw_left_panel
; mov [right_panel_clear_all],1
call draw_right_panel
cmp [alt_flag],0
je still
cmp [close_menu],2
je draw_left_select_disk_menu
jmp still
.press_enter_menu:
mov esi,[start_draw_menu_cursor_line]
imul esi,10
add esi,retrieved_devices_table
inc esi
call copy_folder_name_1
mov [right_start_draw_cursor_line],0
call proc_read_folder_1
jmp still
;---------------------------------------------------------------------
draw_left_select_disk_menu:
mov [select_panel_counter],0
call draw_left_panel
call draw_right_panel
mov [start_draw_menu_cursor_line],0
.red:
call draw_left_menu
.still:
mcall 10
cmp eax,1
je red
cmp eax,2
je key_menu_left
cmp eax,3
je @f
cmp eax,6
je mouse_menu_left
jmp .still
@@:
call draw_left_panel
jmp button
;---------------------------------------------------------------------
draw_right_select_disk_menu:
mov [select_panel_counter],1
call draw_left_panel
call draw_right_panel
mov [start_draw_menu_cursor_line],0
.red:
call draw_right_menu
.still:
mcall 10
cmp eax,1
je red
cmp eax,2
je key_menu_right
cmp eax,3
je @f
cmp eax,6
je mouse_menu_right
jmp .still
@@:
call draw_right_panel
jmp button
;---------------------------------------------------------------------
draw_left_menu:
mov ebx,[left_panel_x]
mov bx,60
mov ecx,[left_panel_y]
mov eax,[retrieved_devices_table_counter]
mov cx,ax
imul cx,10
mov edx,0xffffcc
mov eax,13
int 0x40
call draw_menu_Selection
call draw_menu_data
ret
;---------------------------------------------------------------------
draw_right_menu:
mov ebx,[right_panel_x]
mov bx,60
mov ecx,[right_panel_y]
mov eax,[retrieved_devices_table_counter]
mov cx,ax
imul cx,10
mov edx,0xffffcc
mov eax,13
int 0x40
call draw_menu_Selection
call draw_menu_data
ret
;---------------------------------------------------------------------
draw_menu_data:
mov edx,retrieved_devices_table
shr ecx,16
mov bx,cx
mov ebp,0
.start:
mcall 4, ,0x80000000
add ebx,10
add edx,10
inc ebp
cmp ebp,[retrieved_devices_table_counter]
jne .start
ret
;---------------------------------------------------------------------
draw_menu_Selection:
push ebx ecx
mov eax,[start_draw_menu_cursor_line]
imul eax,10
shl eax,16
add ecx,eax
mov cx,10
mov edx,0xbbffbb
mov eax,13
int 0x40
pop ecx ebx
ret
;---------------------------------------------------------------------
mouse_menu_left:
mcall 37,2
mov [mouse_keys],eax
mcall 37,1
mov [mouse_position],eax
test eax,0x80000000
jnz draw_left_select_disk_menu.still
test eax,0x8000
jnz draw_left_select_disk_menu.still
mov ebx,eax
shr ebx,16
shl eax,16
shr eax,16
cmp ebx,[window_width]
ja draw_left_select_disk_menu.still
cmp eax,[window_high]
ja draw_left_select_disk_menu.still
xor ecx,ecx
mov cx,[left_panel_y.start_y]
cmp ax,cx
jbe .close
mov edx,[retrieved_devices_table_counter]
imul edx,10
add cx,dx
cmp ax,cx
jae .close
mov cx,[left_panel_x.start_x]
cmp bx,cx
jbe .close
add cx,60
cmp bx,cx
jae .close
sub ax,[left_panel_y.start_y]
mov ebx,10
xor edx,edx
div ebx
mov [start_draw_menu_cursor_line],eax
cmp [mouse_keys],0
je draw_left_select_disk_menu.red
jmp key_menu_left.press_enter_menu
.close:
cmp [mouse_keys],0
je draw_left_select_disk_menu.still
; mov [left_panel_clear_all],1
call draw_left_panel
jmp still
;---------------------------------------------------------------------
mouse_menu_right:
mcall 37,2
mov [mouse_keys],eax
mcall 37,1
mov [mouse_position],eax
test eax,0x80000000
jnz draw_right_select_disk_menu.still
test eax,0x8000
jnz draw_right_select_disk_menu.still
mov ebx,eax
shr ebx,16
shl eax,16
shr eax,16
cmp ebx,[window_width]
ja draw_right_select_disk_menu.still
cmp eax,[window_high]
ja draw_right_select_disk_menu.still
xor ecx,ecx
mov cx,[right_panel_y.start_y]
cmp ax,cx
jbe .close
mov edx,[retrieved_devices_table_counter]
imul edx,10
add cx,dx
cmp ax,cx
jae .close
mov cx,[right_panel_x.start_x]
cmp bx,cx
jbe .close
add cx,60
cmp bx,cx
jae .close
sub ax,[right_panel_y.start_y]
mov ebx,10
xor edx,edx
div ebx
mov [start_draw_menu_cursor_line],eax
cmp [mouse_keys],0
je draw_right_select_disk_menu.red
jmp key_menu_right.press_enter_menu
.close:
cmp [mouse_keys],0
je draw_right_select_disk_menu.still
; mov [right_panel_clear_all],1
call draw_right_panel
jmp still
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/mouse.inc
0,0 → 1,266
mouse:
mcall 18,7
cmp [active_process],eax
jne still
mcall 37,7
mov [mouse_scroll_data],eax
; test eax,eax
; jnz .continue_2
mcall 37,2
cmp [mouse_keys],eax
je @f
mov [mouse_keys],eax
mov [mouse_keys_delta],0
jmp .continue_2
@@:
mov [mouse_keys_delta],1
.continue_2:
mcall 37,1
mov [mouse_position],eax
; mcall 18,7
; cmp [active_process],eax
; jne still
mov eax,[mouse_position]
test eax,0x80000000
jnz still
test eax,0x8000
jnz still
mov ebx,eax
shr ebx,16
shl eax,16
shr eax,16
cmp [mouse_keys_delta],0
je @f
cmp [scroll_pointer],0
jne .check_scroll_bar_left
@@:
cmp ebx,[window_width]
ja still
cmp eax,[window_high]
ja still
.check_scroll_bar_left:
xor ecx,ecx
mov cx,[left_panel_y.start_y]
cmp [mouse_keys_delta],0
je @f
cmp [scroll_pointer],1
je .check_scroll_bar_left_event
cmp [scroll_pointer],2
je .check_scroll_bar_right_event
@@:
cmp ax,cx
jbe .other
add cx,[left_panel_y.size_y]
cmp ax,cx
jae .other
mov cx,[left_panel_x.start_x]
cmp bx,cx
jbe .other
add cx,[left_panel_x.size_x]
cmp bx,cx
jae .check_scroll_bar_right
mov edx,[left_folder_block]
cmp edx,[max_panel_line]
jbe @f
.check_scroll_bar_left_event:
mov [scroll_bar_event],0
call check_scroll_left_event
cmp [scroll_bar_event],0
jne still
mov [scroll_bar_event],0
call check_scroll_bar_left_event
cmp [scroll_bar_event],0
jne still ;.continue
; cmp [scroll_pointer],1
; je .continue
@@:
call check_left_panel_mouse_event
; jmp still
.continue:
; mov [temp_edx],mouse_left_panel
; call mouse.draw_data
; mov [scroll_pointer],0
; mov [mouse_keys_delta_1],0
jmp still
 
.check_scroll_bar_right:
xor ecx,ecx
mov cx,[right_panel_x.start_x]
cmp bx,cx
jbe .other
add cx,[right_panel_x.size_x]
cmp bx,cx
jae .other
mov edx,[right_folder_block]
cmp edx,[max_panel_line]
jbe @f
.check_scroll_bar_right_event:
mov [scroll_bar_event],0
call check_scroll_right_event
cmp [scroll_bar_event],0
jne still
mov [scroll_bar_event],0
call check_scroll_bar_right_event
cmp [scroll_bar_event],0
jne still ;.continue_1
@@:
call check_right_panel_mouse_event
.continue_1:
; mov [temp_edx],mouse_right_panel
; call mouse.draw_data
jmp still
 
.other:
; mov [temp_edx],mouse_other_panel
; call mouse.draw_data
jmp still
 
;.draw_data:
; pusha
; mov [temp_eax],eax
; mcall 13,<190,400>,<3,15>,0x0
; xor ecx,ecx
; mov cx,[mouse_position.x]
; mcall 47,0x80000, ,<200, 5>,0xffffff
; mov cx,[mouse_position.y]
; mcall 47,0x80000, ,<300, 5>,0xffffff
; mcall 47,0x80000,[mouse_keys],<400, 5>,0xffffff
; mcall 4,<500,5>,0xffffff,[temp_edx],5
; mcall 47,0x80000,[mouse_keys],<200, 5>,0xffffff
; popa
; ret
;---------------------------------------------------------------------
check_left_panel_mouse_event:
; cmp [scroll_pointer],0
; je @f
mov [scroll_pointer],0
; ret
@@:
cmp [mouse_keys_delta],0
jz .start
cmp [mouse_keys],0
jz .end
.start:
sub ax,[left_panel_y.start_y]
mov ebx,10
xor edx,edx
div ebx
imul eax,10
cmp [select_panel_counter],0
je @f
mov [select_panel_counter],0
mov [mouse_keys_delta_1],0
push eax
call draw_right_panel
pop eax
jmp .continue
@@:
cmp [left_start_draw_cursor_line],ax
jne @f
cmp [mouse_keys],0
jnz .continue
cmp [mouse_keys_delta],0
je .enter
@@:
mov [mouse_keys_delta_1],0
.continue:
imul ebx,[left_folder_block],10
cmp eax,ebx
jb @f
sub ebx,10
mov [left_start_draw_cursor_line],bx
jmp .continue_1
@@:
mov [left_start_draw_cursor_line],ax
.continue_1:
call draw_left_panel
.end:
ret
.enter:
cmp [mouse_keys_delta_1],1
je .enter_1
mcall 26,9
add eax,[mouse_key_delay]
mov [mouse_keys_tick],eax
mov [mouse_keys_delta_1],1
jmp .continue_1
.enter_1:
mov [mouse_keys_delta_1],0
mcall 26,9
cmp eax,[mouse_keys_tick]
jbe @f
ret
@@:
add esp,4
; call draw_left_panel
jmp key_28.1
;---------------------------------------------------------------------
check_right_panel_mouse_event:
; cmp [scroll_pointer],0
; je @f
mov [scroll_pointer],0
; ret
@@:
cmp [mouse_keys_delta],0
jz .start
cmp [mouse_keys],0
jz .end
.start:
sub ax,[right_panel_y.start_y]
mov ebx,10
xor edx,edx
div ebx
imul eax,10
cmp [select_panel_counter],1
je @f
mov [select_panel_counter],1
mov [mouse_keys_delta_1],0
push eax
call draw_left_panel
pop eax
jmp .continue
@@:
cmp [right_start_draw_cursor_line],ax
jne @f
cmp [mouse_keys],0
jnz .continue
cmp [mouse_keys_delta],0
je .enter
@@:
mov [mouse_keys_delta_1],0
; cmp [mouse_keys_delta],1
; je .continue
; cmp [right_start_draw_cursor_line],ax
; je .enter
.continue:
imul ebx,[right_folder_block],10
cmp eax,ebx
jb @f
sub ebx,10
mov [right_start_draw_cursor_line],bx
jmp .continue_1
@@:
mov [right_start_draw_cursor_line],ax
.continue_1:
call draw_right_panel
.end:
ret
.enter:
cmp [mouse_keys_delta_1],1
je .enter_1
mcall 26,9
add eax,[mouse_key_delay]
mov [mouse_keys_tick],eax
mov [mouse_keys_delta_1],1
jmp .continue_1
.enter_1:
mov [mouse_keys_delta_1],0
mcall 26,9
cmp eax,[mouse_keys_tick]
jbe @f
ret
@@:
add esp,4
; call draw_right_panel
jmp key_28.1
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/openfile.inc
0,0 → 1,122
;---------------------------------------------------------------------
open_file_f4:
cmp [select_panel_counter],0
jne .right_1
.left_1:
xor eax,eax
mov ax,[left_start_draw_cursor_line]
xor edx,edx
mov ebx,10
div ebx
mov esi,[left_start_draw_line]
add esi,eax
imul esi,304
add esi,[left_folder_data]
add esi,32
test [esi],byte 0x10
jz file_no_folder_1
jmp still
.right_1:
xor eax,eax
mov ax,[right_start_draw_cursor_line]
xor edx,edx
mov ebx,10
div ebx
mov esi,[right_start_draw_line]
add esi,eax
imul esi,304
add esi,[right_folder_data]
add esi,32
test [esi],byte 0x10
jz file_no_folder_1
jmp still
;---------------------------------------------------------------------
file_no_folder_1:
call calculate_file_no_folder_1
@@:
std
lodsb
cmp esi,edx
je still
cmp al,'.'
jnz @b
call calculate_file_no_folder_2
call open_file_with_appl_1
jmp still
;---------------------------------------------------------------------
calculate_file_no_folder_1:
add esi,40
mov edx,esi
xor eax,eax
@@:
cld
lodsb
test eax,eax
jnz @b
mov [temp_counter_1],esi
dec esi
dec edx
ret
;---------------------------------------------------------------------
calculate_file_no_folder_2:
add esi,2
mov ecx,[temp_counter_1]
sub ecx,esi
dec ecx
mov [extension_size],ecx
inc edx
ret
;---------------------------------------------------------------------
file_no_folder:
call calculate_file_no_folder_1
@@:
std
lodsb
cmp esi,edx
je start_file
cmp al,'.'
jnz @b
call calculate_file_no_folder_2
call open_file_with_appl
cmp eax,1
je start_file.1
jmp still
;---------------------------------------------------------------------
start_file:
inc edx
.1:
cmp [select_panel_counter],0
jne @f
mov esi,read_folder_name ;read_folder.name
jmp .start
@@:
mov esi,read_folder_1_name ;read_folder_1.name
.start:
mov edi,file_name ;start_file_data.name
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov [edi-1], byte '/'
mov esi,edx
mov [error_pointer], edx ;start_file_data.name
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov [start_file_data.param],eax
call start_appl
cmp eax,0
jge @f
mov ebx,0
sub ebx,eax
mov eax,ebx
call start_error_window_thread
@@:
jmp still
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/progrbar.inc
0,0 → 1,170
;---------------------------------------------------------------------
progress_bar_delete:
pusha
cmp [max_progress_value],0
je .end
call calculate_progress_data_4
sub ecx,30
call calculate_progress_data_5
mov cx,60
call calculate_progress_data_3
add ecx,35 shl 16
mov cx,15
mov si,bx
mov edx,0xff0000
call calculate_progress_data_6
shr ecx,16
mov bx,cx
sub ebx,13
call clear_text_area_1
mcall 4, ,0x90ffffff,file_name
cmp [draw_all_progressbar],0
je .end
sub ebx,13
mov edx,delete_type
int 0x40
.end:
popa
mov [draw_all_progressbar],0
ret
;---------------------------------------------------------------------
progress_bar_copy:
pusha
call calculate_progress_data_4
sub ecx,43
call calculate_progress_data_5
mov cx,86
call calculate_progress_data_3
add ecx,30 shl 16
mov cx,15
mov si,bx
pusha
mov edx,0xff00
call calculate_progress_data_6
popa
mov ebp,[current_progress_value_1]
call calculate_progress_data_1
add ecx,30 shl 16
mov bx,[temp_progress_value]
cmp [move_file_flag],1
je @f
mov edx,0xff7700
jmp .continue_1
@@:
mov edx,0xff0000
.continue_1:
int 0x40
call calculate_progress_data_2
shr ecx,16
mov bx,cx
sub ebx,11
call clear_text_area_1
mcall 4, ,0x80ffffff,start_parameter
sub ebx,30
call clear_text_area_1
mcall 4, ,0x80ffffff,file_name
cmp [draw_all_progressbar],0
je .end
sub ebx,13
cmp [move_file_flag],1
je @f
mov edx,copy_type_1
jmp .continue
@@:
mov edx,move_type_1
.continue:
 
int 0x40
.end:
popa
mov [draw_all_progressbar],0
ret
;---------------------------------------------------------------------
clear_text_area_1:
cmp [draw_all_progressbar],1
je @f
push ebx
mov ecx,ebx
shl ecx,16
mov cx,9
mov eax,[window_width]
sub eax,70
mov bx,ax
mov eax,13
mov edx, 0x6060ff
int 0x40
pop ebx
@@:
ret
;---------------------------------------------------------------------
calculate_progress_data_1:
pusha
xor eax,eax
mov ax,bx
shl eax,10
mov ebx,[max_progress_value]
xor edx,edx
div ebx
imul eax,ebp
shr eax,10
mov [temp_progress_value],eax
popa
ret
;---------------------------------------------------------------------
calculate_progress_data_2:
cmp [draw_all_progressbar],0
je @f
push ebx
rol esi,16
mov si,bx
rol ebx,16
add bx,si
ror ebx,16
ror esi,16
sub si,bx
mov bx,si
mov edx,0xffffff
int 0x40
pop ebx
@@:
ret
;---------------------------------------------------------------------
calculate_progress_data_3:
mov bx,ax
mov eax,13
cmp [draw_all_progressbar],0
je @f
mov edx, 0x6060ff
int 0x40
@@:
add ebx,10 shl 16
sub ebx,20
ret
;---------------------------------------------------------------------
calculate_progress_data_4:
mcall 11
cmp eax,1
jne .1
call draw_window
mov [draw_all_progressbar],1
.1:
mov ecx,[window_high]
mov ebx,30
shr ecx,1
ret
;---------------------------------------------------------------------
calculate_progress_data_5:
shl ecx,16
shl ebx,16
mov eax,[window_width]
sub eax,60
ret
;---------------------------------------------------------------------
calculate_progress_data_6:
mov ebp,[current_progress_value]
call calculate_progress_data_1
mov bx,[temp_progress_value]
int 0x40
call calculate_progress_data_2
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/resource.inc
0,0 → 1,70
; Used button number
;
; functional button (temp not use)
; 101 - f1
; 102 - f2
; 103 - f3
; 104 - f4
; 105 - f5
; 106 - f6
; 107 - f7
; 108 - f8
; 109 - f9
; 110 - f10
; 111 - f11
; 112 - f12
;
; left panel read folder device name
; 120 - rd
; 121 - fd
; 122 - hd0
; 123 - hd1
; 124 - hd2
; 125 - hd3
; 126 - cd0
; 127 - cd1
; 128 - cd2
; 129 - cd3
;
; right panel read folder device name
; 130 - rd
; 131 - fd
; 132 - hd0
; 133 - hd1
; 134 - hd2
; 135 - hd3
; 136 - cd0
; 137 - cd1
; 138 - cd2
; 139 - cd3
;
; select disk menu
; 140 - left
; 141 - right
;
; left sort button
; 142 - Name
; 143 - Type
; 144 - Size
; 145 - Date
;
; right sort button
; 146 - Name
; 147 - Type
; 148 - Size
; 149 - Date
;
; main button panel
; 150 - Exit directory
; 151 - Reload directory
; 152 - Create directory
; 153 - Copy file
; 154 - Move file
; 155 - Cut file
; 156 - Paste file
; 157 - Delete file
;
; confirmation button
; 160 - Yes
; 161 - No
;
/programs/fs/kfm/trunk/scroll.inc
0,0 → 1,543
;---------------------------------------------------------------------
check_scroll_left_event:
pusha
mov eax,[mouse_scroll_data]
test eax,eax
jz .end
test ax,0x8000
jnz .decr
shr eax,16
test ax,0x8000
jnz .decr_1
mov eax,[left_folder_block]
sub eax,[max_panel_line]
cmp [left_start_draw_line],eax
jae .end
movzx eax,[mouse_scroll_data.vertical]
test eax,eax
jnz @f
movzx eax,[mouse_scroll_data.horizontal]
@@:
add [left_start_draw_line],eax
jmp .draw
.decr:
movzx eax,[mouse_scroll_data.vertical]
jmp @f
.decr_1:
movzx eax,[mouse_scroll_data.horizontal]
@@:
cmp [left_start_draw_line],0
je .end
mov ebx,0xffff
sub ebx,eax
inc ebx
sub [left_start_draw_line],ebx
cmp [left_start_draw_line],0
jae .draw
mov [left_start_draw_line],0
.draw:
call draw_left_panel
mov [scroll_bar_event],1
.end:
popa
ret
;---------------------------------------------------------------------
check_scroll_right_event:
pusha
mov eax,[mouse_scroll_data]
test eax,eax
jz .end
test ax,0x8000
jnz .decr
shr eax,16
test ax,0x8000
jnz .decr_1
mov eax,[right_folder_block]
sub eax,[max_panel_line]
cmp [right_start_draw_line],eax
jae .end
movzx eax,[mouse_scroll_data.vertical]
test eax,eax
jnz @f
movzx eax,[mouse_scroll_data.horizontal]
@@:
add [right_start_draw_line],eax
jmp .draw
.decr:
movzx eax,[mouse_scroll_data.vertical]
jmp @f
.decr_1:
movzx eax,[mouse_scroll_data.horizontal]
@@:
cmp [right_start_draw_line],0
je .end
mov ebx,0xffff
sub ebx,eax
inc ebx
sub [right_start_draw_line],ebx
cmp [right_start_draw_line],0
jae .draw
mov [right_start_draw_line],0
.draw:
call draw_right_panel
mov [scroll_bar_event],1
.end:
popa
 
ret
;---------------------------------------------------------------------
check_scroll_bar_left_event:
mov [scroll_pointer],1
cmp [mouse_keys_delta],0
je @f
cmp [mouse_keys],0
jz .exit
@@:
sub ecx,15
cmp bx,cx
jb .exit
@@:
cmp [select_panel_counter],0
je @f
mov [select_panel_counter],0
call draw_all_panels_for_scroll_bar
@@:
mov [scroll_bar_event],1
mov cx,[left_panel_y.start_y]
add cx,15
cmp ax,cx
ja .scroll
cmp [left_start_draw_line],0
jne @f
ret
@@:
dec [left_start_draw_line]
jmp .all
.scroll:
add cx,[left_panel_y.size_y]
sub cx,30
cmp ax,cx
ja .down
mov ebx,16 ;15
add bx,[left_panel_y.start_y]
sub cx,bx
sub ax,bx
mov ebx,eax
mov eax,[left_folder_block]
call calculate_for_scroll_bar
cmp [left_start_draw_line],eax
je .exit
mov [left_start_draw_line],eax
.all:
call draw_left_panel
.exit:
ret
.down:
mov eax,[left_folder_block]
sub eax,[max_panel_line]
cmp [left_start_draw_line],eax
jb @f
ret
@@:
inc [left_start_draw_line]
jmp .all
;---------------------------------------------------------------------
draw_all_panels_for_scroll_bar:
push eax
push ebx
call draw_right_panel
call draw_left_panel
pop ebx
pop eax
ret
;---------------------------------------------------------------------
calculate_for_scroll_bar:
sub eax,[max_panel_line]
inc eax
shl eax,10
xor edx,edx
div ecx
shl edx,1
cmp edx,ebx
jb @f
inc eax
@@:
imul eax,ebx
shr eax,10
ret
;---------------------------------------------------------------------
check_scroll_bar_right_event:
mov [scroll_pointer],2
cmp [mouse_keys_delta],0
je @f
cmp [mouse_keys],0
jz .exit
@@:
sub ecx,15
cmp bx,cx
jb .exit
@@:
cmp [select_panel_counter],1
je @f
mov [select_panel_counter],1
call draw_all_panels_for_scroll_bar
@@:
mov [scroll_bar_event],1
mov cx,[right_panel_y.start_y]
add cx,15
cmp ax,cx
ja .scroll
cmp [right_start_draw_line],0
jne @f
ret
@@:
dec [right_start_draw_line]
jmp .all
.scroll:
add cx,[right_panel_y.size_y]
sub cx,30
cmp ax,cx
ja .down
mov ebx,16 ;15
add bx,[right_panel_y.start_y]
sub cx,bx
sub ax,bx
mov ebx,eax
mov eax,[right_folder_block]
call calculate_for_scroll_bar
cmp [right_start_draw_line],eax
je .exit
mov [right_start_draw_line],eax
.all:
call draw_right_panel
.exit:
ret
.down:
mov eax,[right_folder_block]
sub eax,[max_panel_line]
cmp [right_start_draw_line],eax
jb @f
ret
@@:
inc [right_start_draw_line]
jmp .all
;---------------------------------------------------------------------
draw_scroll_bar_left:
pusha
mov eax,[left_folder_block]
cmp eax,0
jne @f
inc eax
@@:
mov ebx,[max_panel_line]
xor edx,edx
div ebx
cmp eax,0
jne @f
inc eax
@@:
mov ebx,eax
xor eax,eax
mov ax,[left_panel_x.size_x]
sub eax,30
xor edx,edx
div ebx
shr eax,1
cmp eax,5
jae @f
mov eax,5
@@:
mov [left_scroll_compens],eax
popa
mov [scroll_pointer_1],1
pusha
mov bx,[left_panel_x.start_x]
add bx,[left_panel_x.size_x]
sub bx,15
shl ebx,16
mov bx,15
mov ecx,[left_panel_y]
call calculate_for_draw_scroll_bar
push ecx
mov ax,[left_panel_y.size_y]
sub eax,30 ;45
sub eax,[left_scroll_compens]
sub eax,[left_scroll_compens]
shl eax,10
push ebx
mov ebx,[left_folder_block]
call calculate_for_draw_scroll_bar_2
mov ebx,[left_start_draw_line]
imul eax,ebx
pop ebx
call calculate_for_draw_scroll_bar_1
pop ecx
ror ecx,16
add cx,[left_panel_y.size_y]
call calculate_for_draw_scroll_bar_3
popa
ret
;---------------------------------------------------------------------
draw_scroll_bar_right:
pusha
mov eax,[right_folder_block]
cmp eax,0
jne @f
inc eax
@@:
mov ebx,[max_panel_line]
xor edx,edx
div ebx
cmp eax,0
jne @f
inc eax
@@:
mov ebx,eax
xor eax,eax
mov ax,[right_panel_x.size_x]
sub eax,30
xor edx,edx
div ebx
shr eax,1
cmp eax,5
jae @f
mov eax,5
@@:
mov [right_scroll_compens],eax
popa
mov [scroll_pointer_1],2
pusha
mov bx,[right_panel_x.start_x]
add bx,[right_panel_x.size_x]
sub bx,15
shl ebx,16
mov bx,15
mov ecx,[right_panel_y]
call calculate_for_draw_scroll_bar
push ecx
mov ax,[right_panel_y.size_y]
sub eax,30 ;45
sub eax,[right_scroll_compens]
sub eax,[right_scroll_compens]
shl eax,10
push ebx
mov ebx,[right_folder_block]
call calculate_for_draw_scroll_bar_2
mov ebx,[right_start_draw_line]
imul eax,ebx
pop ebx
call calculate_for_draw_scroll_bar_1
pop ecx
ror ecx,16
add cx,[right_panel_y.size_y]
call calculate_for_draw_scroll_bar_3
popa
ret
;---------------------------------------------------------------------
calculate_for_draw_scroll_bar:
mov edx,0xeeeeee
mov eax,13
pusha
add ebx,1 shl 16
mov bx,14
add ecx,16 shl 16
sub cx,31
int 0x40
popa
xor edx,edx
push ebx
mov bx,1
int 0x40
push ecx
add ebx,15 shl 16
int 0x40
pop ecx
pop ebx
mov [draw_scroll_character],1
call draw_scroll_bar_srectangle
xor eax,eax
ret
;---------------------------------------------------------------------
calculate_for_draw_scroll_bar_1:
shr eax,10
ror ecx,16
add cx,15
cmp [scroll_pointer_1],1
jne .right
add ecx,[left_scroll_compens]
jmp @f
.right:
add ecx,[right_scroll_compens]
@@:
add cx,ax
rol ecx,16
mov [draw_scroll_character],2
call draw_scroll_bar_srectangle
ret
;---------------------------------------------------------------------
calculate_for_draw_scroll_bar_2:
sub ebx,[max_panel_line]
cmp ebx,0
ja @f
mov ebx,1
@@:
xor edx,edx
div ebx
shl edx,1
cmp edx,ebx
jb @f
inc eax
@@:
ret
;---------------------------------------------------------------------
calculate_for_draw_scroll_bar_3:
sub cx,16
rol ecx,16
mov [draw_scroll_character],3
call draw_scroll_bar_srectangle
ret
;---------------------------------------------------------------------
;calculate_for_draw_scroll_bar_4:
; push eax
; push ebx
;; shr eax,10
; mov ebx,eax
; xor eax,eax
; mov ax,[left_panel_y.size_y]
; xor edx,edx
; div ebx
;; mov esi,eax
; pop ebx
; pop eax
; ret
;---------------------------------------------------------------------
draw_scroll_bar_srectangle:
push ecx
xor edx,edx
mov eax,13
mov cx,1
cmp [draw_scroll_character],2
je .draw_center
int 0x40
pusha
add ecx,1 shl 16
add ebx,1 shl 16
mov cx,14
mov bx,14
mov edx,0xbbddff
int 0x40
xor edx,edx
cmp [draw_scroll_character],1
jne .draw_down
add ebx,3 shl 16
mov bx,7
add ecx,8 shl 16
mov cx,1
int 0x40
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
int 0x40
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,3
int 0x40
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,1
int 0x40
jmp .continue
.draw_down:
add ebx,3 shl 16
mov bx,7
add ecx,5 shl 16
mov cx,1
int 0x40
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
int 0x40
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,3
int 0x40
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,1
int 0x40
.continue:
popa
add ecx,15 shl 16
int 0x40
pop ecx
ret
 
.draw_center:
pusha
add ecx,1 shl 16
add ebx,1 shl 16
push ecx
cmp [scroll_pointer_1],1
jne .right
ror ecx,16
sub ecx,[left_scroll_compens]
rol ecx,16
xor cx,cx
add ecx,[left_scroll_compens]
shl cx,1
jmp .draw_center_continue
.right:
ror ecx,16
sub ecx,[right_scroll_compens]
rol ecx,16
xor cx,cx
add ecx,[right_scroll_compens]
shl cx,1
.draw_center_continue:
mov bx,14
mov edx,0xbbddff
int 0x40
xor edx,edx
mov cx,1
sub ecx,1 shl 16
int 0x40
pop ecx
cmp [scroll_pointer_1],1
jne .right_1
cmp [left_scroll_compens],8
jb .continue_1
jmp .draw_center_continue_1
.right_1:
cmp [right_scroll_compens],8
jb .continue_1
.draw_center_continue_1:
sub ecx,8 shl 16
add ebx,2 shl 16
mov bx,10
add ecx,4 shl 16
mov cx,1
int 0x40
add ecx,3 shl 16
sub ebx,1 shl 16
mov bx,12
int 0x40
add ebx,1 shl 16
mov bx,10
add ecx,3 shl 16
int 0x40
.continue_1:
popa
ror ecx,16
cmp [scroll_pointer_1],1
jne @f
add ecx,[left_scroll_compens]
jmp .draw_center_continue_2
@@:
add ecx,[right_scroll_compens]
.draw_center_continue_2:
rol ecx,16
int 0x40
pop ecx
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/sort.inc
0,0 → 1,836
left_sort_files:
; mcall 26,9
; mov [timer_tick],eax
mov eax,[left_folder_data]
add eax,32+40
cmp [eax],word '..'
jne @f
cmp [eax+2],byte 0
jne @f
add [left_folder_data],304
dec [left_folder_block]
mov [exit_to_dir],1
@@:
; add memory for sorting
mov ecx,[right_folder_data]
sub ecx,[left_folder_data]
mov ebx,[appl_memory]
add ecx,ebx
push ebx
mov [appl_memory],ecx
mcall 64,1
mov edi,[esp]
mov ecx,[appl_memory]
sub ecx,edi
shr ecx,2
mov eax,0xffffffff
cld
rep stosd
cmp [left_sort_flag],0
je left_name_sort
cmp [left_sort_flag],1
je left_type_sort
jmp left_size_date_sort
.move_sorted_file:
; move sorted file area in folder area
mov esi,[esp]
mov edi,[left_folder_data]
add edi,32
mov ecx,[right_folder_data]
sub ecx,edi
shr ecx,2
cld
rep movsd
cmp [exit_to_dir],0
je @f
sub [left_folder_data],304
inc [left_folder_block]
mov [exit_to_dir],0
@@:
; sub memory for sorting
pop ecx
mov [appl_memory],ecx
mcall 64,1
; mcall 26,9
; sub eax,[timer_tick]
; mov [timer_tick],eax
; call draw_window
ret
;---------------------------------------------------------------------
left_name_sort:
; sorting of files
call prepare_data_1
call left_name_sort_1
call prepare_data_2
call left_name_sort_1
.1:
call prepare_data_4
jmp left_sort_files.move_sorted_file
left_name_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_1
je .file
test [esi],byte 0x10
jz .continue
jmp @f
.file:
test [esi],byte 0x10
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
call sort_by_name.start
jae .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[left_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
left_type_sort:
; sorting of files
call left_prepare_extension_start_1
call prepare_data_1
call left_type_sort_1
call prepare_data_2
call left_type_sort_1
jmp left_name_sort.1
left_type_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_1
je .file
; test [esi],byte 0x10
test al,ah
jz .continue
jmp @f
.file:
; test [esi],byte 0x10
test al,ah
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
cmp [dir_or_file],1
je @f
call prepare_data_5
@@:
call sort_by_name.start
je .1
ja .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
.1:
cmp [dir_or_file],1
je .add_counter
call sort_by_name
jbe .no_add_counter
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[left_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
left_size_date_sort:
; sorting of files
call prepare_data_1
call left_size_date_sort_1
call prepare_data_2
call left_size_date_sort_1
jmp left_name_sort.1
left_size_date_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_1
je .file
test [esi],byte 0x10
jz .continue
jmp @f
.file:
test [esi],byte 0x10
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
mov eax,[left_sort_flag]
cmp eax,2
je .size_sort
call sort_by_date
; je .1
jae .add_counter
jmp .no_add_counter
.size_sort:
cmp [dir_or_file],0
je .file_1
call sort_by_name.start
jmp @f
.file_1:
call sort_by_size
@@:
jae .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
;.1:
; call sort_by_name.start
; jbe .no_add_counter
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[left_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
left_prepare_extension_start:
xor ebp,ebp
mov esi,[left_folder_data]
add esi,32+40
.start:
call prepare_extension_start_all
cmp ebp,[left_folder_block]
jb .start
ret
;---------------------------------------------------------------------
prepare_extension_start_all:
push esi
call search_extension_start
mov eax,esi
pop esi
sub eax,esi
sub ebx,esi
shl eax,16
mov ax,bx
mov [esi+300-40],eax
mov [esi+299-40],byte 0
add esi,304
inc ebp
ret
;---------------------------------------------------------------------
left_prepare_extension_start_1:
xor ebp,ebp
mov edi,[esp+4]
.start:
xor eax,eax
mov [edi+300],eax
add edi,304
inc ebp
cmp ebp,[left_folder_block]
jb .start
ret
;---------------------------------------------------------------------
left_files_name_normalize:
xor ebp,ebp
mov esi,[left_folder_data]
add esi,32+40
.start:
push esi
mov al,[esi]
call char_toupper
mov [esi],al
@@:
inc esi
mov al,[esi]
test al,al
jz @f
call char_todown
mov [esi],al
jmp @b
@@:
pop esi
add esi,304
inc ebp
cmp ebp,[left_folder_block]
jb .start
ret
;---------------------------------------------------------------------
right_files_name_normalize:
xor ebp,ebp
mov esi,[right_folder_data]
add esi,32+40
.start:
push esi
mov al,[esi]
call char_toupper
mov [esi],al
@@:
inc esi
mov al,[esi]
test al,al
jz @f
call char_todown
mov [esi],al
jmp @b
@@:
pop esi
add esi,304
inc ebp
cmp ebp,[right_folder_block]
jb .start
ret
;---------------------------------------------------------------------
right_prepare_extension_start:
xor ebp,ebp
mov esi,[right_folder_data]
add esi,32+40
.start:
call prepare_extension_start_all
cmp ebp,[right_folder_block]
jb .start
ret
;---------------------------------------------------------------------
right_prepare_extension_start_1:
xor ebp,ebp
mov edi,[esp+4]
.start:
xor eax,eax
mov [edi+300],eax
add edi,304
inc ebp
cmp ebp,[right_folder_block]
jb .start
ret
;---------------------------------------------------------------------
prepare_data_1:
mov [dir_or_file],1
mov [dir_temp_counter],0
ret
;---------------------------------------------------------------------
prepare_data_2:
mov eax,[dir_temp_counter]
mov [dir_temp_counter_1],eax
imul eax,304
add [esp+4],eax
mov [dir_or_file],0
ret
;---------------------------------------------------------------------
prepare_data_3:
mov edi,[esp+4+4]
add esi,40
add edi,40
mov [sort_counter],0
ret
;---------------------------------------------------------------------
prepare_data_4:
mov eax,[dir_temp_counter_1]
imul eax,304
sub [esp+4],eax
ret
;---------------------------------------------------------------------
prepare_data_5:
xor eax,eax
mov ax,[esi+302-40]
add esi,eax
mov ax,[edi+302-40]
add edi,eax
ret
;---------------------------------------------------------------------
sort_by_name:
mov esi,[esp+8]
mov edi,[esp+4]
.start:
cld
lodsd
mov ebx,[edi] ; bufer
add edi,4
cmp al,bl
jnz @f
test bl, bl
jz @f
cmp ah,bh
jnz @f
test bh, bh
jz @f
ror eax,16
ror ebx,16
cmp al,bl
jnz @f
test bl, bl
jz @f
cmp ah, bh
jnz @f
test bh, bh
jnz .start
@@:
ret
;---------------------------------------------------------------------
sort_by_name_3:
mov esi,[esp+8]
mov edi,[esp+4]
.start:
cld
lodsd
mov ecx,4
rep scasb
jz .start
ret
;---------------------------------------------------------------------
sort_by_name_1:
mov esi,[esp+8]
mov edi,[esp+4]
cmp [edi],byte 255
je @f
.start:
cld
lodsb
mov ah,[edi] ; bufer
inc edi
cmp al,ah
jnz @f
test ah, ah
jnz .start
@@:
ret
;---------------------------------------------------------------------
align 4
sort_by_date:
mov eax,[esi-12] ;+28-40]
cmp eax,[edi-12] ;+28-40]
jnz .end
mov eax,[esi-16] ;+24-40]
cmp eax,[edi-16] ;+24-40]
.end:
ret
 
;mov eax,[esi-12]
;cmp eax,[edi-12]
;jz @f
;ret
;@@:
;mov eax,[esi-16]
;cmp eax,[edi-16]
;ret
 
;push ecx ; ìîæíî îïóñòèòü, åñëè ecx íå æàëêî
;mov eax,[esi-12]
;cmp eax,[edi-12]
;setnz ch
;adc ch,-2
;mov eax,[esi-16]
;cmp eax,[edi-16]
;setnz cl
;adc cl,-2
;cmp cx,0xFEFE
;pop ecx
;ret
;---------------------------------------------------------------------
align 4
sort_by_size:
mov eax,[esi-4] ;+36-40]
cmp eax,[edi-4] ;+36-40]
jnz .end
mov eax,[esi-8] ;+32-40]
cmp eax,[edi-8] ;+32-40]
.end:
ret
 
;mov eax,[esi-4]
;cmp eax,[edi-4]
;jz @f
;ret
;@@:
;mov eax,[esi-8]
;cmp eax,[edi-8]
;ret
 
;push ecx ; ìîæíî îïóñòèòü, åñëè ecx íå æàëêî
;mov eax,[esi-4]
;cmp eax,[edi-4]
;setnz ch
;adc ch,-2
;mov eax,[esi-8]
;cmp eax,[edi-8]
;setnz cl
;adc cl,-2
;cmp cx,0xFEFE
;pop ecx
;ret
;---------------------------------------------------------------------
add_counter:
add edi,304
mov eax,[appl_memory]
sub eax,304-40
cmp eax,edi
ret
;---------------------------------------------------------------------
copy_folders_1:
mov edi,ebp
call multiple_304
; imul edi,304
mov esi,edi
add esi,[left_folder_data]
add esi,32
mov ah,0x10
mov al,[esi]
cmp [dir_or_file],0
ret
;---------------------------------------------------------------------
copy_folders_2:
mov edi,ebp
call multiple_304
; imul edi,304
mov esi,edi
add esi,[right_folder_data]
add esi,32
cmp [dir_or_file],0
ret
;---------------------------------------------------------------------
move_bdvk:
sub esi,40
mov edi,[sort_counter]
call multiple_304
add edi,[esp+4+4]
call move_bdvk_1
inc [dir_temp_counter]
ret
;---------------------------------------------------------------------
move_bdvk_1:
mov eax,[esi+300]
mov [edi+300],eax
mov ecx,0
mov [edi+299],cl
mov cx,[esi+300]
add ecx,41
ror ecx,2
mov ax,cx
xor cx,cx
rol ecx,2
mov bx,cx
mov cx,ax
cld
rep movsd
mov cx,bx
rep movsb
ret
;---------------------------------------------------------------------
multiple_304:
shl edi,4
mov eax,edi
mov ebx,eax
shl edi,5
shl eax,3
sub edi,eax
mov eax,ebx
shl ebx,2
sub edi,ebx
sub edi,eax
ret
;---------------------------------------------------------------------
move_area_for_bdvk:
mov eax,[dir_temp_counter]
mov edi,[sort_counter]
test eax,eax
je .end
cmp eax,edi
jbe .end
call multiple_304
; imul edi,304
mov ecx,edi
mov edi,[dir_temp_counter]
add edi,2
call multiple_304
; imul edi,304
mov eax,ecx
mov ebx,[esp+12+4]
add edi,ebx
mov edx,[appl_memory]
cmp edi,edx
jbe @f
mov edi,edx
@@:
mov esi,edi
sub esi,304
mov ecx,edi
sub ecx,ebx
sub ecx,eax
shr ecx,2
std
rep movsd
 
; mov eax,ecx
; mov ebx,304
; mov edx,0
; div ebx
; mov ecx,eax
; sub ecx,2
; mov eax,[appl_memory]
; mov [temp_ecx],edi
; mov [temp_ebx],esi
; mov [temp_eax],eax
; pusha
; call draw_window
; mcall 5,300
; popa
; sub edi,303
; sub esi,303
;@@:
; push ecx esi edi
; call move_bdvk_1
; pop edi esi ecx
; sub edi,304
; sub esi,304
; dec ecx
; jnz @b
.end:
ret
;---------------------------------------------------------------------
search_extension_start:
mov edx,esi
xor eax,eax
@@:
cld
lodsb
test eax,eax
jnz @b
dec esi
dec edx
push esi
@@:
std
lodsb
cmp esi,edx
je .end
cmp al,'.'
jnz @b
add esi,2
pop ebx
ret
.end:
pop esi
mov ebx,esi
ret
;---------------------------------------------------------------------
right_sort_files:
mov eax,[right_folder_data]
add eax,32+40
cmp [eax],word '..'
jne @f
cmp [eax+2],byte 0
jne @f
add [right_folder_data],304
dec [right_folder_block]
mov [exit_to_dir],1
@@:
; add memory for sorting
mov ecx,[appl_memory]
push ecx
sub ecx,[right_folder_data]
add ecx,[esp]
mov [appl_memory],ecx
mcall 64,1
mov edi,[esp]
mov ecx,[appl_memory]
sub ecx,edi
shr ecx,2
mov eax,0xffffffff
cld
rep stosd
cmp [right_sort_flag],0
je right_name_sort
cmp [right_sort_flag],1
je right_type_sort
jmp right_size_date_sort
.move_sorted_file:
; move sorted file area in folder area
mov esi,[esp]
mov ecx,esi
mov edi,[right_folder_data]
add edi,32
sub ecx,edi
shr ecx,2
cld
rep movsd
cmp [exit_to_dir],0
je @f
sub [right_folder_data],304
inc [right_folder_block]
mov [exit_to_dir],0
@@:
; sub memory for sorting
pop ecx
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
right_name_sort:
; sorting of files
call prepare_data_1
call right_name_sort_1
call prepare_data_2
call right_name_sort_1
.1:
call prepare_data_4
jmp right_sort_files.move_sorted_file
right_name_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_2
je .file
test [esi],byte 0x10
jz .continue
jmp @f
.file:
test [esi],byte 0x10
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
call sort_by_name.start
jae .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[right_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
right_type_sort:
; sorting of files
call right_prepare_extension_start_1
call prepare_data_1
call right_type_sort_1
call prepare_data_2
call right_type_sort_1
jmp right_name_sort.1
right_type_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_2
je .file
test [esi],byte 0x10
jz .continue
jmp @f
.file:
test [esi],byte 0x10
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
cmp [dir_or_file],1
je @f
call prepare_data_5
@@:
call sort_by_name.start
je .1
ja .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
.1:
cmp [dir_or_file],1
je .add_counter
call sort_by_name
jbe .no_add_counter
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[right_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
right_size_date_sort:
; sorting of files
call prepare_data_1
call right_size_date_sort_1
call prepare_data_2
call right_size_date_sort_1
jmp right_name_sort.1
right_size_date_sort_1:
xor ebp,ebp
.copy_folders:
call copy_folders_2
je .file
test [esi],byte 0x10
jz .continue
jmp @f
.file:
test [esi],byte 0x10
jnz .continue
@@:
call prepare_data_3
.start:
push esi edi
cmp [right_sort_flag],2
je .size_sort
call sort_by_date
je .1
ja .add_counter
jmp .no_add_counter
.size_sort:
cmp [dir_or_file],0
je .file_1
call sort_by_name.start
jmp @f
.file_1:
call sort_by_size
@@:
jae .add_counter
.no_add_counter:
call move_area_for_bdvk
pop edi esi
jmp .end
.1:
call sort_by_name.start
jbe .no_add_counter
.add_counter:
inc [sort_counter]
pop edi esi
call add_counter
jae .start
.end:
call move_bdvk
.continue:
inc ebp
cmp ebp,[right_folder_block]
jb .copy_folders
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/text.inc
0,0 → 1,203
header db 'KFM - Kolibri File Manager v0.47b',0
;---------------------------------------------------------------------
fbutton_name:
.f1 db '1 Help',0
.f2 db '2',0
.f3 db '3 View',0
.f4 db '4 Edit',0
.f5 db '5 Copy',0
.f6 db '6 Move',0
.f7 db '7 Dir',0
.f8 db '8 Del',0
.f9 db '9',0
.f10 db '10',0
.f11 db '11',0
.f12 db '12 Exit',0
;---------------------------------------------------------------------
fbutton_name_shift:
.f1 db '1',0
.f2 db '2',0
.f3 db '3',0
.f4 db '4',0
.f5 db '5',0
.f6 db '6',0
.f7 db '7',0
.f8 db '8',0
.f9 db '9',0
.f10 db '10',0
.f11 db '11',0
.f12 db '12',0
;---------------------------------------------------------------------
fbutton_name_ctrl:
.f1 db '1',0
.f2 db '2',0
.f3 db '3 Name',0
.f4 db '4 Type',0
.f5 db '5 Size',0
.f6 db '6 Date',0
.f7 db '7',0
.f8 db '8',0
.f9 db '9',0
.f10 db '10',0
.f11 db '11',0
.f12 db '12',0
;---------------------------------------------------------------------
fbutton_name_alt:
.f1 db '1 Left',0
.f2 db '2 Right',0
.f3 db '3',0
.f4 db '4',0
.f5 db '5',0
.f6 db '6',0
.f7 db '7',0
.f8 db '8',0
.f9 db '9',0
.f10 db '10',0
.f11 db '11',0
.f12 db '12',0
;---------------------------------------------------------------------
;device_present_name:
; .rd db 'rd ',0
; .fd db 'fd ',0
; .hd0 db 'hd0',0
; .hd1 db 'hd1',0
; .hd2 db 'hd2',0
; .hd3 db 'hd3',0
; .cd0 db 'cd0',0
; .cd1 db 'cd1',0
; .cd2 db 'cd2',0
; .cd3 db 'cd3',0
;---------------------------------------------------------------------
read_folder_device_name:
.rd db 'rd',0
.fd db 'fd',0
.hd0 db 'hd0',0
.hd1 db 'hd1',0
.hd2 db 'hd2',0
.hd3 db 'hd3',0
.cd0 db 'cd0',0
.cd1 db 'cd1',0
.cd2 db 'cd2',0
.cd3 db 'cd3',0
;---------------------------------------------------------------------
select_disk_char:
db '/',0
;---------------------------------------------------------------------
truncated_filename_char db '..'
;---------------------------------------------------------------------
sort_button_name:
.name db 'Name'
.type db 'Type'
.size db 'Size'
.date db 'Date'
;---------------------------------------------------------------------
type_table:
db '<DIR> '
;---------------------------------------------------------------------
size_table:
db '1023b '
;---------------------------------------------------------------------
date_table:
db ' . . 22:00 '
;---------------------------------------------------------------------
year_table:
db ' '
;---------------------------------------------------------------------
ini_file_name:
db 'kfm.ini',0
;---------------------------------------------------------------------
icons_file_name:
db 'icons.bmp',0
;---------------------------------------------------------------------
buttons_file_name:
db 'buttons.bmp',0
;---------------------------------------------------------------------
error_type:
db 'File system error',0
;---------------------------------------------------------------------
delete_type:
db 'Delete file(s)',0
;---------------------------------------------------------------------
copy_type:
db ' Copy files',0
;---------------------------------------------------------------------
copy_type_1:
db 'Copy file',0
;---------------------------------------------------------------------
move_type:
db ' Move files',0
;---------------------------------------------------------------------
move_type_1:
db 'Move file',0
;---------------------------------------------------------------------
create_dir:
db 'Create directory',0
;---------------------------------------------------------------------
exit_type:
db ' Exit?',0
;---------------------------------------------------------------------
type_yes:
db 'Yes',0
;---------------------------------------------------------------------
type_no:
db 'No',0
;---------------------------------------------------------------------
type_location:
db 'Location:',0
;---------------------------------------------------------------------
type_file_name:
db 'File name:',0
;---------------------------------------------------------------------
type_dir_name:
db 'Dir. name:',0
;---------------------------------------------------------------------
type_files:
db 'Files:',0
;---------------------------------------------------------------------
type_dir:
db 'Dir.:',0
;---------------------------------------------------------------------
type_size:
db 'Size:',0
;---------------------------------------------------------------------
mouse_left_panel:
db 'Left ',0
mouse_right_panel:
db 'Right',0
mouse_other_panel:
db 'Other',0
;---------------------------------------------------------------------
type_of:
db 'of',0
;---------------------------------------------------------------------
help_file_name:
db 'kfm_keys.txt',0
;---------------------------------------------------------------------
;initiation file tags
start_line:
db 13,10
files_associations:
db '<>files_associations',13,10
files_associations_1:
db '<>files_association1',13,10
icons_associations:
db '<>icons_associations',13,10
end_section_tag:
db '<>end',13,10
;---------------------------------------------------------------------
;open file parameters
background_tile:
db '\T '
background_stretch:
db '\S '
;---------------------------------------------------------------------
copy_editboxes:
create_editboxes:
edit1 edit_box 150,10,10,0xffffff,0xbbddff,0,0,0,255,create_dir_name,ed_focus+ed_always_focus,0
copy_editboxes_end:
create_editboxes_end:
;---------------------------------------------------------------------
;copy_editboxes:
;edit2 edit_box 150,10,10,0xffffff,0,0,0,0,255,create_dir_name,ed_focus,0
;copy_editboxes_end:
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/tran_ini.inc
0,0 → 1,186
;---------------------------------------------------------------------
get_icon_number:
mov ebp,[extension_size] ;[icons_end_tag]
mov edx,[icons_end_tag]
mov edi,[ini_file_start]
dec edi
.search_association:
cmp edx,edi
jbe .end
mov esi,[extension_start]
mov ecx,ebp
test ecx,ecx
je @f
sub ecx,2
@@:
inc edi
mov ebx,edi
cld
rep cmpsb
mov edi,ebx
jne .search_association
mov esi,edi
add esi,ebp
test ebp,ebp
je @f
sub esi,2
@@:
cmp [esi],byte ' '
jne .search_association
inc esi
xor ebx,ebx
call .calculate
imul eax,1000
call .calculate_1
imul eax,100
call .calculate_1
imul eax,10
call .calculate_1
add ebx,eax
ret
.end:
mov ebx,2
ret
;---------------------------------------------------------------------
.calculate_1:
add ebx,eax
.calculate:
xor eax,eax
cld
lodsb
sub eax,0x30
ret
;---------------------------------------------------------------------
open_file_with_appl_1:
mov ebp,files_associations_1
jmp open_file_with_appl.1
;---------------------------------------------------------------------
open_file_with_appl:
; edx - start file name
; esi - start extension
mov ebp,files_associations
.1:
mov [extension_start],esi
call search_star_and_end_tags
cmp ebp,-1
je .end
.search_association:
cmp [end_tag],edi
jbe .end
mov esi,[extension_start] ;extension_temp_area
mov ecx,[extension_size]
inc edi
cld
push edi
rep cmpsb
pop edi
jne .search_association
push esi
mov esi,edi
add esi,[extension_size] ;4
cmp [esi],byte ' '
je @f
pop esi
jmp .search_association
@@:
add esp,4
inc esi
mov edi,file_name ;start_file_data.name
xor eax,eax
@@:
cld
lodsb
stosb
cmp al,' '
cmp al,13
jnz @b
mov [edi-1],byte 0 ;'#'
cmp [use_patch],0
je @f
mov [use_patch],0
jmp .continue
@@:
cmp [select_panel_counter],0
jne @f
mov esi,read_folder_name ;read_folder.name
jmp .start
@@:
mov esi,read_folder_1_name ;read_folder_1.name
.start:
mov edi,start_parameter
cmp [open_param],0
je .start_1
mov eax,[open_param]
mov eax,[eax]
cld
stosd
; call draw_window
; mov eax,0
; ret
.start_1:
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov [edi-1], byte '/'
mov esi,edx
mov [error_pointer],edx ;start_file_data.name
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
.continue:
mov [start_file_data.param],start_parameter
call start_appl
cmp eax,0
jge @f
mov ebx,0
sub ebx,eax
mov eax,ebx
call start_error_window_thread
@@:
mov eax,0
ret
.end:
mov eax,1
ret
;---------------------------------------------------------------------
search_star_and_end_tags:
mov edi,[ini_file_start]
dec edi
.search_tag1:
cmp [left_folder_data],edi
jbe .end
mov esi,ebp
mov ecx,22
inc edi
cld
push edi
rep cmpsb
pop edi
jne .search_tag1
dec edi
push edi
.search_end_tag:
cmp [left_folder_data],edi
jbe .end
mov esi,end_section_tag
mov ecx,7
inc edi
cld
push edi
rep cmpsb
pop edi
jne .search_end_tag
mov [end_tag],edi
pop edi
ret
.end:
mov ebp,-1
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property
/programs/fs/kfm/.
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property