forked from KolibriOS/kolibrios
KFM - display the date of creation, change, and access on the window of properties file/directory (Alt + Enter)
git-svn-id: svn://kolibrios.org@3833 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ab10e61dba
commit
b055f3351c
@ -2,9 +2,35 @@
|
|||||||
align 4
|
align 4
|
||||||
files_counter rd 1
|
files_counter rd 1
|
||||||
directories_counter rd 1
|
directories_counter rd 1
|
||||||
|
|
||||||
files_size:
|
files_size:
|
||||||
.low rd 1
|
.low rd 1
|
||||||
.high rd 1
|
.high rd 1
|
||||||
|
;Ôîđěŕň âđĺěĺíč:
|
||||||
|
; * +0: byte: ńĺęóíäű
|
||||||
|
; * +1: byte: ěčíóňű
|
||||||
|
; * +2: byte: ÷ŕńű
|
||||||
|
; * +3: byte: çŕđĺçĺđâčđîâŕíî (0)
|
||||||
|
; * íŕďđčěĺđ, 23.59.59 çŕďčńűâŕĺňń˙ ęŕę (â hex) 3B 3B 17 00
|
||||||
|
time:
|
||||||
|
.create:
|
||||||
|
rd 1
|
||||||
|
.access:
|
||||||
|
rd 1
|
||||||
|
.change:
|
||||||
|
rd 1
|
||||||
|
;Ôîđěŕň äŕňű:
|
||||||
|
; * +0: byte: äĺíü
|
||||||
|
; * +1: byte: ěĺń˙ö
|
||||||
|
; * +2: word: ăîä
|
||||||
|
; * íŕďđčěĺđ, 25.11.1979 çŕďčńűâŕĺňń˙ ęŕę (â hex) 19 0B BB 07
|
||||||
|
date:
|
||||||
|
.create:
|
||||||
|
rd 1
|
||||||
|
.access:
|
||||||
|
rd 1
|
||||||
|
.change:
|
||||||
|
rd 1
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
open_param rd 1
|
open_param rd 1
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
@ -90,14 +116,12 @@ align 4
|
|||||||
left_start_draw_line rd 1
|
left_start_draw_line rd 1
|
||||||
left_folder_block rd 1
|
left_folder_block rd 1
|
||||||
left_start_draw_cursor_line rw 1
|
left_start_draw_cursor_line rw 1
|
||||||
;left_panel_clear_all rb 1
|
|
||||||
left_folder_block_1 rd 1
|
left_folder_block_1 rd 1
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
right_start_draw_line rd 1
|
right_start_draw_line rd 1
|
||||||
right_folder_block rd 1
|
right_folder_block rd 1
|
||||||
right_start_draw_cursor_line rw 1
|
right_start_draw_cursor_line rw 1
|
||||||
;right_panel_clear_all rb 1
|
|
||||||
right_folder_block_1 rd 1
|
right_folder_block_1 rd 1
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@ -197,10 +221,6 @@ type_name:
|
|||||||
rb 512
|
rb 512
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
type_size_string:
|
|
||||||
rb 32
|
|
||||||
;---------------------------------------------------------------------
|
|
||||||
align 4
|
|
||||||
type_files_string:
|
type_files_string:
|
||||||
rb 16
|
rb 16
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
@ -6,14 +6,11 @@ files_information:
|
|||||||
mov [files_size.low],eax
|
mov [files_size.low],eax
|
||||||
mov [files_size.high],eax
|
mov [files_size.high],eax
|
||||||
call get_files_information
|
call get_files_information
|
||||||
mov eax,files_size
|
|
||||||
mov ebx,type_size_string
|
|
||||||
call decimal_string_20
|
|
||||||
call start_files_information_thread
|
call start_files_information_thread
|
||||||
jmp still
|
jmp still
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
start_files_information_thread:
|
start_files_information_thread:
|
||||||
mcall 9, procinfo, -1
|
mcall 9,procinfo,-1
|
||||||
mov eax,[ebx+46]
|
mov eax,[ebx+46]
|
||||||
shr eax,1
|
shr eax,1
|
||||||
add eax,[ebx+38]
|
add eax,[ebx+38]
|
||||||
@ -26,135 +23,175 @@ start_files_information_thread:
|
|||||||
mov [files_information_window_x+2],ax
|
mov [files_information_window_x+2],ax
|
||||||
mcall 51,1,thread_files_information_start,thread_stack
|
mcall 51,1,thread_files_information_start,thread_stack
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
draw_files_information_window:
|
draw_files_information_window:
|
||||||
mcall 12, 1
|
mcall 12,1
|
||||||
mcall 0,[files_information_window_x] ,[files_information_window_y], 0x03ffffcc
|
mcall 0,[files_information_window_x],[files_information_window_y],0x03ffffcc
|
||||||
mov edx,90 shl 16+50
|
mov edx,100 shl 16+50
|
||||||
mov ebx,0xa0000
|
mov ebx,0x800a0000
|
||||||
mov esi,0x10000000
|
mov esi,0x10000000
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .continue_4
|
je .continue_4
|
||||||
|
|
||||||
cmp [nesting_direction],1
|
cmp [nesting_direction],1
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
add edx,15
|
add edx,15
|
||||||
|
;--------------------------------------
|
||||||
.continue_4:
|
.continue_4:
|
||||||
mcall 47, ,[files_counter]
|
; show files counter
|
||||||
|
mcall 47,,[files_counter]
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .continue_2
|
je .continue_2
|
||||||
|
|
||||||
cmp [nesting_direction],0
|
cmp [nesting_direction],0
|
||||||
je .continue_2
|
je .continue_2
|
||||||
|
|
||||||
cmp [directories_counter],0
|
cmp [directories_counter],0
|
||||||
je @f
|
je @f
|
||||||
|
;--------------------------------------
|
||||||
.continue_2:
|
.continue_2:
|
||||||
|
; show directories counter
|
||||||
add edx,15
|
add edx,15
|
||||||
mcall 47, ,[directories_counter]
|
mcall ,,[directories_counter]
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
|
; show file or directory size
|
||||||
add edx,15
|
add edx,15
|
||||||
mov ebx,edx
|
mcall 47,0x80140001,files_size
|
||||||
mcall 4, ,0x90000000,type_size_string
|
;--------------------------------------
|
||||||
|
mov ebp,date.create
|
||||||
|
call show_date_and_time_of_files_information
|
||||||
|
;--------------------------------------
|
||||||
|
mov ebp,date.change
|
||||||
|
call show_date_and_time_of_files_information
|
||||||
|
;--------------------------------------
|
||||||
|
mov ebp,date.access
|
||||||
|
call show_date_and_time_of_files_information
|
||||||
|
;--------------------------------------
|
||||||
cmp [select_panel_counter],0
|
cmp [select_panel_counter],0
|
||||||
jne .right_1
|
jne .right_1
|
||||||
|
|
||||||
mov edx,read_folder_name
|
mov edx,read_folder_name
|
||||||
jmp @f
|
jmp @f
|
||||||
|
;--------------------------------------
|
||||||
.right_1:
|
.right_1:
|
||||||
mov edx,read_folder_1_name
|
mov edx,read_folder_1_name
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
mcall 4,<75,35>,0x80000000, ;file_name
|
mcall 4,<75,35>,0x80000000, ;file_name
|
||||||
mcall 4,<10,35>,0x90000000,type_location
|
mcall ,<10,35>,0x90000000,type_location
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .continue
|
je .continue
|
||||||
mcall 4,<90,50>,0x80000000,type_name
|
|
||||||
|
mcall ,<90,50>,0x80000000,type_name
|
||||||
mov ecx,0x90000000
|
mov ecx,0x90000000
|
||||||
cmp [nesting_direction],1
|
cmp [nesting_direction],1
|
||||||
je @f
|
je @f
|
||||||
mcall 4,<10,50>, ,type_dir_name
|
|
||||||
|
mcall ,<10,50>,,type_dir_name
|
||||||
jmp .continue
|
jmp .continue
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
mcall 4,<10,50>, ,type_file_name
|
mcall ,<10,50>,,type_file_name
|
||||||
|
;--------------------------------------
|
||||||
.continue:
|
.continue:
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .continue_3
|
je .continue_3
|
||||||
|
|
||||||
cmp [nesting_direction],1
|
cmp [nesting_direction],1
|
||||||
je @f
|
je @f
|
||||||
|
;--------------------------------------
|
||||||
.continue_3:
|
.continue_3:
|
||||||
add ebx,15
|
add ebx,15
|
||||||
mcall 4, , ,type_files
|
mcall ,,,type_files
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .continue_1
|
je .continue_1
|
||||||
|
|
||||||
cmp [nesting_direction],0
|
cmp [nesting_direction],0
|
||||||
je .continue_1
|
je .continue_1
|
||||||
|
|
||||||
cmp [directories_counter],0
|
cmp [directories_counter],0
|
||||||
je @f
|
je @f
|
||||||
|
;--------------------------------------
|
||||||
.continue_1:
|
.continue_1:
|
||||||
add ebx,15
|
add ebx,15
|
||||||
mcall 4, , ,type_dir
|
mcall ,,,type_dir
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
add ebx,15
|
add ebx,15
|
||||||
mcall 4, , ,type_size
|
mcall ,,,type_size
|
||||||
mcall 12, 2
|
add ebx,15
|
||||||
|
mcall ,,,type_create
|
||||||
|
add ebx,15
|
||||||
|
mcall ,,,type_change
|
||||||
|
add ebx,15
|
||||||
|
mcall ,,,type_access
|
||||||
|
sub ebx,30
|
||||||
|
add ebx,107 shl 16
|
||||||
|
mcall ,,0x80000000,type_limiters_data_time
|
||||||
|
add ebx,15
|
||||||
|
mcall
|
||||||
|
add ebx,15
|
||||||
|
mcall
|
||||||
|
|
||||||
|
mcall 12,2
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
show_date_and_time_of_files_information:
|
||||||
|
; show date
|
||||||
|
add edx,15
|
||||||
|
push edx
|
||||||
|
movzx ecx,byte [ebp+0]
|
||||||
|
mcall ,0x00020000
|
||||||
|
add edx,24 shl 16
|
||||||
|
movzx ecx,byte [ebp+1]
|
||||||
|
mcall
|
||||||
|
add edx,23 shl 16
|
||||||
|
movzx ecx,word [ebp+2]
|
||||||
|
mcall ,0x00040000
|
||||||
|
sub ebp,12
|
||||||
|
; show time
|
||||||
|
add edx,37 shl 16
|
||||||
|
movzx ecx,byte [ebp+2]
|
||||||
|
mcall ,0x00020000
|
||||||
|
add edx,24 shl 16
|
||||||
|
movzx ecx,byte [ebp+1]
|
||||||
|
mcall
|
||||||
|
add edx,23 shl 16
|
||||||
|
movzx ecx,byte [ebp+0]
|
||||||
|
mcall
|
||||||
|
pop edx
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
thread_files_information_start:
|
thread_files_information_start:
|
||||||
.red:
|
.red:
|
||||||
call draw_files_information_window
|
call draw_files_information_window
|
||||||
|
;--------------------------------------
|
||||||
.still:
|
.still:
|
||||||
mcall 10
|
mcall 10
|
||||||
cmp eax,1
|
cmp eax,1
|
||||||
je .red
|
je .red
|
||||||
|
|
||||||
cmp eax,2
|
cmp eax,2
|
||||||
je .key
|
je .key
|
||||||
|
|
||||||
cmp eax,3
|
cmp eax,3
|
||||||
je .button
|
je .button
|
||||||
|
|
||||||
jmp .still
|
jmp .still
|
||||||
|
;--------------------------------------
|
||||||
.key:
|
.key:
|
||||||
|
mcall 2
|
||||||
|
;--------------------------------------
|
||||||
.button:
|
.button:
|
||||||
mcall -1
|
mcall -1
|
||||||
jmp .still
|
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-áèòíîãî ÷èñëà divident íà 16-áèòíîå ÷èñëî divisor.
|
||||||
; ×àñòíîå ïîìåùàåòñÿ â 64-áèòíóþ ïåðåìåííóþ quotent,
|
; ×àñòíîå ïîìåùàåòñÿ â 64-áèòíóþ ïåðåìåííóþ quotent,
|
||||||
; à îñòàòîê - â 16-áèòíóþ ïåðåìåííóþ modulo
|
; à îñòàòîê - â 16-áèòíóþ ïåðåìåííóþ modulo
|
||||||
@ -175,7 +212,7 @@ Division_64bit:
|
|||||||
mov [quotent],ax
|
mov [quotent],ax
|
||||||
; mov [modulo],dx
|
; mov [modulo],dx
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
;divident:
|
;divident:
|
||||||
; rb 8
|
; rb 8
|
||||||
divisor:
|
divisor:
|
||||||
@ -184,28 +221,32 @@ quotent:
|
|||||||
rb 8
|
rb 8
|
||||||
;modulo:
|
;modulo:
|
||||||
; rb 2
|
; rb 2
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
copy_type_name:
|
copy_type_name:
|
||||||
push esi
|
push esi
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
mov edi,type_name
|
mov edi,type_name
|
||||||
@@:
|
|
||||||
cld
|
cld
|
||||||
|
;--------------------------------------
|
||||||
|
@@:
|
||||||
lodsb
|
lodsb
|
||||||
stosb
|
stosb
|
||||||
test al,al
|
test al,al
|
||||||
jnz @b
|
jnz @b
|
||||||
|
|
||||||
pop esi
|
pop esi
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
get_files_information:
|
get_files_information:
|
||||||
call get_information_marked_files
|
call get_information_marked_files
|
||||||
cmp [inf_marked_yes],1
|
cmp [inf_marked_yes],1
|
||||||
je .end_2
|
je .end_2
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
cmp [select_panel_counter],0
|
cmp [select_panel_counter],0
|
||||||
jne .right_1
|
jne .right_1
|
||||||
|
|
||||||
mov ax,[left_start_draw_cursor_line]
|
mov ax,[left_start_draw_cursor_line]
|
||||||
mov ebx,10
|
mov ebx,10
|
||||||
div ebx
|
div ebx
|
||||||
@ -216,6 +257,7 @@ get_files_information:
|
|||||||
call prepare_data_8
|
call prepare_data_8
|
||||||
mov esi,read_folder_name
|
mov esi,read_folder_name
|
||||||
jmp .end
|
jmp .end
|
||||||
|
;--------------------------------------
|
||||||
.right_1:
|
.right_1:
|
||||||
mov ax,[right_start_draw_cursor_line]
|
mov ax,[right_start_draw_cursor_line]
|
||||||
mov ebx,10
|
mov ebx,10
|
||||||
@ -226,42 +268,73 @@ get_files_information:
|
|||||||
add ebx,[right_folder_data]
|
add ebx,[right_folder_data]
|
||||||
call prepare_data_8
|
call prepare_data_8
|
||||||
mov esi,read_folder_1_name
|
mov esi,read_folder_1_name
|
||||||
|
;--------------------------------------
|
||||||
.end:
|
.end:
|
||||||
mov [error_pointer],ebx
|
mov [error_pointer],ebx
|
||||||
|
;--------------------------------------
|
||||||
|
push eax ebx
|
||||||
|
sub ebx,40
|
||||||
|
; âðåìÿ ñîçäàíèÿ ôàéëà
|
||||||
|
mov eax,[ebx+8]
|
||||||
|
mov [time.create],eax
|
||||||
|
; äàòà ñîçäàíèÿ ôàéëà
|
||||||
|
mov eax,[ebx+12]
|
||||||
|
mov [date.create],eax
|
||||||
|
; âðåìÿ ïîñëåäíåãî äîñòóïà (÷òåíèå èëè çàïèñü)
|
||||||
|
mov eax,[ebx+16]
|
||||||
|
mov [time.access],eax
|
||||||
|
; äàòà ïîñëåäíåãî äîñòóïà
|
||||||
|
mov eax,[ebx+20]
|
||||||
|
mov [date.access],eax
|
||||||
|
; âðåìÿ ïîñëåäíåé ìîäèôèêàöèè
|
||||||
|
mov eax,[ebx+24]
|
||||||
|
mov [time.change],eax
|
||||||
|
; äàòà ïîñëåäíåé ìîäèôèêàöèè
|
||||||
|
mov eax,[ebx+28]
|
||||||
|
mov [date.change],eax
|
||||||
|
pop ebx eax
|
||||||
|
;--------------------------------------
|
||||||
call copy_type_name
|
call copy_type_name
|
||||||
mov edi,file_name
|
mov edi,file_name
|
||||||
call copy_path_1
|
call copy_path_1
|
||||||
|
|
||||||
test [ebx-40],byte 0x10
|
test [ebx-40],byte 0x10
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
push eax ebx
|
push eax ebx
|
||||||
call get_inf_dir
|
call get_inf_dir
|
||||||
mov [nesting_direction],0
|
mov [nesting_direction],0
|
||||||
pop ebx eax
|
pop ebx eax
|
||||||
dec [directories_counter]
|
dec [directories_counter]
|
||||||
jmp .end_2
|
jmp .end_2
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
mov [nesting_direction],1
|
mov [nesting_direction],1
|
||||||
call get_file_size
|
call get_file_size
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz .end_1
|
jz .end_1
|
||||||
|
|
||||||
call start_error_window_thread
|
call start_error_window_thread
|
||||||
add esp,4
|
add esp,4
|
||||||
jmp reload_dir_all
|
jmp reload_dir_all
|
||||||
|
;--------------------------------------
|
||||||
.end_1:
|
.end_1:
|
||||||
; inc [files_counter]
|
|
||||||
mov eax,[file_features_temp_area+32]
|
mov eax,[file_features_temp_area+32]
|
||||||
add [files_size.low],eax
|
add [files_size.low],eax
|
||||||
mov eax,[file_features_temp_area+32+4]
|
mov eax,[file_features_temp_area+32+4]
|
||||||
adc [files_size.high],eax
|
adc [files_size.high],eax
|
||||||
|
;--------------------------------------
|
||||||
.end_2:
|
.end_2:
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
get_information_marked_files:
|
get_information_marked_files:
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov [inf_marked_yes],al
|
mov [inf_marked_yes],al
|
||||||
cmp [select_panel_counter],al
|
cmp [select_panel_counter],al
|
||||||
jne .right_1
|
jne .right_1
|
||||||
|
|
||||||
mov ebp,[left_folder_block]
|
mov ebp,[left_folder_block]
|
||||||
|
;--------------------------------------
|
||||||
.start:
|
.start:
|
||||||
mov ebx,ebp
|
mov ebx,ebp
|
||||||
dec ebx
|
dec ebx
|
||||||
@ -270,21 +343,29 @@ get_information_marked_files:
|
|||||||
add ebx,32+40
|
add ebx,32+40
|
||||||
cmp [ebx+299-40],byte 0
|
cmp [ebx+299-40],byte 0
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
cmp [ebx],word '..'
|
cmp [ebx],word '..'
|
||||||
jne .continue
|
jne .continue
|
||||||
|
|
||||||
cmp [ebx+2],byte 0
|
cmp [ebx+2],byte 0
|
||||||
je .continue_1
|
je .continue_1
|
||||||
|
;--------------------------------------
|
||||||
.continue:
|
.continue:
|
||||||
mov esi,read_folder_name
|
mov esi,read_folder_name
|
||||||
call prepare_data_9
|
call prepare_data_9
|
||||||
|
;--------------------------------------
|
||||||
.continue_1:
|
.continue_1:
|
||||||
mov [inf_marked_yes],1
|
mov [inf_marked_yes],1
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
dec ebp
|
dec ebp
|
||||||
jnz .start
|
jnz .start
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
.right_1:
|
.right_1:
|
||||||
mov ebp,[right_folder_block]
|
mov ebp,[right_folder_block]
|
||||||
|
;--------------------------------------
|
||||||
.start_1:
|
.start_1:
|
||||||
mov ebx,ebp
|
mov ebx,ebp
|
||||||
dec ebx
|
dec ebx
|
||||||
@ -293,72 +374,89 @@ get_information_marked_files:
|
|||||||
add ebx,32+40
|
add ebx,32+40
|
||||||
cmp [ebx+299-40],byte 0
|
cmp [ebx+299-40],byte 0
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
cmp [ebx],word '..'
|
cmp [ebx],word '..'
|
||||||
jne .continue_2
|
jne .continue_2
|
||||||
|
|
||||||
cmp [ebx+2],byte 0
|
cmp [ebx+2],byte 0
|
||||||
je .continue_3
|
je .continue_3
|
||||||
|
;--------------------------------------
|
||||||
.continue_2:
|
.continue_2:
|
||||||
mov esi,read_folder_1_name
|
mov esi,read_folder_1_name
|
||||||
call prepare_data_9
|
call prepare_data_9
|
||||||
|
;--------------------------------------
|
||||||
.continue_3:
|
.continue_3:
|
||||||
mov [inf_marked_yes],1
|
mov [inf_marked_yes],1
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
dec ebp
|
dec ebp
|
||||||
jnz .start_1
|
jnz .start_1
|
||||||
|
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
prepare_data_9:
|
prepare_data_9:
|
||||||
mov [error_pointer],ebx
|
mov [error_pointer],ebx
|
||||||
mov edi,file_name
|
mov edi,file_name
|
||||||
call copy_path_1
|
call copy_path_1
|
||||||
test [ebx-40],byte 0x10
|
test [ebx-40],byte 0x10
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
call get_inf_dir
|
call get_inf_dir
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
inc [files_counter]
|
inc [files_counter]
|
||||||
call get_file_size
|
call get_file_size
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz .continue
|
jz .continue
|
||||||
|
|
||||||
call start_error_window_thread
|
call start_error_window_thread
|
||||||
add esp,8+4
|
add esp,8+4
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
.continue:
|
.continue:
|
||||||
mov eax,[file_features_temp_area+32]
|
mov eax,[file_features_temp_area+32]
|
||||||
add [files_size.low],eax
|
add [files_size.low],eax
|
||||||
mov eax,[file_features_temp_area+32+4]
|
mov eax,[file_features_temp_area+32+4]
|
||||||
adc [files_size.high],eax
|
adc [files_size.high],eax
|
||||||
|
;--------------------------------------
|
||||||
.continue_1:
|
.continue_1:
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
prepare_data_8:
|
prepare_data_8:
|
||||||
add ebx,32+40
|
add ebx,32+40
|
||||||
cmp [ebx],word '..'
|
cmp [ebx],word '..'
|
||||||
jne .continue
|
jne .continue
|
||||||
|
|
||||||
cmp [ebx+2],byte 0
|
cmp [ebx+2],byte 0
|
||||||
jne .continue
|
jne .continue
|
||||||
|
|
||||||
add esp,4+4
|
add esp,4+4
|
||||||
jmp reload_dir
|
jmp reload_dir
|
||||||
|
;--------------------------------------
|
||||||
.continue:
|
.continue:
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
get_inf_dir:
|
get_inf_dir:
|
||||||
mov [nesting_direction],0
|
mov [nesting_direction],0
|
||||||
pusha
|
pusha
|
||||||
mov [recursive_pointer],0
|
mov [recursive_pointer],0
|
||||||
mov eax,[appl_memory]
|
mov eax,[appl_memory]
|
||||||
mov [appl_memory_old],eax
|
mov [appl_memory_old],eax
|
||||||
|
;--------------------------------------
|
||||||
.1:
|
.1:
|
||||||
mov [read_delete_dir_data.size],0
|
mov [read_delete_dir_data.size],0
|
||||||
mov [read_delete_dir_data.return],delete_dir_data
|
mov [read_delete_dir_data.return],delete_dir_data
|
||||||
call read_delete_dir
|
call read_delete_dir
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
mov [error_pointer],file_name
|
mov [error_pointer],file_name
|
||||||
call start_error_window_thread
|
call start_error_window_thread
|
||||||
popa
|
popa
|
||||||
add esp,8+8
|
add esp,8+8
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
mov eax,[delete_dir_data+8]
|
mov eax,[delete_dir_data+8]
|
||||||
imul eax,304
|
imul eax,304
|
||||||
@ -367,10 +465,12 @@ get_inf_dir:
|
|||||||
add ebx,[appl_memory_old]
|
add ebx,[appl_memory_old]
|
||||||
cmp ebx,[appl_memory]
|
cmp ebx,[appl_memory]
|
||||||
jbe @f
|
jbe @f
|
||||||
|
|
||||||
mov ecx,[appl_memory]
|
mov ecx,[appl_memory]
|
||||||
mov ecx,ebx
|
mov ecx,ebx
|
||||||
mov [appl_memory],ecx
|
mov [appl_memory],ecx
|
||||||
mcall 64,1
|
mcall 64,1
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
mov eax,[delete_dir_data+8]
|
mov eax,[delete_dir_data+8]
|
||||||
mov [read_delete_dir_data.size],eax
|
mov [read_delete_dir_data.size],eax
|
||||||
@ -379,48 +479,59 @@ get_inf_dir:
|
|||||||
call read_delete_dir
|
call read_delete_dir
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
mov [error_pointer],file_name
|
mov [error_pointer],file_name
|
||||||
call start_error_window_thread
|
call start_error_window_thread
|
||||||
popa
|
popa
|
||||||
add esp,8+8
|
add esp,8+8
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
cmp [nesting_direction],0
|
cmp [nesting_direction],0
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
call get_inf_dir_2
|
call get_inf_dir_2
|
||||||
jnc .end
|
jnc .end
|
||||||
|
|
||||||
dec ebp
|
dec ebp
|
||||||
push ebp
|
push ebp
|
||||||
jmp .1
|
jmp .1
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
call get_inf_dir_1
|
call get_inf_dir_1
|
||||||
jnc .end
|
jnc .end
|
||||||
dec ebp
|
dec ebp
|
||||||
push ebp
|
push ebp
|
||||||
jmp .1
|
jmp .1
|
||||||
|
;--------------------------------------
|
||||||
.end:
|
.end:
|
||||||
call return_delete_path
|
call return_delete_path
|
||||||
dec [recursive_pointer]
|
dec [recursive_pointer]
|
||||||
cmp [recursive_pointer],0
|
cmp [recursive_pointer],0
|
||||||
jge .1
|
jge .1
|
||||||
|
|
||||||
mov ecx,[appl_memory_old]
|
mov ecx,[appl_memory_old]
|
||||||
cmp [appl_memory],ecx
|
cmp [appl_memory],ecx
|
||||||
je @f
|
je @f
|
||||||
|
|
||||||
mov [appl_memory],ecx
|
mov [appl_memory],ecx
|
||||||
mcall 64,1
|
mcall 64,1
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
get_inf_dir_2:
|
get_inf_dir_2:
|
||||||
pop eax
|
pop eax
|
||||||
pop ebp
|
pop ebp
|
||||||
push eax
|
push eax
|
||||||
jmp get_inf_dir_1.start
|
jmp get_inf_dir_1.start
|
||||||
|
;--------------------------------------
|
||||||
get_inf_dir_1:
|
get_inf_dir_1:
|
||||||
inc [directories_counter]
|
inc [directories_counter]
|
||||||
mov ebp,[appl_memory_old]
|
mov ebp,[appl_memory_old]
|
||||||
mov ebp,[ebp+8]
|
mov ebp,[ebp+8]
|
||||||
|
;--------------------------------------
|
||||||
.start:
|
.start:
|
||||||
mov ebx,ebp
|
mov ebx,ebp
|
||||||
dec ebx
|
dec ebx
|
||||||
@ -429,21 +540,27 @@ get_inf_dir_1:
|
|||||||
add ebx,32+40
|
add ebx,32+40
|
||||||
cmp [ebx],byte '.'
|
cmp [ebx],byte '.'
|
||||||
jne @f
|
jne @f
|
||||||
|
|
||||||
cmp [ebx+1],byte 0
|
cmp [ebx+1],byte 0
|
||||||
je .continue_4
|
je .continue_4
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
cmp [ebx],word '..'
|
cmp [ebx],word '..'
|
||||||
jne .continue
|
jne .continue
|
||||||
|
|
||||||
cmp [ebx+2],byte 0
|
cmp [ebx+2],byte 0
|
||||||
je .continue_4
|
je .continue_4
|
||||||
|
;--------------------------------------
|
||||||
.continue:
|
.continue:
|
||||||
mov esi,file_name
|
mov esi,file_name
|
||||||
inc [recursive_pointer]
|
inc [recursive_pointer]
|
||||||
call copy_path_2
|
call copy_path_2
|
||||||
test [ebx-40],byte 0x10
|
test [ebx-40],byte 0x10
|
||||||
jnz .continue_3
|
jnz .continue_3
|
||||||
|
;--------------------------------------
|
||||||
@@:
|
@@:
|
||||||
inc [files_counter]
|
inc [files_counter]
|
||||||
|
;--------------------------------------
|
||||||
.continue_1:
|
.continue_1:
|
||||||
mov eax,[ebx+32-40]
|
mov eax,[ebx+32-40]
|
||||||
add [files_size.low],eax
|
add [files_size.low],eax
|
||||||
@ -453,23 +570,24 @@ get_inf_dir_1:
|
|||||||
call return_delete_path
|
call return_delete_path
|
||||||
dec ebp
|
dec ebp
|
||||||
jnz .start
|
jnz .start
|
||||||
|
;--------------------------------------
|
||||||
.continue_4:
|
.continue_4:
|
||||||
clc
|
clc
|
||||||
mov [nesting_direction],1
|
mov [nesting_direction],1
|
||||||
ret
|
ret
|
||||||
|
;--------------------------------------
|
||||||
.continue_3:
|
.continue_3:
|
||||||
stc
|
stc
|
||||||
mov [nesting_direction],0
|
mov [nesting_direction],0
|
||||||
ret
|
ret
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
;type_patch_test:
|
;type_patch_test:
|
||||||
; pusha
|
; pusha
|
||||||
; mcall 5,200
|
; mcall 5,200
|
||||||
; mcall 13,<290,300>,<3,13>,0x0
|
; mcall 13,<290,300>,<3,13>,0x0
|
||||||
; mcall 4,<300, 5>,0x80FFFFFF,file_name ;[error_pointer]
|
; mcall 4,<300,5>,0x80FFFFFF,file_name ;[error_pointer]
|
||||||
; mcall 47,0x160100,[recursive_pointer],<300, 5>,0xffffff
|
; mcall 47,0x160100,[recursive_pointer],<300,5>,0xffffff
|
||||||
; mcall 47,0x160100,ebp,<300, 5>,0xffffff
|
; mcall 47,0x160100,ebp,<300,5>,0xffffff
|
||||||
; mcall 5,1
|
; mcall 5,1
|
||||||
; popa
|
; popa
|
||||||
; ret
|
; ret
|
||||||
@ -478,4 +596,4 @@ get_inf_dir_1:
|
|||||||
;temp_value_3 db '3',0
|
;temp_value_3 db '3',0
|
||||||
;temp_value_4 db '4',0
|
;temp_value_4 db '4',0
|
||||||
;temp_value_5 db '5',0
|
;temp_value_5 db '5',0
|
||||||
;---------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
@ -1,6 +1,6 @@
|
|||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
; KFM - Kolibri File Manager
|
; KFM - Kolibri File Manager
|
||||||
; Copyright (c) 2006 - 2012, Marat Zakiyanov aka Mario79, aka Mario
|
; Copyright (c) 2006 - 2013, Marat Zakiyanov aka Mario79, aka Mario
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
;
|
;
|
||||||
; Redistribution and use in source and binary forms, with or without
|
; Redistribution and use in source and binary forms, with or without
|
||||||
@ -25,7 +25,7 @@
|
|||||||
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
; KFM v0.47e 16.04.2012
|
; KFM v0.47g 24/07/2013
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
use32
|
use32
|
||||||
org 0x0
|
org 0x0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
header_text db 'Kolibri File Manager v0.47f 04/07/2013',0
|
header_text db 'Kolibri File Manager v0.47g 24/07/2013',0
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
fbutton_name:
|
fbutton_name:
|
||||||
.f1 db '1 Help',0
|
.f1 db '1 Help',0
|
||||||
@ -155,11 +155,23 @@ type_files:
|
|||||||
db 'Files:',0
|
db 'Files:',0
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
type_dir:
|
type_dir:
|
||||||
db 'Dir.:',0
|
db 'Directories:',0
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
type_size:
|
type_size:
|
||||||
db 'Size:',0
|
db 'Size:',0
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
|
type_create:
|
||||||
|
db 'Create date:',0
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
type_change:
|
||||||
|
db 'Change date:',0
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
type_access:
|
||||||
|
db 'Access date:',0
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
type_limiters_data_time:
|
||||||
|
db '/ / : :',0
|
||||||
|
;---------------------------------------------------------------------
|
||||||
mouse_left_panel:
|
mouse_left_panel:
|
||||||
db 'Left ',0
|
db 'Left ',0
|
||||||
mouse_right_panel:
|
mouse_right_panel:
|
||||||
@ -191,8 +203,8 @@ background_tile:
|
|||||||
background_stretch:
|
background_stretch:
|
||||||
db '\S '
|
db '\S '
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
files_information_window_x: dd 100 shl 16 + 250
|
files_information_window_x: dd 100 shl 16 + 300
|
||||||
files_information_window_y: dd 100 shl 16 + 300
|
files_information_window_y: dd 100 shl 16 + 200
|
||||||
;---------------------------------------------------------------------
|
;---------------------------------------------------------------------
|
||||||
error_window_x: dd 100 shl 16 + 250
|
error_window_x: dd 100 shl 16 + 250
|
||||||
error_window_y: dd 100 shl 16 + 80
|
error_window_y: dd 100 shl 16 + 80
|
||||||
|
Loading…
x
Reference in New Issue
Block a user