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 |
;--------------------------------------------------------------------- |