Subversion Repositories Kolibri OS

Rev

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

  1. ;   RDsave ¤«ï Kolibri (0.6.5.0 ¨ áâ àè¥)
  2. ;   Save RAM-disk to hard or floppy drive
  3. ;---------------------------------------------------------------------
  4. ;   Mario79 2005
  5. ;   Heavyiron 12.02.2007
  6. ;   <Lrz>     11.05.2009 - ¤«ï à ¡®âë ­ã¦­  á¨á⥬­ ï ¡¨¡«¨®â¥ª  box_lib.obj
  7. ;   Mario79   08.09.2010 - select path with OpenDialog,keys 1,2,3,4 for select options
  8. ;   Heavyiron 01.12.2013 - new logic
  9. ;---------------------------------------------------------------------
  10. appname equ 'RDsave '
  11. version equ '1.43'
  12. debug   equ no
  13.  
  14. use32        ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
  15. org 0x0      ;  ¤à¥á æ¨ï á ­ã«ï
  16.  
  17. db 'MENUET01'    ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
  18. dd 0x01          ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
  19. dd START         ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
  20. dd IM_END        ; à §¬¥à ¯à®£à ¬¬ë
  21. dd I_END         ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
  22. dd stacktop      ;  ¤à¥á ¢¥à設ë á⥪ 
  23. dd PARAMS        ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢
  24. dd cur_dir_path
  25.  
  26.  
  27. include 'lang.inc'
  28. include '../../../macros.inc'
  29. if debug eq yes
  30. include '../../../debug.inc'
  31. end if
  32. include '../../../proc32.inc'
  33. include '../../../dll.inc'
  34. include '../../../develop/libraries/box_lib/load_lib.mac'
  35. include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
  36. include 'str.inc'
  37.  
  38.         @use_library
  39. ;---------------------------------------------------------------------
  40. ;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
  41. ;---------------------------------------------------------------------
  42. align 4
  43. START:
  44. ;---------------------------------------------------------------------
  45.         mcall  68,11
  46.  
  47. load_libraries l_libs_start,end_l_libs
  48.         inc     eax
  49.         test    eax,eax
  50.         jz      close
  51.  
  52.         stdcall dll.Init,[init_lib]
  53.  
  54.         invoke  ini_get_int,ini_file,asettings,aautoclose,0
  55.         mov     [autoclose],eax
  56.         invoke  ini_get_str,ini_file,apath,apath,fname_buf,4096,path
  57.         stdcall _lstrcpy,ini_path,fname_buf
  58.         stdcall _lstrcpy,filename_area,start_temp_file_name
  59.  
  60.         mov   eax,PARAMS
  61.         cmp   byte[eax], 0
  62.         je    no_params
  63.         cmp   byte[eax], 'h'
  64.         je    @f
  65.         cmp   byte[eax], 'H'
  66.         jne   .no_h
  67. @@:
  68.         mov   [hidden],1
  69.         jmp   no_params
  70. .no_h:
  71.         mov   [param],1
  72.         stdcall _lstrcpy,fname_buf,eax
  73.         mov   ah,2
  74.         jmp   noclose
  75.  
  76. ;---------------------------------------------------------------------
  77. no_params:
  78.         stdcall _lstrcpy,check_dir,ini_path
  79.         call    check_path
  80.         test    eax,eax
  81.         jz      path_ok
  82.         cmp     eax,6
  83.         je      path_ok
  84. ;---------------------------------------------------------------------
  85. if debug eq yes
  86. dps 'read_folder_error'
  87. newline
  88. end if
  89. ;---------------------------------------------------------------------
  90. default_path:
  91.         stdcall _lstrcpy,fname_buf,communication_area_default_path
  92.         mov     [hidden],0
  93.  
  94. ;OpenDialog     initialisation
  95.         push    dword OpenDialog_data
  96.         call    [OpenDialog_Init]
  97.  
  98. ; prepare for PathShow
  99.         push    dword PathShow_data_1
  100.         call    [PathShow_prepare]
  101.  
  102.         mcall   40,0x00000027
  103.  
  104.         call    draw_window
  105.         mov     ah,3
  106.         jmp     noclose
  107. ;---------------------------------------------------------------------
  108. path_ok:
  109. ;OpenDialog     initialisation
  110.         push    dword OpenDialog_data
  111.         call    [OpenDialog_Init]
  112.  
  113. ; prepare for PathShow
  114.         push    dword PathShow_data_1
  115.         call    [PathShow_prepare]
  116.  
  117.         mcall   40,0x00000027
  118.  
  119.         cmp     [hidden],1
  120.         jne     red
  121.         mov     ah,2
  122.         jmp     noclose
  123. red:
  124.         call    draw_window
  125. ;---------------------------------------------------------------------
  126. still:
  127.         mcall 10
  128.  
  129.         dec     eax      ; ¯¥à¥à¨á®¢ âì ®ª­®?
  130.         jz      red      ; ¥á«¨ ¤  - ­  ¬¥âªã red
  131.         dec     eax
  132.         jz      key
  133.         dec     eax
  134.         jz      button
  135.         jmp     still
  136. ;---------------------------------------------------------------------
  137. button:
  138.         mcall   17      ; ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  139.         cmp     ah,1             ; ª­®¯ª  á id=1("§ ªàëâì")?
  140.         jne     noclose
  141. close:
  142.         mcall   -1          ; äã­ªæ¨ï -1: § ¢¥àè¨âì ¯à®£à ¬¬ã
  143.  
  144. ;---------------------------------------------------------------------
  145. key:
  146.         mcall   2
  147.         cmp     ah,0x1b
  148.         je      close
  149.         cmp     ah,0x0D
  150.         jne     @f
  151.         mov     ah,2
  152.         jmp     noclose
  153. @@:
  154.         cmp     ah,9h
  155.         jne     still
  156. ;---------------------------------------------------------------------
  157. noclose:
  158.         mov     ecx,fname_buf
  159.         push  16
  160.         mov   ebx,1
  161.         cmp   byte[ecx+1],'f'
  162.         je    @f
  163.         cmp   byte[ecx+1],'F'
  164.         jne   not_fdd
  165. @@:
  166.         cmp   byte[ecx+4],'1'
  167.         jne   @f
  168.         cmp   ah,2
  169.         je    doit
  170. @@:
  171.         inc   ebx
  172.         cmp   ah,2
  173.         je    doit
  174. not_fdd:
  175.         push  18
  176.         mov   ebx,6     ; 18.6 = save to specified folder
  177.         cmp   ah,2
  178.         je    doit
  179.  
  180. ; invoke OpenDialog
  181.         push    dword OpenDialog_data
  182.         call    [OpenDialog_Start]
  183.         cmp     [OpenDialog_data.status],1
  184.         jne     still
  185.  
  186. ; prepare for PathShow
  187.         push    dword PathShow_data_1
  188.         call    [PathShow_prepare]
  189.         call    draw_window
  190.         mov     ah,2
  191.         jmp     noclose
  192.  
  193. doit:
  194.         cmp     [param],0
  195.         jne      @f
  196.         call    save_ini
  197. @@:
  198.         cmp     byte[ecx+1],'r'
  199.         je      @f
  200.         cmp     byte[ecx+1],'R'
  201.         je      @f
  202.         cmp     byte[ecx],'/'
  203.         je      not_rd
  204. @@:
  205.         mov     edx,rdError
  206.         call    print_err
  207.         jmp     still
  208. not_rd:
  209.         cmp      [hidden],0
  210.         jne      @f
  211.         pusha
  212.         stdcall  _lstrcpy,msg,label2
  213.         mov      eax,[sc.work_text]
  214.         or       eax,0xc0000088
  215.         mov      [color],eax
  216.         call    print_msg
  217.         popa
  218. @@:
  219.         pop     eax
  220.         mcall
  221.         call    check_for_error
  222.         jmp     still
  223.  
  224. ;---------------------------------------------------------------------
  225. check_for_error:                      ;Ž¡à ¡®â稪 ®è¨¡®ª
  226.         test    eax,eax
  227.         jz      print_ok
  228.         cmp     ebx,6
  229.         je      @f
  230.         mov     edx,error11
  231.         jmp     print_err
  232. @@:
  233.         cmp     eax, 11
  234.         ja      .unknown
  235.         mov     edx, [errors+eax*4]
  236.         stdcall _lstrcpy,msg,error
  237.         stdcall _lstrcat,msg,edx
  238.         mov     edx,msg
  239.         jmp     print_err
  240. .unknown:
  241.         mov     edx, aUnknownError
  242.  
  243. print_err:
  244.         stdcall _lstrlen,ini_path
  245.         pusha
  246.         invoke  ini_set_str,ini_file,apath,apath,ini_path,eax
  247.         popa
  248.         stdcall _lstrcpy,msg,edx
  249.         cmp     [hidden],1
  250.         je      @f
  251.         cmp     [param],1
  252.         je      @f
  253.         mov      ecx,[sc.work_text]
  254.         or       ecx,0xc0880000
  255.         mov      [color],ecx
  256.         call    print_msg
  257.         ret
  258. @@:
  259.         stdcall _lstrcpy, ntf_msg, ntf_start
  260.         stdcall _lstrcat, ntf_msg, edx
  261.         stdcall _lstrcat, ntf_msg, ntf_end_e
  262.         mov     dword [is_notify + 8], ntf_msg
  263.         mcall   70, is_notify
  264.         mov     [param],0
  265.         mov     [hidden],0
  266.         stdcall _lstrcpy,fname_buf,ini_path
  267.         jmp     no_params
  268.  
  269. print_ok:
  270.         cmp      [hidden],1
  271.         je       @f
  272.         cmp      [param],1
  273.         je       @f
  274.         stdcall  _lstrcpy,msg,ok
  275.         mov      ecx,[sc.work_text]
  276.         or       ecx,0xc0008800
  277.         mov      [color],ecx
  278.         call     print_msg
  279.         mcall    5,100
  280.         cmp      [autoclose],1
  281.         je       close
  282.         ret
  283. @@:
  284.         stdcall  _lstrcpy,msg,ok
  285.         stdcall  _lstrcat,msg,fname_buf
  286.         stdcall _lstrcpy, ntf_msg, ntf_start
  287.         stdcall _lstrcat, ntf_msg, msg
  288.         stdcall _lstrcat, ntf_msg, ntf_end_o
  289.         mov      edx,ntf_msg
  290.         mov      dword [is_notify + 8], edx
  291.         mcall    70, is_notify
  292.         mcall    5,100
  293.         jmp      close
  294. ;---------------------------------------------------------------------
  295. print_msg:
  296.         mcall   13,<5,380>,<96,10>,[sc.work]
  297.         stdcall _lstrlen,msg
  298.         lea     eax,[eax+eax*2]
  299.         add     eax,eax
  300.         mov     ebx,390
  301.         sub     ebx,eax
  302.         shl     ebx,15
  303.         add     ebx,96
  304.         mcall   4, ,[color],msg, ,[sc.work]
  305.         ret
  306. ;---------------------------------------------------------------------
  307. draw_PathShow:
  308.         pusha
  309.         mcall   13,<15,280>,<32,16>,0xffffff
  310.         push    dword PathShow_data_1
  311.         call    [PathShow_draw]
  312.         popa
  313.         ret
  314. ;---------------------------------------------------------------------
  315. save_ini:
  316.         pusha
  317.         stdcall _lstrlen,fname_buf
  318.         invoke  ini_set_str,ini_file,apath,apath,fname_buf,eax
  319.         invoke  ini_set_int,ini_file,asettings,aautoclose,[autoclose]
  320.         popa
  321.         ret
  322. ;---------------------------------------------------------------------
  323. check_path:
  324. stdcall _lstrlen,check_dir
  325.         add     eax,check_dir
  326. @@:
  327.         dec     eax
  328.         cmp     byte [eax],'/'
  329.         jne     @b
  330.         mov     byte [eax+1],0
  331.  
  332.         mcall   70,read_folder
  333.         ret
  334. ;---------------------------------------------------------------------
  335. ;---  Draw window  ---------------------------------------------------
  336. ;---------------------------------------------------------------------
  337. draw_window:
  338.         mcall  48,3,sc,sizeof.system_colors
  339.         mcall   12,1
  340.  
  341.         mcall  48,4
  342.         mov ecx,200*65536+111
  343.         add ecx,eax
  344.  
  345.         mov edx,[sc.work]
  346.         or  edx,0x34000000
  347.         mcall   0,<200,400>,, , ,title
  348.  
  349. ;buttons
  350.         mcall   8,<198,70>,<68,20>,1,[sc.work_button]
  351.         inc     edx
  352.         mcall    ,<125,70>,
  353.         inc     edx
  354.         mcall    ,<300,75>,<30,20>
  355.  
  356. ;labels
  357.         mov     ecx,[sc.work_button_text]
  358.         or      ecx,0x80000000
  359.         mcall   4,<134,75>, ,save
  360.         mcall    ,<215,75>, ,cancel
  361.         mcall    ,<315,36>, ,select
  362.  
  363.         m2m     dword [frame_data.font_backgr_color],[sc.work]
  364.         m2m dword [frame_data.font_color],[sc.work_text]
  365.         m2m dword [frame_data.ext_fr_col],[sc.work_graph]
  366.         m2m dword [frame_data.int_fr_col],[sc.work_light]
  367.        
  368.         push    dword frame_data
  369.         call    [Frame_draw]
  370.  
  371.         call    draw_PathShow
  372.         call    print_msg
  373.  
  374.         mcall   12,2
  375.         ret
  376.  
  377. ;---------------------------------------------------------------------
  378. ;---  Data  ----------------------------------------------------------
  379. ;---------------------------------------------------------------------
  380. if lang eq ru
  381. save            db '‘®åà ­¨âì',0
  382. cancel          db 'Žâ¬¥­ ',0
  383. select          db 'ˆ§¬¥­¨âì',0
  384. label1          db ' Ž¡à § ¡ã¤¥â á®åà ­¥­ ¢: ',0
  385. label2          db '‘®åà ­¥­¨¥ ®¡à § ...',0
  386. ok              db 'RAM-¤¨áª á®åà ­¥­ ãᯥ譮 ',0
  387. error1          db '­¥ ®¯à¥¤¥«¥­  ¡ §  ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0
  388. error2          db 'äã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë',0
  389. error3          db '­¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬ ',0
  390. error4          db 'áâà ­­®... Žè¨¡ª  4',0
  391. error5          db '­¥áãé¥áâ¢ãî騩 ¯ãâì',0
  392. error6          db 'ä ©« § ª®­ç¨«áï',0
  393. error7          db '㪠§ â¥«ì ¢­¥ ¯ ¬ï⨠¯à¨«®¦¥­¨ï',0
  394. error8          db '¤¨áª § ¯®«­¥­',0
  395. error9          db 'ä ©«®¢ ï áâàãªâãà  à §àã襭 ',0
  396. error10         db '¤®áâ㯠§ ¯à¥éñ­',0
  397. error11         db 'Žè¨¡ª  ãáâனá⢠',0
  398. aUnknownError   db '¥¨§¢¥áâ­ ï ®è¨¡ª ',0
  399. rdError         db '¥«ì§ï á®åà ­ïâì ®¡à § ¢ á ¬®£® ᥡï',0
  400. error           db 'Žè¨¡ª : ',0
  401. ;---------------------------------------------------------------------
  402. else if lang eq et
  403. save            db 'Salvesta',0
  404. cancel          db 'Cancel',0
  405. select          db ' Valige',0
  406. label1          db ' RAM-drive will be saved as: ',0
  407. label2          db 'Saving in progress...',0
  408. ok              db 'RAM-ketas salvestatud edukalt ',0
  409. error1          db 'hard disk base and/or partition not defined',0
  410. error2          db 'the file system does not support this function',0
  411. error3          db 'tundmatu failisüsteem',0
  412. error4          db 'strange... Error 4',0
  413. error5          db 'vigane teekond',0
  414. error6          db 'end of file',0
  415. error7          db 'pointer is outside of application memory',0
  416. error8          db 'ketas täis',0
  417. error9          db 'FAT tabel vigane',0
  418. error10         db 'juurdepääs keelatud',0
  419. error11         db 'Seadme viga',0
  420. aUnknownError   db 'Tundmatu viga',0
  421. rdError         db "You can't save image on itself",0
  422. error           db 'Viga: ',0
  423. ;---------------------------------------------------------------------
  424. else if lang eq it
  425. save            db '  Salva',0
  426. cancel          db 'Cancel',0
  427. select          db 'Seleziona',0
  428. label1          db ' RAM-drive will be saved as: ',0
  429. label2          db 'Saving in progress...',0
  430. ok              db 'Il RAM-drivet e stato salvato ',0
  431. error1          db 'hard disk base and/or partition not defined',0
  432. error2          db 'the file system does not support this function',0
  433. error3          db 'filesystem sconosciuto',0
  434. error4          db 'strange... Error 4',0
  435. error5          db 'percorso non valido',0
  436. error6          db 'end of file',0
  437. error7          db 'pointer is outside of application memory',0
  438. error8          db 'disco pieno',0
  439. error9          db 'tabella FAT corrotta',0
  440. error10         db 'accesso negato',0
  441. error11         db 'Errore di device',0
  442. aUnknownError   db 'Errore sconosciuto',0
  443. rdError         db "You can't save image on itself",0
  444. error           db 'Errore: ',0
  445. ;---------------------------------------------------------------------
  446. else
  447. save            db '  Save',0
  448. cancel          db 'Cancel',0
  449. select          db ' Select',0
  450. label1          db ' RAM-drive will be saved as: ',0
  451. label2          db 'Saving in progress...',0
  452. ok              db 'RAM-drive was saved successfully ',0
  453. error1          db 'hard disk base and/or partition not defined',0
  454. error2          db 'the file system does not support this function',0
  455. error3          db 'unknown file system',0
  456. error4          db 'strange... Error 4',0
  457. error5          db 'incorrect path',0
  458. error6          db 'end of file',0
  459. error7          db 'pointer is outside of application memory',0
  460. error8          db 'disk is full',0
  461. error9          db 'file structure is destroyed',0
  462. error10         db 'access denied',0
  463. error11         db 'Device error',0
  464. aUnknownError   db 'Unknown error',0
  465. rdError         db "You can't save image on itself",0
  466. error           db 'Error: ',0
  467. end if
  468. ;---------------------------------------------------------------------
  469. ntf_start       db '"RDSave\n', 0
  470. ntf_end_o       db '" -tO', 0
  471. ntf_end_e       db '" -tE', 0
  472. ;---------------------------------------------------------------------
  473. errors:
  474.         dd      ok
  475.         dd      error1
  476.         dd      error2
  477.         dd      error3
  478.         dd      error4
  479.         dd      error5
  480.         dd      error6
  481.         dd      error7
  482.         dd      error8
  483.         dd      error9
  484.         dd      error10
  485.         dd      error11
  486. ;---------------------------------------------------------------------
  487.  
  488. title   db appname,version,0
  489.  
  490. ;Lib_DATA
  491. ;‚ᥣ¤  ᮡ«î¤ âì ¯®á«¥¤®¢ â¥«ì­®áâì ¢ ¨¬¥­¨.
  492. system_dir_Boxlib       db '/sys/lib/box_lib.obj',0
  493. system_dir_ProcLib      db '/sys/lib/proc_lib.obj',0
  494. system_dir_libini       db '/sys/lib/libini.obj',0
  495. ;---------------------------------------------------------------------
  496. head_f_i:
  497. head_f_l        db 'System error',0
  498.  
  499. err_message_found_lib1  db 'box_lib.obj - Not found!',0
  500. err_message_found_lib2  db 'proc_lib.obj - Not found!',0
  501. err_message_found_lib3  db 'libini.obj - Not found!',0
  502.  
  503. err_message_import1     db 'box_lib.obj - Wrong import!',0
  504. err_message_import2     db 'proc_lib.obj - Wrong import!',0
  505. err_message_import3     db 'libini.obj - Wrong import!',0
  506. ;---------------------------------------------------------------------
  507. l_libs_start:
  508.  
  509. library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
  510. err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
  511.  
  512. library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
  513. err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
  514.  
  515. library03  l_libs system_dir_libini+9, cur_dir_path, library_path, system_dir_libini, \
  516. err_message_found_lib3, head_f_l, libini_import, err_message_import3, head_f_i
  517.  
  518. end_l_libs:
  519. ;---------------------------------------------------------------------
  520. OpenDialog_data:
  521. .type                   dd 1    ; Save
  522. .procinfo               dd procinfo     ;+4
  523. .com_area_name          dd communication_area_name      ;+8
  524. .com_area               dd 0    ;+12
  525. .opendir_path           dd temp_dir_path        ;+16
  526. .dir_default_path       dd communication_area_default_path      ;+20
  527. .start_path             dd open_dialog_path     ;+24
  528. .draw_window            dd draw_window  ;+28
  529. .status                 dd 0    ;+32
  530. .openfile_pach          dd fname_buf    ;+36
  531. .filename_area          dd filename_area        ;+40
  532. .filter_area            dd Filter
  533. .x:
  534. .x_size                 dw 420 ;+48 ; Window X size
  535. .x_start                dw 200 ;+50 ; Window X position
  536. .y:
  537. .y_size                 dw 320 ;+52 ; Window y size
  538. .y_start                dw 120 ;+54 ; Window Y position
  539.  
  540. communication_area_name:
  541.         db 'FFFFFFFF_open_dialog',0
  542. open_dialog_path:
  543. if __nightbuild eq yes
  544.     db '/sys/MANAGERS/opendial',0
  545. else
  546.     db '/sys/File Managers/opendial',0
  547. end if
  548. communication_area_default_path:
  549.         db '/',0
  550.  
  551. Filter:
  552. dd      Filter.end - Filter
  553. .1:
  554. db      'IMG',0
  555. db      'IMA',0
  556. .end:
  557. db      0
  558.  
  559. start_temp_file_name:   db 'kolibri.img',0
  560.  
  561. ;---------------------------------------------------------------------
  562. align 4
  563. ProcLib_import:
  564. OpenDialog_Init         dd aOpenDialog_Init
  565. OpenDialog_Start        dd aOpenDialog_Start
  566.         dd      0
  567.         dd      0
  568. aOpenDialog_Init        db 'OpenDialog_init',0
  569. aOpenDialog_Start       db 'OpenDialog_start',0
  570. ;---------------------------------------------------------------------
  571. PathShow_data_1:
  572. .type                   dd 0    ;+0
  573. .start_y                dw 36   ;+4
  574. .start_x                dw 20   ;+6
  575. .font_size_x            dw 6    ;+8     ; 6 - for font 0, 8 - for font 1
  576. .area_size_x            dw 270  ;+10
  577. .font_number            dd 0    ;+12    ; 0 - monospace, 1 - variable
  578. .background_flag        dd 0    ;+16
  579. .font_color             dd 0    ;+20
  580. .background_color       dd 0    ;+24
  581. .text_pointer           dd fname_buf    ;+28
  582. .work_area_pointer      dd text_work_area       ;+32
  583. .temp_text_length       dd 0    ;+36
  584. ;---------------------------------------------------------------------
  585. align 4
  586. Box_lib_import:
  587. ;edit_box_draw           dd aEdit_box_draw
  588. ;edit_box_key            dd aEdit_box_key
  589. ;edit_box_mouse          dd aEdit_box_mouse
  590. ;version_ed              dd aVersion_ed
  591.  
  592. PathShow_prepare        dd sz_PathShow_prepare
  593. PathShow_draw           dd sz_PathShow_draw
  594. Frame_draw              dd sz_Frame_draw
  595.                         dd 0
  596.                         dd 0
  597.  
  598. ;aEdit_box_draw          db 'edit_box',0
  599. ;aEdit_box_key           db 'edit_box_key',0
  600. ;aEdit_box_mouse         db 'edit_box_mouse',0
  601. ;aVersion_ed             db 'version_ed',0
  602.  
  603. sz_PathShow_prepare     db 'PathShow_prepare',0
  604. sz_PathShow_draw        db 'PathShow_draw',0
  605.  
  606. sz_Frame_draw           db 'frame_draw',0
  607. ;szVersion_frame        db 'version_frame',0
  608. ;---------------------------------------------------------------------
  609. frame_data:
  610. .type                   dd 0 ;+0
  611. .x:
  612. .x_size                 dw 374 ;+4
  613. .x_start                dw 8 ;+6
  614. .y:
  615. .y_size                 dw 45 ;+8
  616. .y_start                dw 17 ;+10
  617. .ext_fr_col             dd 0x888888 ;+12
  618. .int_fr_col             dd 0xffffff ;+16
  619. .draw_text_flag         dd 1 ;+20
  620. .text_pointer           dd label1 ;+24
  621. .text_position          dd 0 ;+28
  622. .font_number            dd 0 ;+32
  623. .font_size_y            dd 9 ;+36
  624. .font_color             dd 0x0 ;+40
  625. .font_backgr_color      dd 0xdddddd ;+44
  626. ;---------------------------------------------------------------------
  627. align 4
  628. libini_import:
  629. init_lib     dd a_init
  630. ini_get_str  dd aini_get_str
  631. ini_get_int  dd aini_get_int
  632. ini_set_str  dd aini_set_str
  633. ini_set_int  dd aini_set_int
  634.              dd 0
  635.              dd 0
  636. a_init       db 'lib_init',0
  637. aini_get_str db 'ini_get_str',0
  638. aini_get_int db 'ini_get_int',0
  639. aini_set_str db 'ini_set_str',0
  640. aini_set_int db 'ini_set_int',0
  641. ;---------------------------------------------------------------------
  642.  
  643. apath db 'path',0
  644. asettings db 'settings',0
  645. aautoclose db 'autoclose',0
  646. path    db '/hd2/1/kolibri.img',0
  647. ini_file db  '/sys/settings/rdsave.ini',0
  648. ;ini_file db  '/sys/rdsave.ini',0
  649. ;---------------------------------------------------------------------
  650. is_notify:
  651.     dd    7, 0, ok, 0, 0
  652.     db    "/rd/1/@notify", 0
  653.  
  654. read_folder:
  655. .subfunction    dd 1
  656. .start          dd 0
  657. .flags          dd 0
  658. .size           dd 1
  659. .return         dd folder_data
  660.                 db 0
  661. .name:          dd check_dir
  662.  
  663. param dd 0
  664. hidden dd 0
  665. ;---------------------------------------------------------------------
  666. IM_END:
  667. ;---------------------------------------------------------------------
  668. align 4
  669. PARAMS:
  670.        rb 256
  671. ini_path:
  672.         rb 4096
  673. check_dir:
  674.         rb 4096
  675.  
  676. sc     system_colors
  677.  
  678. autoclose rd 1
  679.  
  680. color   rd 1
  681.  
  682. msg:
  683.         rb 1024
  684.  
  685. ntf_msg:
  686.         rb 1024
  687.  
  688. folder_data:
  689.         rb 304*32+32 ; 9 Kb
  690. ;---------------------------------------------------------------------
  691. cur_dir_path:
  692.         rb 4096
  693. ;---------------------------------------------------------------------
  694. library_path:
  695.         rb 4096
  696. ;---------------------------------------------------------------------
  697. temp_dir_path:
  698.         rb 4096
  699. ;---------------------------------------------------------------------
  700. fname_buf:
  701.         rb 4096
  702. ;---------------------------------------------------------------------
  703. procinfo:
  704.         rb 1024
  705. ;---------------------------------------------------------------------
  706. filename_area:
  707.         rb 256
  708. ;---------------------------------------------------------------------
  709. text_work_area:
  710.         rb 1024
  711. ;---------------------------------------------------------------------
  712. align 32
  713.         rb 4096
  714. stacktop:
  715. I_END: