;-----------------------------------------------------------
;-----------load heading of file in memory------------------
;-----------------------------------------------------------

load_heading_of_file:

         mov [where_load_file],ebx
         mov [full_file_path],eax

         mov esi,[full_file_path]
         mov edi,filepath
         mov ecx,256
         rep movsd

         xor eax,eax
         mov ecx,[where_load_file]
         mov edx,filepath

         mov [file_information],eax
         mov [file_information+4],eax
         mov [file_information+8],eax
         mov [file_information+12],dword 512
         mov [file_information+16],ecx
         mov [file_information+20],al
         mov [file_information+21],edx

         mov eax,70
         mov ebx,file_information
         mcall

         ret
;-----------------------------------------------------------
;--------load file in memory--------------------------------
;-----------------------------------------------------------
load_file:
         mov [where_load_file],ebx
         mov [full_file_path],eax

         mov esi,[full_file_path]
         mov edi,filepath
         mov ecx,256
         rep movsd

         xor eax,eax
         mov ebx,bufer_for_info
         mov ecx,filepath

         mov [file_information],dword 5
         mov [file_information+4],eax
         mov [file_information+8],eax
         mov [file_information+12],eax
         mov [file_information+16],ebx
         mov [file_information+20],al
         mov [file_information+21],ecx

         mov eax,70
	 mov ebx,file_information
         mcall
         
         test eax,eax
         jnz error_load_file

         xor eax,eax
         mov ebx,[bufer_for_info+32]
         mov ecx,[where_load_file]
         mov edx,filepath

         mov [file_information],eax
         mov [file_information+4],eax
         mov [file_information+8],eax
         mov [file_information+12],ebx
         mov [file_information+16],ecx
         mov [file_information+20],al
         mov [file_information+21],edx

         mov eax,70
         mov ebx,file_information
         mcall

         error_load_file:

	 ret
;-----------------------------------------------------------
;---------------save in file from memory--------------------
;-----------------------------------------------------------
save_file:
         mov [size_to_save],ecx
         mov [pointer_to_data],ebx
         mov [full_file_path],eax

         mov esi,[full_file_path]
         mov edi,filepath
         mov ecx,256
         rep movsd

         xor eax,eax
         mov ebx,[size_to_save]
         mov ecx,[pointer_to_data]
         mov edx,filepath

         mov [file_information],dword 2
         mov [file_information+4],eax
         mov [file_information+8],eax
         mov [file_information+12],ebx
         mov [file_information+16],ecx
         mov [file_information+20],al
         mov [file_information+21],edx

         mov eax,70
         mov ebx,file_information
         mcall

	 ret

;----------------------------------------------------------
;-------------file information structure-------------------
;----------------------------------------------------------

file_information:
 
  dd 5
  dd 0
  dd 0
  dd 0
  dd bufer_for_info
  dd 0
  dd filepath

filepath rb 1040 

bufer_for_info  rd 10
full_file_path  dd 0
where_load_file dd 0
size_to_save    dd 0
pointer_to_data dd 0