Subversion Repositories Kolibri OS

Rev

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