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