Subversion Repositories Kolibri OS

Rev

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