Subversion Repositories Kolibri OS

Rev

Rev 488 | Rev 509 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;-------------------------------------------------------------------------
  2. ;
  3. ;    ‡ ¬¥­  ¨¬¥­ ä ©«®¢
  4. ;
  5. ;
  6. ;     SPraid
  7. ;
  8. ;-------------------------------------------------------------------------
  9.  
  10. ; ¯¥à¥¡¨à ¥â ¯® ä ©«ã ¢ à¨ ­âë § ¬¥­
  11. proc full_file_name stdcall,sourc,dest
  12. locals
  13.   param  rb 60
  14.   val    rb 60
  15.   tmpsrc rb 60  ; ¢à¥¬¥­­®¥ åà ­¥­¨¥ ¯à¥®¡à §®¢ ­¨ï
  16. endl
  17.   pushad
  18.  
  19.  
  20.   mov esi,[sourc]
  21. ;  mov edi,ebp
  22. ;  add edi,tmpsrc-ebp
  23.    lea edi, [tmpsrc]
  24.  
  25. @@:
  26.   lodsb
  27.   stosb
  28.   or al,al
  29.   jnz @b
  30.  
  31.   mov al,[conf_file_loaded]                                     ; âॡã¥âáï ¯à¨ ®¡à é¥­¨¨ ª ¯¥à¢®¬ã ä ©«ã (ª®­ä¨£ã)
  32.   or al,al
  33.   jnz @use_replace
  34.  
  35.   jmp full_file_name_exit
  36.  
  37.  
  38. ;--------------------------------
  39.  @use_replace:
  40.  
  41.   xor eax,eax
  42. .loop:
  43.   push eax
  44. ;  mov ebx,ebp
  45. ;  add ebx,param-ebp
  46. ;  mov ecx,ebp
  47. ;  add ecx,val-ebp
  48.   lea ebx, [param]
  49.   lea ecx, [val]
  50.   invoke ini.get_par,sect, ebx, ecx, eax
  51.  
  52.   mov bl,[param]
  53.   or bl,bl
  54.   jz .done
  55.  
  56. ;  mov eax,ebp
  57. ;  add eax,tmpsrc-ebp
  58. ;  mov ebx,ebp
  59. ;  add ebx,param-ebp
  60. ;  mov ecx,ebp
  61. ;  add ecx,val-ebp
  62.   lea eax, [tmpsrc]
  63.   lea ebx, [param]
  64.   lea ecx, [val]
  65.   mov edx,[dest]
  66.  
  67.   stdcall full_file_name_parse, eax,edx,ebx,ecx
  68.  
  69.   mov esi,[dest]
  70. ;  mov edi,ebp
  71. ;  add edi,tmpsrc-ebp
  72.   lea edi, [tmpsrc]
  73. @@:
  74.   lodsb
  75.   stosb
  76.   or al,al
  77.   jnz @b
  78.  
  79.   pop eax
  80.   inc eax
  81.   jmp .loop
  82.  
  83. .done:
  84.   pop eax
  85. full_file_name_exit:
  86.  
  87. ;  mov eax,ebp
  88. ;  add eax,tmpsrc-ebp
  89.   lea eax, [tmpsrc]
  90.   stdcall full_file_name_parse , eax , [dest], sysdir_ , sys_path
  91.   popad
  92.   ret
  93. endp
  94.  
  95. sect: db 'path',0
  96.  
  97. ;
  98. ;  à¥®¡à §®¢ âì ¨¬ï ¢ ¯®«­®¥. …᫨ ¢ ­ ç «¥ á⮨â
  99. ;     sourc - áá뫪  ­  áâபã...
  100. ;         dest - áá뫪  ­  ¡ãä¥à ªã¤  १ã«ìâ â «®¦¨âì
  101. ;         def - áâப  è ¡«®­ ¤«ï ¯®¨áª 
  102. ;         dval - ª 祬㠯à¨à ¢­¨¢ âì è ¡«®­
  103. proc full_file_name_parse stdcall,sourc,dest,def,dval
  104.   ; ¤«ï ®¤­®£®
  105.   pushad
  106.  
  107.   mov eax,[sourc]
  108.   mov ebx,[def]
  109. @@:
  110.   mov dl,[ebx]
  111.   mov cl,[eax]
  112.   cmp cl,0
  113.   je  @@bad_s
  114.   cmp dl,0
  115.   je  @@good
  116.  
  117.   or cl,0x20
  118.   or dl,0x20
  119.   cmp cl,dl
  120.   jne  @@bad
  121.  
  122.   inc eax
  123.   inc ebx
  124.   jmp @b
  125.  
  126. @@bad_s:
  127.   cmp dl,0
  128.   je  @@good
  129.  
  130. @@bad:
  131.   mov edi,[dest]
  132.   mov esi,[sourc]
  133. @@:
  134.   lodsb
  135.   stosb
  136.   or al,al
  137.   jnz   @b
  138.   jmp @@ret_ok
  139.  
  140. @@good:
  141.   push eax
  142.   mov edi,[dest]
  143.   mov esi,[dval]
  144. @@:
  145.   lodsb
  146.   stosb
  147.   or al,al
  148.   jnz   @b
  149.  
  150. @@goodl:
  151.   pop esi
  152.   dec edi
  153. @@:
  154.   lodsb
  155.   stosb
  156.   or al,al
  157.   jnz   @b
  158.  
  159. @@ret_ok:
  160.   popad
  161.   ret
  162.  
  163. endp
  164.  
  165.  sys_dir_mess: db 'System dir is '
  166.  sys_path: db '/HD0/1/KOLIBRI',0,0
  167.  sysdir_ db '%sys%',0
  168.  
  169. ; ¡¥à¥â ¯ à ¬¥âàë bx_from_load ¨ ¨áç¨â ä ©« ª®­ä¨£ãà æ¨¨
  170. Parser_params:
  171.   pushad
  172.   mov ax,[BOOT_VAR+bx_from_load]
  173.   cmp al,'r' ; à ¬ ¤¨áª
  174.   jnz @f
  175.   mov [sys_path],dword '/RD/'
  176.   mov [sys_path+4],byte ah
  177.   mov [sys_path+5],word 0 ;0x002F
  178.   jmp .done
  179. @@:
  180.   sub al,49
  181.   mov [sys_path],dword '/HDa'
  182.   mov [sys_path+3],byte al
  183.   mov [sys_path+4],byte '/'
  184.   mov [sys_path+5],byte ah
  185.   mov [sys_path+6],dword '/KOL'
  186.   mov [sys_path+10],dword 'IBRI'
  187.   mov [sys_path+14],word 0 ;0x002F
  188.  
  189. .done:
  190.   popad
  191.   ret
  192.  
  193.