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