Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1836 → Rev 1837

/programs/fs/kfm/trunk/EDITBOX.INC
File deleted
\ No newline at end of file
/programs/fs/kfm/trunk/KFM.ASM
File deleted
/programs/fs/kfm/trunk/editbox.inc
0,0 → 1,278
; SEE YOU File FAQ.txt and HISTORY. Good Like!
;;;;;;;;;;;;;;;;;;
include 'editbox.mac' ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
;;;;;;;;;;;;;;;;;;
macro use_edit_box procinfo,scr_h,scr_w
{
edit_box:
ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â 
ed_left equ [edi+4] ;¯®«®¦¥­¨¥ ¯® ®á¨ å
ed_top equ [edi+8] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
ed_color equ [edi+12] ;梥â ä®­  ª®¬¯®­¥­â 
shift_color equ [edi+16] ;=0x6a9480
ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®­¥­â 
ed_blur_border_color equ [edi+24] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
ed_text_color equ [edi+28] ;梥â ⥪áâ 
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à
ed_flags equ [edi+40] ;ä« £¨
ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [edi+50] ;ᬥ饭¨¥
cl_curs_x equ [edi+54] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [edi+58] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [edi+62] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [edi+66] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
;==========================================================
;=== ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ =================================
;==========================================================
.draw:
pusha
;--- à¨á㥬 à ¬ªã ---
call .draw_border ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
.draw_bg_cursor_text:
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥, ¥á«¨ ­ ¤® ---
call .check_offset ;¢ëç¨á«¥­¨¥ ¯®§¨æ¨¨ ªãàá®à  áâ ¡¨«ì­ 
;--- à¨á㥬 ¢­ãâ७­îî ®¡« áâì ---
call .draw_bg ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª à ¡®ç¥© ®¡« áâ¨
;---- à¨á㥬 ¢ë¤¥«¥­¨¥, ¯® shift ¥á«¨ ¥áâì
call .draw_shift
.draw_cursor_text:
;--- à¨á㥬 ªãàá®à ---
;--- ¬®¦¥â ¥£® ­¥ ­ ¤® à¨á®¢ âì ----
test word ed_flags,ed_focus
je @f
call .draw_cursor
@@:
call .draw_text
;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å ä㭪権 ¨ ¯®áâ ®¡à ¡®â稪®¢
;;;;;;;;;;;;;;;;;;;;;;;;;;
.editbox_exit:
edit_ex
;==========================================================
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
;==========================================================
.key:
pusha
test word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
je .editbox_exit
test word ed_flags,ed_mouse_on
jne .editbox_exit
 
;à®¢¥àª  ­ ¦ â shift ?
call .check_shift
;----------------------------------------------------------
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
;----------------------------------------------------------
use_key_process backspase,delete,left,right,home,end,insert
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_no_process up,down,esc
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;à®¢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_figures_only
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_shift_press
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ¯à®¢¥à塞, ­ å®¤¨âáï «¨ ªãàá®à ¢ ª®­æ¥ + ¤ «ì­¥©è ï ®¡à ¡®âª 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_cur_end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_key
;==========================================================
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
;==========================================================
.mouse:
pusha
;debug
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
;----------------------------------------------------------
mcall 37,2
;----------------------------------------------------------
;--- ¯à®¢¥à塞 á®áâ®ï­¨¥ ----------------------------------
;----------------------------------------------------------
test eax,1
jnz .mouse_left_button
and word ed_flags,ed_mouse_on_off
xor ebx,ebx
mov dword [mouse_flag],ebx
jmp .editbox_exit
.mouse_left_button:
;----------------------------------------------------------
;--- ¡«®ª¨à®¢ª  ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ­¨¨ ­  ­¨å ªãàá®à 
;----------------------------------------------------------
mov eax,dword [mouse_flag]
test eax,eax
jz @f
cmp eax,edi
je @f
jmp ._blur
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
;----------------------------------------------------------
@@: mcall 37,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”ã­ªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_mause scr_h,scr_w
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_general_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á key
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á mouse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_mouse_func scr_w
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;®¤­¨ ᨬ¢®«ë
ed_always_focus= 100000000000000b
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥­¨ï
ed_shift_on= 1000b ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; ¢ëá®â 
macro draw_edit_boxes start,_end,use_f9,procinfo
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,start
mov ecx,((_end-start)/ed_struc_size)
@@:
call edit_box.draw
add edi,ed_struc_size
loop @b
}
 
macro mouse_edit_boxes start,_end
{
mov edi,start
mov ecx,((_end-start)/ed_struc_size)
@@:
call edit_box.mouse
add edi,ed_struc_size
loop @b
}
 
macro key_edit_boxes start,end
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
@@:
call edit_box.key
add edi,ed_struc_size
loop @b
}
ed_struc_size=70
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,flags,size,pos
{
.width dd width
.left dd left
.top dd top
.color dd color
.shift_color dd shift_color
.focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color
.text_color dd text_color
.max dd max
.text dd text
.flags dw flags+0
.size dd size+0
.pos dd pos+0
.offset dd 0
.cl_curs_x dd 0
.cl_curs_y dd 0
.shift dd 0
.shift_old dd 0
}
 
 
macro edit_boxes_set_sys_color start,end,color_table
{
mov edi,start
mov ecx,((end-start)/ed_struc_size)
mov esi,color_table
@@:
mov eax,[esi+36]
mov ebx,[esi+20]
mov ed_focus_border_color,eax
shr bh,1
shr bl,1
shr ah,1
shr al,1
add ah,bh
add al,bl
ror eax,16
ror ebx,16
shr bl,1
shr al,1
add al,bl
ror eax,16
mov ed_blur_border_color,eax
add edi,ed_struc_size
loop @b
}
 
macro draw_edit_box ed_ptr,use_f9,procinfo
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,ed_ptr
call edit_box.draw
}
 
macro mouse_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.mouse
}
 
macro key_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.key
}
macro default_box ed_ptr
{
pusha
; xor eax,eax
; mov ed_shift_pos,eax
; mov ed_shift_pos_old,eax
and word ed_flags,ed_shift_cl
; mov ed_offset,eax
popa
}
/programs/fs/kfm/trunk/kfm.asm
0,0 → 1,410
;**************************************************************
; KFM - Kolibri File Manager
;**************************************************************
use32
db 'MENUET01'
dd 0x01
dd START
dd I_END
dd mem
dd stacktop
dd 0x0
dd path
 
;include 'lang.inc'
;include 'kglobals.inc'
include 'macros.inc'
include 'editbox.inc'
;use_edit_box
use_edit_box procinfo
;include 'ASCGL.INC'
;---------------------------------------------------------------------
include 'files.inc'
;---------------------------------------------------------------------
STRLEN = 1024
;---------------------------------------------------------------------
START:
mcall 9, procinfo, -1
mov eax,[ebx+30]
mov [PID],eax
xor ecx,ecx
@@:
inc ecx
mcall 9, procinfo
mov eax,[PID]
cmp eax,[ebx+30]
jne @r
mov [active_process],ecx
mov [appl_memory],mem
mov ax,[select_disk_char]
mov [read_folder_name],ax
mov [read_folder_1_name],ax
call load_icon_and_convert_to_img
call load_buttons_and_convert_to_img
call load_initiation_file
call add_memory_for_folders
call device_detect
call device_detect_f70
mcall 66, 1, 1
; call draw_window
; xor eax,eax
mov eax,1
mov [left_sort_flag],eax
mov [right_sort_flag],eax
 
call proc_read_left_folder
test eax,eax
jz @f
cmp eax,6
jne read_folder_error
@@:
call proc_read_right_folder
test eax,eax
jz @f
cmp eax,6
jne read_folder_1_error
@@:
mcall 40, 0x27
jmp red_1
;---------------------------------------------------------------------
red:
call get_window_param
test [window_status],10b
jnz red_1 ;still
test [window_status],100b
jnz red_1
cmp [window_high],180
ja @f
mov esi,180
mcall 67,-1,ebx,ebx
@@:
cmp [window_width],495
ja red_1
mov edx,495
mcall 67,-1,ebx, ,ebx
red_1:
call draw_window
;---------------------------------------------------------------------
still:
mcall 10
cmp eax,1
je red
cmp eax,2
je key
cmp eax,3
je button
cmp eax,6
je mouse
jmp still
;---------------------------------------------------------------------
get_window_param:
mcall 9, procinfo, -1
mov eax,[ebx+46]
mov [window_high],eax
mov eax,[ebx+42]
mov [window_width],eax
mov eax,[ebx+70]
mov [window_status],eax
mcall 48,4
mov [skin_high],eax
ret
;---------------------------------------------------------------------
draw_window:
mcall 12, 1
; mcall 0, <20,620>, <20,460>, 0x03cccccc ; 0x805080D0, 0x005080D0
xor esi,esi
mcall 0, <20,620>, <20,460>, 0x43cccccc ; 0x805080D0, 0x005080D0
call get_window_param
; mov ecx,[temp_esi]
test [window_status],10b
jnz @f
mcall 71, 1 , header
; create_dir_name
; start_parameter
; file_name
; [temp_edi]
; header
; delete_file_data.name
; start_file_data.name
; start_parameter
; start_file_data.name
; read_icon_file.name
; read_file_features.name ;path ;header
 
cmp [window_high],180
jb @f
cmp [window_width],495
jb @f
 
; pusha
; mcall 4,<15,25>,0,read_folder.name,100
; popa
call draw_fbutton
 
; mov [left_panel_clear_all],1
 
call draw_left_panel
 
; mov [right_panel_clear_all],1
 
call draw_right_panel
call draw_device_button
call draw_left_select_disk_button
call draw_left_sort_button
call draw_right_select_disk_button
call draw_right_sort_button
call draw_menu_bar
call draw_buttons_panel
call draw_ATAPI_tray_control
; mcall 47,0x80000,[left_scroll_compens],<300, 5>,0xffffff
; call mouse.draw_data
; mcall 18, 7
; mov [temp_eax],eax
; mcall 47,0x80000,[active_process],<300, 5>,0xffffff
; mcall 47,0x80000,[left_marked_counter],<300, 5>,0xffffff
; mcall 47,0x80000,[right_marked_counter],<400, 5>,0xffffff
; mcall 47,0x80000,[sorting_low_limit],<100, 5>,0xffffff
; mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
; mcall 47,0x80000,[sorting_high_limit],<300, 5>,0xffffff
; mcall 47,0x80000,[dir_temp_counter],<400, 5>,0xffffff
 
; mcall 47,0x80000,[timer_tick],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_eax],<400, 5>,0xffffff
; mcall 47,0x80000,[temp_ebx],<400, 5>,0xffffff
; mcall 47,0x80000,[temp_ecx],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_ebx],<500, 5>,0xffffff
; mcall 47,0x80000,[ini_file_start],<100, 5>,0xffffff
; mcall 47,0x80000,[left_folder_data],<200, 5>,0xffffff
; mcall 47,0x80000,[right_folder_data],<300, 5>,0xffffff
; mcall 47,0x80000,[appl_memory],<500, 5>,0xffffff
; mcall 47,0x80000,[temp_znak],<500, 5>,0xffffff
 
; mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
; mcall 47,0x80000,[temp_edi],<250, 5>,0xffffff
; mcall 47,0x80000,[temp_esi],<300, 5>,0xffffff
; mcall 47,0x80000,[temp_ecx],<350, 5>,0xffffff
; mcall 47,0x80000,[temp_znak],<400, 5>,0xffffff
 
; movzx ecx,[left_start_draw_cursor_line]
; mcall 47,0x40000, ,<300, 5>,0xffffff
; mcall 47,0x40000,[left_start_draw_line],<400, 5>,0xffffff
 
; mcall 47,0x40000,[window_width],<100, 5>,0xffffff
; mcall 47,0x40000,[window_high],<130, 5>,0xffffff
 
; mcall 47,0x80100,[left_panel_x],<200, 5>,0xffffff
; mcall 47,0x80100,[left_panel_y],<250, 5>,0xffffff
; mov edx,[temp_counter_dword_1]
; mcall 4,<150,3>,0x80000000
; mov edx,[temp_counter_dword]
; mcall 4,<5,3>,0x80000000
@@:
mcall 12, 2
ret
;temp_eax dd 0
;temp_ebx dd 0
;temp_ecx dd 0
;temp_edx dd 0
;temp_esi dd 0
;temp_edi dd 0
;temp_ebp dd 0
;temp_esp dd 0
;temp_znak dd 0
;temp_counter_dword_1 dd 0
;extension_size_1 dd 0
;timer_tick dd 0
;---------------------------------------------------------------------
prepare_load_data:
mov esi,path
mov edi,file_name
call copy_path
call get_file_size
test eax,eax
ret
;---------------------------------------------------------------------
prepare_load_data_1:
mov [read_file.return],eax
mov ebp,eax
prepare_load_data_4:
call load_file
test eax,eax
ret
;---------------------------------------------------------------------
prepare_load_data_2:
call add_application_memory
prepare_load_data_3:
call add_application_memory
mov eax,[file_features_temp_area+32]
mov [read_file.size],eax
ret
;---------------------------------------------------------------------
load_icon_and_convert_to_img:
mov ebx,icons_file_name
call prepare_load_data
jnz icon_error
call prepare_load_data_2
add eax,mem
call prepare_load_data_1
jnz icon_error
call convert_bmp_to_img
call sub_application_memory
ret
;---------------------------------------------------------------------
load_buttons_and_convert_to_img:
mov ebx,buttons_file_name
call prepare_load_data
jnz buttons_error
mov eax,[appl_memory]
mov [buttons_img_start],eax
call prepare_load_data_2
add eax,[buttons_img_start]
call prepare_load_data_1
jnz buttons_error
call convert_bmp_to_img
call sub_application_memory
ret
;---------------------------------------------------------------------
load_initiation_file:
mov ebx,ini_file_name
call prepare_load_data
jnz initiation_error
call prepare_load_data_3
mov eax,[appl_memory]
mov [left_folder_data],eax
sub eax,[read_file.size]
mov [read_file.return],eax
mov [ini_file_start],eax
call load_file
test eax,eax
jnz initiation_error
mov ebp,icons_associations
call search_star_and_end_tags
; cmp ebp,-1
; je .end
mov eax,[end_tag]
mov [icons_end_tag],eax
ret
;---------------------------------------------------------------------
add_memory_for_folders:
mov ecx,[appl_memory]
add ecx,304*32+32
mov [right_folder_data],ecx
add ecx,304*32+32
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
copy_path:
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,edi
; dec esi
@@:
std
lodsb
cmp al,'/'
jnz @b
mov edi,esi
add edi,2
mov esi,ebx
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
ret
;---------------------------------------------------------------------
copy_path_1:
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,ebx
mov [edi-1],byte '/'
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
ret
;---------------------------------------------------------------------
add_application_memory:
mov ecx,[file_features_temp_area+32]
.1:
add ecx,[appl_memory]
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
sub_application_memory:
mov ecx,[appl_memory]
sub ecx,[file_features_temp_area+32]
.1:
mov [appl_memory],ecx
mcall 64,1
ret
;---------------------------------------------------------------------
include 'key.inc'
;---------------------------------------------------------------------
include 'markfile.inc'
;---------------------------------------------------------------------
include 'button.inc'
;---------------------------------------------------------------------
include 'mouse.inc'
;---------------------------------------------------------------------
include 'openfile.inc'
;---------------------------------------------------------------------
include 'draw.inc'
;---------------------------------------------------------------------
include 'menu_bar.inc'
;---------------------------------------------------------------------
include 'menu_drv.inc'
;---------------------------------------------------------------------
include 'delete.inc'
;---------------------------------------------------------------------
include 'copy.inc'
;---------------------------------------------------------------------
include 'creatdir.inc'
;---------------------------------------------------------------------
include 'confirm.inc'
;---------------------------------------------------------------------
include 'err_wind.inc'
;---------------------------------------------------------------------
include 'detect.inc'
;---------------------------------------------------------------------
include 'conv_bmp.inc'
;---------------------------------------------------------------------
include 'tran_ini.inc'
;---------------------------------------------------------------------
include 'help.inc'
;---------------------------------------------------------------------
include 'convchar.inc'
;---------------------------------------------------------------------
include 'sort.inc'
;---------------------------------------------------------------------
include 'exit.inc'
;---------------------------------------------------------------------
include 'progrbar.inc'
;---------------------------------------------------------------------
include 'scroll.inc'
;---------------------------------------------------------------------
include 'file_inf.inc'
;---------------------------------------------------------------------
include 'text.inc'
;---------------------------------------------------------------------
I_END:
;---------------------------------------------------------------------
include 'data.inc'
;---------------------------------------------------------------------
mem: