Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3839 → Rev 3840

/programs/fs/kfm/trunk/confirm.inc
1,36 → 1,48
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
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]
41,15 → 53,12
shl ebx,16
mov cx,15
mov bx,40
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
mcall 8,,,0x40000000+160,0xffffff
add ebx,50 shl 16
inc edx
int 0x40
mcall
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_confirmation_menu:
mov ecx,[window_high]
mov ebx,[window_width]
61,7 → 70,7
shl ebx,16
mov cx,44
mov bx,120
mcall 13, , ,0x6060ff ;0xff
mcall 13,,,0x6060ff
push ebx ecx
add ebx,15 shl 16
add ecx,22 shl 16
71,23 → 80,26
push ebx ecx
cmp [work_confirmation],0
jne @f
 
add ebx,50 shl 16
;--------------------------------------
@@:
int 0x40
mcall
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,38
mov cx,13
mov edx,0x6060ff
int 0x40
mcall ,,,0x6060ff
pop ecx ebx
mov edx,0xff0000
cmp [work_confirmation],0
je @f
 
add ebx,50 shl 16
mov edx,0xaa00
;--------------------------------------
@@:
int 0x40
mcall
pop ecx ebx
shr ecx,16
mov bx,cx
94,53 → 106,66
add ebx,15 shl 16+5
mcall 4, ,0x90ffffff,[confirmation_type]
add ebx,7 shl 16+20
mov edx,type_yes
int 0x40
mcall ,,,type_yes
add ebx,56 shl 16
mov edx,type_no
int 0x40
mcall ,,,type_no
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/copy.inc
97,7 → 97,7
;-------------------------------------------------------------
.button_copy:
mov eax,17
int 0x40
mcall
test ah,ah
jz .still
cmp ah,160
127,7 → 127,7
;-------------------------------------------------------------
.key_copy:
mov eax,2
int 0x40
mcall
cmp ah,13
je .exit_with_copy
cmp ah,27
165,10 → 165,10
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
mcall
add ebx,50 shl 16
inc edx
int 0x40
mcall
popa
 
push ebx ecx
182,15 → 182,15
sub ebx,1 shl 16
mov bx,42
mov cx,17
int 0x40
mcall
add ebx,50 shl 16
int 0x40
mcall
pop ecx ebx
mov edx,0xff7700
int 0x40
mcall
mov edx,0xaa00
add ebx,50 shl 16
int 0x40
mcall
pop ecx ebx
 
shr ecx,16
206,10 → 206,10
mcall 4, ,0x90ffffff
add ebx,18 shl 16+36
mov edx,type_yes
int 0x40
mcall
add ebx,56 shl 16
mov edx,type_no
int 0x40
mcall
ret
;-------------------------------------------------------------
copy_file_1:
/programs/fs/kfm/trunk/creatdir.inc
25,7 → 25,7
;-------------------------------------------------------------
.button_create:
mov eax,17
int 0x40
mcall
test ah,ah
jz .still
cmp ah,160
49,7 → 49,7
;-------------------------------------------------------------
.key_create:
mov eax,2
int 0x40
mcall
cmp ah,13
je .exit_with_create
cmp ah,27
87,10 → 87,10
mov esi,0xffffff
mov edx,0x40000000+160
mov eax,8
int 0x40
mcall
add ebx,50 shl 16
inc edx
int 0x40
mcall
popa
 
push ebx ecx
104,15 → 104,15
sub ebx,1 shl 16
mov bx,42
mov cx,17
int 0x40
mcall
add ebx,50 shl 16
int 0x40
mcall
pop ecx ebx
mov edx,0xff7700
int 0x40
mcall
mov edx,0xaa00
add ebx,50 shl 16
int 0x40
mcall
pop ecx ebx
 
shr ecx,16
121,10 → 121,10
mcall 4, ,0x90ffffff,create_dir ;[confirmation_type]
add ebx,48 shl 16+36
mov edx,type_yes
int 0x40
mcall
add ebx,56 shl 16
mov edx,type_no
int 0x40
mcall
ret
;-------------------------------------------------------------
create_directory_1:
/programs/fs/kfm/trunk/data.inc
44,18 → 44,26
window_status rd 1
skin_high rd 1
fbutton_width rd 1
 
left_panel_x:
.size_x rw 1
.start_x rw 1
 
left_panel_y:
.size_y rw 1
.start_y rw 1
 
right_panel_x:
.size_x rw 1
.start_x rw 1
 
right_panel_y:
.size_y rw 1
.start_y rw 1
left_panel_y_correct_size_y rw 1
right_panel_y_correct_size_y rw 1
 
drawing_panel_folder rb 1 ; 1-left, 2 right
;---------------------------------------------------------------------
align 4
/programs/fs/kfm/trunk/draw.inc
1,3 → 1,4
;------------------------------------------------------------------------------
draw_buttons_panel:
mov ecx,[skin_high]
add ecx,19
11,8 → 12,7
add edx,[skin_high]
pusha
call .calculate_button
mov edx,150
int 0x40
mcall ,,,150
popa
mcall 7,[buttons_img_start],<16,16>
add edx,26 shl 16
19,59 → 19,53
add ebx,16*16*3
pusha
call .calculate_button
mov edx,151
int 0x40
mcall ,,,151
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,152
int 0x40
mcall ,,,152
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,153
int 0x40
mcall ,,,153
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,154
int 0x40
mcall ,,,154
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,155
int 0x40
mcall ,,,155
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,156
int 0x40
mcall ,,,156
popa
int 0x40
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mov edx,157
int 0x40
mcall ,,,157
popa
int 0x40
mcall
ret
;--------------------------------------
.calculate_button:
mov esi,0xffffff
mov ebx,edx
81,7 → 75,7
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]
89,17 → 83,21
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
109,10 → 107,10
mov eax,8
mov ebp,4
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
calclulate_sort_button_2:
inc ebp
int 0x40
mcall
pusha
push ebx
mov eax,ebx
121,17 → 119,20
add ebx,eax
cmp ebp,4
jne @f
 
mov bx,15
jmp .continue
;--------------------------------------
@@:
mov bx,1
;--------------------------------------
.continue:
mov edx,0xcccccc
inc ecx
mcall 13
mcall 13,,,0xcccccc
pop ebx
cmp ebp,1
jne @f
 
mov eax,[temp_panel_end]
shl eax,16
add eax,[temp_panel_end]
143,6 → 144,7
rol ebx,16
mcall 13
mov [temp_panel_end],ebx
;--------------------------------------
@@:
popa
pusha
149,7 → 151,6
shr ecx,16
mov bx,cx
add ebx,3 shl 16+2
mov ecx,0x10000000
mov edx,ebp
dec edx
shl edx,2
156,7 → 157,7
add edx,sort_button_name
mov eax,4
mov esi,eax
int 0x40
mcall ,,0x10000000
popa
dec edx
sub ebx,38 shl 16
163,7 → 164,7
mov bx,36
dec ebp
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_right_sort_button:
mov bx,[right_panel_x.start_x]
add bx,[right_panel_x.size_x]
171,22 → 172,27
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
193,23 → 199,22
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
mcall 8,,,,0xffffff
mcall 13,,,0xffffff
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
221,8 → 226,7
popa
add ebx,50 shl 16
mov bx,10
mov edx,0x6060ff
int 0x40
mcall ,,,0x6060ff
mov [temp_panel_end],ebx
add ebx,1 shl 16
shr ecx,16
230,9 → 234,9
add ebx,3
mcall 4, ,0x80ffffff,select_disk_char
add ebx,1 shl 16
int 0x40
mcall
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_right_select_disk_button:
mov bx,[right_panel_x.start_x]
mov cx,[right_panel_y.start_y]
239,7 → 243,7
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
249,7 → 253,6
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]
256,6 → 259,7
mov eax,[right_panel_x]
mov [temp_panel_end],eax
mov [temp_counter],1
;--------------------------------------
.draw:
shl ebx,16
mov bx,25
266,62 → 270,82
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]
338,6 → 362,7
mcall 13,,,0xcccccc
cmp [temp_counter],0
je @f
 
mov ax,bx
shr ebx,16
add bx,ax
346,6 → 371,7
sub ax,bx
cmp eax,0
jbe @f
 
shl ebx,16
mov bx,ax
mov ax,[right_panel_y.size_y]
354,12 → 380,11
sub ax,cx
shl ecx,16
mov cx,ax
mov edx,0xcccccc
mcall 13
mcall 13,,,0xcccccc
ret
;--------------------------------------
.draw_1:
int 0x40
mcall
pusha
mov eax,ebx
inc eax
367,8 → 392,7
add ebx,eax
mov bx,1
inc ecx
mov edx,0xcccccc
mcall 13
mcall 13,,,0xcccccc
popa
pusha
mov edx,ebp
375,20 → 399,18
shr ecx,16
mov bx,cx
add ebx,2 shl 16 +3
mov ecx,0x90000000
mov eax,4
int 0x40
mov ecx,0x90ffffff
mcall 4,,0x90000000
sub ebx,1 shl 16 + 1
int 0x40
mcall ,,0x90ffffff
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]
397,20 → 419,24
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
419,7 → 445,7
mcall 7, ,<10,9>
popa
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ
; Âõîä:
; AX - ÷èñëî
426,11 → 452,13
; 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
442,10 → 470,13
inc ecx
cmp ax,0
jne .p3
 
cmp ecx,1
jbe .p4
 
mov ecx,2
dec ebx
;--------------------------------------
.p4:
pop edx
mov [ebx],dl
453,12 → 484,13
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
470,53 → 502,65
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
je .extension_size_0
 
cmp al,'.'
jnz @b
 
add esi,2
mov [extension_start],esi
mov ecx,[temp_counter_1]
526,13 → 570,17
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
540,15 → 588,19
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
563,10 → 615,12
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]
575,10 → 629,12
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]
587,10 → 643,12
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]
597,13 → 655,17
;.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
611,9 → 673,11
std
rep movsb
jmp @r
;--------------------------------------
@@:
pop edx
pop ebx
;--------------------------------------
.date:
xor eax,eax
mov al,[edx-40+28]
636,31 → 700,34
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
mcall 4,,,type_table,20
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]
671,20 → 738,24
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]
694,14 → 765,16
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
709,7 → 782,9
div ebx
cmp eax,[left_folder_block]
je .end_1
 
jmp .continue_1
;--------------------------------------
@@:
sub eax,[right_folder_data]
sub eax,32+40
718,14 → 793,18
div ebx
cmp eax,[right_folder_block]
je .end_1
;--------------------------------------
.continue_1:
popa
cmp eax,[max_panel_line] ; 20
je .end_2 ;.end
je .end_2
 
mov [marked_file],0
cmp [edx+299-40],byte 0
je @f
 
mov [marked_file],1
;--------------------------------------
@@:
call clear_line
call draw_type_size_date
743,31 → 822,32
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
mcall 4
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
mcall 4,,0xff0000,truncated_filename_char,2
add ebx,1 shl 16
int 0x40
mcall
pop edx ebx
;--------------------------------------
.continue:
add ebx,10
add edx,304 ;10
774,8 → 854,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]
788,24 → 870,27
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
mcall 13,,,0xffffff
;--------------------------------------
@@:
 
.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
812,20 → 897,26
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
835,17 → 926,19
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
mcall 13,,,0xffffff
;--------------------------------------
.end:
popa
;--------------------------------------
.end_1:
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_left_panel:
call clear_left_panel
call calc_max_panel_line
854,7 → 947,7
call draw_folder_data
call draw_left_panel_patch
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_right_panel:
call clear_right_panel
call calc_max_panel_line
863,11 → 956,13
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]
874,15 → 969,17
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]
892,15 → 989,14
sub ecx,35
shl ecx,16
mov cx,12
mov edx,0xffffcc
mov eax,13
int 0x40
mcall 13,,,0xffffcc
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
911,24 → 1007,27
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
mcall 13,,,0xbbddff
;--------------------------------------
.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
939,19 → 1038,22
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
958,10 → 1060,12
imul eax,10
cmp ax,cx
jae @f
 
mov cx,ax
;--------------------------------------
@@:
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
clear_left_panel:
mov ebx,7 shl 16
add ebx,[window_width]
970,28 → 1074,25
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
;@@:
xor eax,eax
mov ax,cx
xor edx,edx
mov ebx,10
div ebx
; óìíîæåíèå íà 10
shl eax,1 ; óìíîæåíèå íà 2
lea eax,[eax+eax*4] ; óìíîæåíèå íà 5
mov [left_panel_y_correct_size_y],ax
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
calculate_panel_1:
mov ecx,[skin_high]
add ecx,70
shl ecx,16
add ecx,[window_high]
sub ecx,130
sub ecx,129
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
1003,23 → 1104,29
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
;@@:
xor eax,eax
mov ax,cx
xor edx,edx
mov ebx,10
div ebx
; óìíîæåíèå íà 10
shl eax,1 ; óìíîæåíèå íà 2
lea eax,[eax+eax*4] ; óìíîæåíèå íà 5
mov [right_panel_y_correct_size_y],ax
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
erase_fbutton:
mov edx,0x80000065
mov eax,8
mov ebp,12
;--------------------------------------
.start:
int 0x40
mcall
dec ebp
jnz .start
 
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_fbutton:
test [window_status],100b ; window is rolled up
jnz .exit
1032,7 → 1139,6
shl ecx,16
add ecx,15
mov eax,[window_width]
; sub eax,8
mov ebx,12
xor edx,edx
div ebx
1044,9 → 1150,11
mov edx,101
mov eax,8
mov ebp,12
;--------------------------------------
.start:
cmp ebp,1
jne @f
 
mov eax,ebx
shr eax,16
mov bx,ax
1055,6 → 1163,7
sub ax,5
mov bx,ax
mov eax,8
;--------------------------------------
@@:
mcall
push eax ebx edx
1062,20 → 1171,23
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
mcall ,,,0xcccccc
dec ecx
;--------------------------------------
@@:
pop edx ebx eax
call .rol_ror
1082,15 → 1194,18
inc edx
dec ebp
jnz .start
 
call draw_fbutton_name
ret
;--------------------------------------
.rol_ror:
rol ebx,16
add ebx,[fbutton_width]
ror ebx,16
;--------------------------------------
.exit:
ret
;---------------------------------------------------------------------
;------------------------------------------------------------------------------
draw_fbutton_name:
mov ebx, 7 shl 16
add ebx,[window_high]
1102,13 → 1217,17
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
1133,8 → 1252,9
mov edx,fbutton_name.f11
call .type_all
mov edx,fbutton_name.f12
int 0x40
mcall
ret
;--------------------------------------
.type_shift:
mov edx,fbutton_name_shift.f1
call .type_all
1159,8 → 1279,9
mov edx,fbutton_name_shift.f11
call .type_all
mov edx,fbutton_name_shift.f12
int 0x40
mcall
ret
;--------------------------------------
.type_ctrl:
mov edx,fbutton_name_ctrl.f1
call .type_all
1185,8 → 1306,9
mov edx,fbutton_name_ctrl.f11
call .type_all
mov edx,fbutton_name_ctrl.f12
int 0x40
mcall
ret
;--------------------------------------
.type_alt:
mov edx,fbutton_name_alt.f1
call .type_all
1211,7 → 1333,9
mov edx,fbutton_name_alt.f11
call .type_all
mov edx,fbutton_name_alt.f12
;--------------------------------------
.type_all:
int 0x40
mcall
call draw_fbutton.rol_ror
ret
;------------------------------------------------------------------------------
/programs/fs/kfm/trunk/key.inc
88,7 → 88,7
jbe .marked_action ;still
mov ax,[left_start_draw_cursor_line]
add ax,10
cmp ax,[left_panel_y.size_y]
cmp ax,[left_panel_y_correct_size_y]
jae @f
.add_1:
add [left_start_draw_cursor_line],10
97,7 → 97,7
.all:
sub ecx,10 shl 16
mov edx,0xffffff
int 0x40
mcall
mov [not_clear_lines],1
call draw_folder_data
mov [not_clear_lines],0
138,7 → 138,7
jbe .marked_action_1 ;still
mov ax,[right_start_draw_cursor_line]
add ax,10
cmp ax,[right_panel_y.size_y]
cmp ax,[right_panel_y_correct_size_y]
jae @f
.add_2:
add [right_start_draw_cursor_line],10
178,7 → 178,7
.all:
add ecx,10 shl 16
mov edx,0xffffff
int 0x40
mcall
mov [not_clear_lines],1
call draw_folder_data
mov [not_clear_lines],0
/programs/fs/kfm/trunk/kfm.asm
25,7 → 25,7
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*****************************************************************************
; KFM v0.47g 24/07/2013
; KFM v0.47h 28/07/2013
;---------------------------------------------------------------------
use32
org 0x0
44,6 → 44,7
;include 'macros.inc'
include '../../../macros.inc'
include '../../../config.inc' ;for nightbuild
;include '../../../debug.inc' ;for nightbuild
 
include 'editbox.inc'
;use_edit_box
/programs/fs/kfm/trunk/menu_drv.inc
280,7 → 280,7
imul cx,10
mov edx,0xffffcc
mov eax,13
int 0x40
mcall
call draw_menu_Selection
call draw_menu_data
ret
294,7 → 294,7
imul cx,10
mov edx,0xffffcc
mov eax,13
int 0x40
mcall
call draw_menu_Selection
call draw_menu_data
ret
322,7 → 322,7
mov cx,10
mov edx,0xbbffbb
mov eax,13
int 0x40
mcall
pop ecx ebx
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/progrbar.inc
22,7 → 22,7
je .end
sub ebx,13
mov edx,delete_type
int 0x40
mcall
.end:
popa
mov [draw_all_progressbar],0
53,7 → 53,7
@@:
mov edx,0xff0000
.continue_1:
int 0x40
mcall
call calculate_progress_data_2
shr ecx,16
mov bx,cx
74,7 → 74,7
mov edx,move_type_1
.continue:
 
int 0x40
mcall
.end:
popa
mov [draw_all_progressbar],0
92,7 → 92,7
mov bx,ax
mov eax,13
mov edx, 0x6060ff
int 0x40
mcall
pop ebx
@@:
ret
124,7 → 124,7
sub si,bx
mov bx,si
mov edx,0xffffff
int 0x40
mcall
pop ebx
@@:
ret
135,7 → 135,7
cmp [draw_all_progressbar],0
je @f
mov edx, 0x6060ff
int 0x40
mcall
@@:
add ebx,10 shl 16
sub ebx,20
164,7 → 164,7
mov ebp,[current_progress_value]
call calculate_progress_data_1
mov bx,[temp_progress_value]
int 0x40
mcall
call calculate_progress_data_2
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/scroll.inc
343,15 → 343,15
mov bx,14
add ecx,16 shl 16
sub cx,31
int 0x40
mcall
popa
xor edx,edx
push ebx
mov bx,1
int 0x40
mcall
push ecx
add ebx,15 shl 16
int 0x40
mcall
pop ecx
pop ebx
mov [draw_scroll_character],1
419,7 → 419,7
mov cx,1
cmp [draw_scroll_character],2
je .draw_center
int 0x40
mcall
pusha
add ecx,1 shl 16
add ebx,1 shl 16
426,7 → 426,7
mov cx,14
mov bx,14
mov edx,0xbbddff
int 0x40
mcall
xor edx,edx
cmp [draw_scroll_character],1
jne .draw_down
434,19 → 434,19
mov bx,7
add ecx,8 shl 16
mov cx,1
int 0x40
mcall
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
int 0x40
mcall
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,3
int 0x40
mcall
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,1
int 0x40
mcall
jmp .continue
.draw_down:
add ebx,3 shl 16
453,23 → 453,23
mov bx,7
add ecx,5 shl 16
mov cx,1
int 0x40
mcall
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
int 0x40
mcall
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,3
int 0x40
mcall
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,1
int 0x40
mcall
.continue:
popa
add ecx,15 shl 16
int 0x40
mcall
pop ecx
ret
 
497,11 → 497,11
.draw_center_continue:
mov bx,14
mov edx,0xbbddff
int 0x40
mcall
xor edx,edx
mov cx,1
sub ecx,1 shl 16
int 0x40
mcall
pop ecx
cmp [scroll_pointer_1],1
jne .right_1
517,15 → 517,15
mov bx,10
add ecx,4 shl 16
mov cx,1
int 0x40
mcall
add ecx,3 shl 16
sub ebx,1 shl 16
mov bx,12
int 0x40
mcall
add ebx,1 shl 16
mov bx,10
add ecx,3 shl 16
int 0x40
mcall
.continue_1:
popa
ror ecx,16
537,7 → 537,7
add ecx,[right_scroll_compens]
.draw_center_continue_2:
rol ecx,16
int 0x40
mcall
pop ecx
ret
;---------------------------------------------------------------------
/programs/fs/kfm/trunk/sort.inc
19,6 → 19,7
sub ecx,[left_folder_data]
mov ebx,[appl_memory]
add ecx,ebx
add ecx,4 ; äëÿ ñòðàõîâêè
push ebx
mov [appl_memory],ecx
mcall 64,1
46,6 → 47,7
rep movsd
; sub memory for sorting
pop ecx
add ecx,4 ; äëÿ ñòðàõîâêè
mov [appl_memory],ecx
mcall 64,1
cmp [exit_to_dir],0
138,6 → 140,12
je .1
ja .add_counter
.no_add_counter:
; pushad
; pushfd
; dps 'left_type_sort'
; newline
; popfd
; popad
call move_area_for_bdvk
pop edi esi
jmp .end
579,9 → 587,29
sub ecx,ebx
sub ecx,eax
shr ecx,2
; pushad
; pushfd
; dph [appl_memory]
; newline
; dps 'ECX:'
; dpd ecx
; newline
; dps 'ESI:'
; dpd esi
; newline
; dps 'EDI:'
; dpd edi
; newline
; popfd
; popad
std
rep movsd
 
; pushad
; pushfd
; dps 'move_area_for_bdvk END'
; newline
; popfd
; popad
; mov eax,ecx
; mov ebx,304
; mov edx,0
654,6 → 682,7
push ecx
sub ecx,[right_folder_data]
add ecx,[esp]
add ecx,4 ; äëÿ ñòðàõîâêè
mov [appl_memory],ecx
mcall 64,1
mov edi,[esp]
680,6 → 709,7
rep movsd
; sub memory for sorting
pop ecx
add ecx,4 ; äëÿ ñòðàõîâêè
mov [appl_memory],ecx
mcall 64,1
cmp [exit_to_dir],0
766,6 → 796,12
je .1
ja .add_counter
.no_add_counter:
; pushad
; pushfd
; dps 'left_type_sort'
; newline
; popfd
; popad
call move_area_for_bdvk
pop edi esi
jmp .end
/programs/fs/kfm/trunk/text.inc
1,4 → 1,4
header_text db 'Kolibri File Manager v0.47g 24/07/2013',0
header_text db 'Kolibri File Manager v0.47h 28/07/2013',0
;---------------------------------------------------------------------
fbutton_name:
.f1 db '1 Help',0