kolibrios/programs/develop/kol_f_edit/kol_f_edit.asm

1626 lines
44 KiB
NASM
Raw Normal View History

use32
org 0
db 'MENUET01'
dd 1,start,i_end,mem,stacktop,buf_cmd_lin,sys_path
include '../../KOSfuncs.inc'
include '../../macros.inc'
include '../../proc32.inc'
include '../../load_lib.mac'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../dll.inc'
include '../../system/skincfg/trunk/kglobals.inc'
include '../../system/skincfg/trunk/unpacker.inc'
include 'strlen.inc'
include 'obj_codes.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
hed db 'kol_f_edit 29.09.20',0
sizeof.TreeList equ 20 ;need for element 'tree_list'
BUF_STRUCT_SIZE equ 21
buf2d_data equ dword[edi] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
buf2d_w equ dword[edi+8] ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
buf2d_h equ dword[edi+12] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
buf2d_l equ word[edi+4] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5>
buf2d_t equ word[edi+6] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD>
buf2d_size_lt equ dword[edi+4] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
buf2d_color equ dword[edi+16] ;梥<><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20> 1-<2D> <20><><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
MAX_CED_OBJECTS equ 200
MAX_OPT_FIELDS equ 11
MAX_OBJ_TYPES equ 17 ;<3B><><EFBFBD><EFBFBD><E1A8AC><EFBFBD> <20><><20><>ꥪ⮢
MAX_OBJ_CAPTIONS equ 1000 ;ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
WND_CAPT_COLOR equ 0xb0d0ff
BUF_SIZE equ 1000
;modif
BIT_MOD_ACI equ 0 ;<3B><><EFBFBD><E0A2AE><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_ACM equ 1 ;ᮡ<><E1AEA1><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
BIT_MOD_ACD equ 2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ⮢
BIT_MOD_ABU equ 3 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_WI_CAPT equ 0 ;<3B><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_WI_CORD_OTN_CL_OBL equ 1 ;<3B><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_WI_REDR equ 2 ;<3B><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
BIT_MOD_WI_GRAD equ 3 ;<3B><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD>
BIT_MOD_CHE equ 0 ; ch_flag_en - <20><><EFBFBD>࠭ CheckBox
BIT_MOD_CHE_T equ 1 ;ᢥ<><E1A2A5><EFBFBD>
BIT_MOD_CHE_M equ 2 ;<3B><><><E6A5AD><EFBFBD>
BIT_MOD_CHE_B equ 3 ;᭨<><E1ADA8>
BIT_MOD_TXT_ASCII_0 equ 0 ;⥪<><E2A5AA> <20><><EFBFBD><EFBFBD><EFBFBD>稢. 0
BIT_MOD_TXT_NO_TRAN equ 1 ;⥪<><E2A5AA> <20><EFBFBD><E0AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_TXT_CHAR2 equ 2 ;⥪<><E2A5AA> 2-<2D> <20><><EFBFBD><EFBFBD>
BIT_MOD_EDIT_FOC equ 0 ;EditBox <20><><E4AEAA><EFBFBD>
BIT_MOD_EDIT_FIO equ 1 ;
;CPP_MOD_RE_GR equ 1 ;<3B><EFBFBD><E0A0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
BIT_MOD_BUT_NFON equ 0 ;<3B><EFBFBD> Button <20><> <20><><EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIT_MOD_BUT_NBORD equ 1 ;<3B><EFBFBD> Button <20><> <20><><EFBFBD><E1AEA2><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD>
BIT_MOD_IMPORT_FUNCT_COMMENT equ 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><EFBFBD><E3ADAA><EFBFBD>
macro load_image_file path,buf,size { ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
;path - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC>
if path eqtype '' ;<3B><EFBFBD><E0AEA2><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0AEAA> <20><><EFBFBD><E0A0AC><EFBFBD> path
jmp @f
local .path_str
.path_str db path ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
db 0
@@:
;32 - <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><>
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
end if
stdcall mem.Alloc, dword size ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov [buf],eax
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
m2m [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mcall 70,run_file_70 ;<3B><><EFBFBD><EFBFBD><EFBFBD><E3A6A0><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
cmp ebx,0xffffffff
je @f
;<3B><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall [img_decode], [buf],ebx,0
mov [image_data],eax
;<3B><EFBFBD>ࠧ㥬 <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> rgb
stdcall [img_to_rgb2], [image_data],[buf]
;㤠<><20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> image_data
stdcall [img_destroy], [image_data]
@@:
}
struct FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
rezerv db ?
FileName dd ?
ends
struct object
id dd ? ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
txt rb MAX_LEN_OBJ_TXT ;⥪<><EFBFBD><E2AEA2><><E1A2AE>
lvl db 0
clo db 0
typid dd ? ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
modif dd ? ;<3B><><EFBFBD><E2AEA2><><E1A2AE>
ends
struct ObjOpt
dd ?
bl_type db ?
graph db ?
info rb 30
caption rb MAX_OPT_CAPTION
Col rw MAX_OPT_FIELDS
img rw MAX_OPT_FIELDS ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AD> (<28><><E4A0A9> 'icon.bmp')
bit_prop dd 0 ;<3B><><EFBFBD><E2AEA2><><E1A2AE>⢠ (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
bit_val dd 0 ;<3B><><EFBFBD><E2AEA2><><E1A2AE>⢠ (<28><><EFBFBD><EFBFBD><E7A5AD>, <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD>)
ends
SKIN_H equ 22
SKIN_W1 equ 5
SKIN_W2 equ 7
SKIN_W3 equ 23
fn_skin_1 db 'left.bmp',0
fn_skin_2 db 'base.bmp',0
fn_skin_3 db 'oper.bmp',0
IMAGE_FILE_SKIN1_SIZE equ 3*(SKIN_W1+3)*SKIN_H+54
IMAGE_FILE_SKIN2_SIZE equ 3*(SKIN_W2+3)*SKIN_H+54
IMAGE_FILE_SKIN3_SIZE equ 3*(SKIN_W3+3)*SKIN_H+54
IMAGE_FILE_FONT1_SIZE equ 96*144*3 ;ࠧ<><E0A0A7><EFBFBD><><E4A0A9> <20> 1-<2D> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD>
fn_icon db 'icon.bmp',0
count_main_icons equ 35 ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9> icon.bmp
bmp_icon rb 0x300*count_main_icons
TREE_ICON_SYS16_BMP_SIZE equ 256*3*11+54 ;ࠧ<><E0A0A7><EFBFBD> bmp 䠩<><E4A0A9> <20> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
icon_tl_sys dd 0 ;㪠<><E3AAA0><EFBFBD><E2A5A5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
icon_font_s1 dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
fn_syntax db 'asm.syn',0 ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3A6A0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><20><><EFBFBD><E2AEA2><EFBFBD><><E1A2AE>
macro test_bool_prop obj_reg,n_prop
{
bt dword[obj_reg+u_object.modif-u_object],n_prop
}
include 'ced_wnd_m.inc'
include 'ced_wnd_prop.inc' ;䠩<> <20> <20><EFBFBD><E3ADAA><20><><EFBFBD><EFBFBD><><E1A2AE><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
include 'ced_constr.inc' ;䠩<> <20> <20><EFBFBD><E3ADAA><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
include 'ced_code_g.inc' ;䠩<> <20> <20><EFBFBD><E3ADAA><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
align 4
start:
load_libraries l_libs_start,load_lib_end
;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov ebp,lib0
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
@@:
mov ebp,lib1
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
@@:
mov ebp,lib2
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
@@:
mov ebp,lib3
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
@@:
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><20><><EFBFBD><EFBFBD><EFBFBD> <20><><><E1A2AE><EFBFBD><E2A2A0>
mov eax,prop_edits_top
mov ebx,16+6 ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edi,edit2
@@:
mov ed_top,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD>
mov ed_left,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5>
add edi,ed_struc_size
add eax,prop_edits_height
cmp edi,prop_wnd_edits_end
jl @b
stdcall [buf2d_create], buf_fon
mcall 48,3,sc,sizeof.system_colors
mcall 40,0x27
stdcall [tl_data_init], tree1
stdcall [tl_data_init], tree2
copy_path fn_icon,sys_path,file_name,0 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>, <20><><EFBFBD>ࠧ㬥<E0A0A7><E3ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC><EFBFBD>
mov [run_file_70.Function], 0
mov [run_file_70.Position], 54
mov [run_file_70.Flags], 0
mov [run_file_70.Count], 0x300*count_main_icons
mov [run_file_70.Buffer], bmp_icon
mov [run_file_70.rezerv], 0
mov [run_file_70.FileName], file_name
mcall 70,run_file_70
cmp ebx,-1
mov [err_ini0],1
je @f ;if open file
mov [err_ini0],0
mov dword[tree1.data_img],bmp_icon
mov dword[tree2.data_img],bmp_icon
@@:
;<3B><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16*16 <20><><EFBFBD> tree_list
load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE
;<3B><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EBABAE>, <20><> <20> icon_tl_sys <20><><EFBFBD><EFBFBD><EFBFBD>
;<3B><> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><EFBFBD><E8A8A1> <20><> <20><EFBFBD>, <20>. <20>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3A6AD><EFBFBD><><E0A0A7><EFBFBD><EFBFBD>
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
mov dword[tree2.data_img_sys],eax
;1-<2D><><><E1AAA8>
load_image_file fn_skin_1, icon_font_s1,IMAGE_FILE_SKIN1_SIZE
stdcall [buf2d_create_f_img], buf_skin1,[icon_font_s1] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.Free,[icon_font_s1] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;2-<2D><><><E1AAA8>
load_image_file fn_skin_2, icon_font_s1,IMAGE_FILE_SKIN2_SIZE
stdcall [buf2d_create_f_img], buf_skin2,[icon_font_s1] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.Free,[icon_font_s1] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;3-<2D><><><E1AAA8>
load_image_file fn_skin_3, icon_font_s1,IMAGE_FILE_SKIN3_SIZE
stdcall [buf2d_create_f_img], buf_skin3,[icon_font_s1] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.Free,[icon_font_s1] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;ᨬ<><E1A8AC><EFBFBD><EFBFBD> 1-<2D><> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
load_image_file 'font6x9.bmp', icon_font_s1,IMAGE_FILE_FONT1_SIZE
stdcall [buf2d_create_f_img], buf_font,[icon_font_s1] ;ᮧ<><E1AEA7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.Free,[icon_font_s1] ;<3B><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall [buf2d_conv_24_to_8], buf_font,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA7><EFBFBD><E7ADAE><EFBFBD> 8 <20><><EFBFBD>
stdcall [buf2d_convert_text_matrix], buf_font
copy_path fn_obj_opt,sys_path,fp_obj_opt,0
;load options file
mov [run_file_70.Position], 0
mov [run_file_70.Count], sizeof.ObjOpt*MAX_OBJ_TYPES+MAX_OBJ_CAPTIONS
mov [run_file_70.Buffer], obj_opt
mov [run_file_70.FileName], fp_obj_opt
mcall 70,run_file_70
cmp ebx,-1
mov [err_ini1],1
je .open_end ;jmp if not open file
mov [err_ini1],0
mov eax,obj_opt ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EAA5AA>
@@:
mov ebx,dword[eax]
cmp ebx,0
je @f
;xor ecx,ecx ;<3B> ecx <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov cx,word[eax+obj_opt.img-obj_opt]
cmp cx,0
jge .zero
xor cx,cx ;<3B><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
.zero:
shl ecx,16
stdcall dword[tl_node_add], tree1,ecx,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
stdcall dword[tl_cur_next], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
add eax,sizeof.ObjOpt ;<3B><><EFBFBD><EFBFBD><20><><><E1ABA5><EFBFBD><20><><EFBFBD>
jmp @b
@@:
stdcall dword[tl_cur_beg], tree1 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
.open_end:
stdcall [OpenDialog_Init],OpenDialog_data ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall [ted_init], tedit0
copy_path fn_syntax,sys_path,file_name,0
; *** init syntax file ***
; <20><EFBFBD><E0AEA2>塞 ࠧ<><E0A0A7><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
mov [run_file_70.Function], 5
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], 0
mov dword[run_file_70.Buffer], open_b
mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], file_name
mcall 70,run_file_70
cmp eax,0
jne @f
mov edi,tedit0
mov ecx,dword[open_b+32] ;+32 qword: ࠧ<><E0A0A7><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ted_syntax_file_size,ecx
stdcall mem.Alloc,ecx ;<3B><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
mov ted_syntax_file,eax
;<3B>஡㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
call open_unpac_synt_file
jmp .end_0
@@:
notify_window_run txt_not_syntax_file
.end_0:
;get cmd line
cmp [buf_cmd_lin],0
je @f ;if file names exist
mov esi,buf_cmd_lin
call strlen ;eax=strlen
mov edi,[edit1.text]
mov [edit1.size],eax
mov ecx,eax
rep movsb
call but_open_proj
@@:
align 4
red_win:
call draw_window
align 4
still:
mcall 10
cmp al,1
jne @f
call draw_window
@@:
cmp al,2
jz key
cmp al,3
jz button
cmp al,6
jne @f
call mouse
@@:
jmp still
align 4
draw_window:
pushad
mcall 12,1
xor eax,eax
mov ebx,20*65536+670
mov ecx,20*65536+370
mov edx,[sc.work]
or edx,0x33000000
mov edi,hed
int 0x40
mov eax,8 ;button 'Open Project'
mov esi,0x80ff
mov ebx,230*65536+18
mov ecx,5*65536+18
mov edx,5
int 0x40
stdcall draw_icon, 22,231,6 ;22 - open
;button 'Save Project'
mov ebx,250*65536+18
mov ecx,5*65536+18
mov edx,6
int 0x40
stdcall draw_icon, 17,251,6 ;17 - save
;button 'Show Constructor'
mov ebx,310*65536+18
mov ecx,5*65536+18
mov edx,11
int 0x40
stdcall draw_icon, 12,311,6 ;12 - window
;button 'Show Code'
mov ebx,330*65536+18
mov edx,12
int 0x40
stdcall draw_icon, 11,331,6 ;11 - text
;button 'Update: Code, Constructor'
mov ebx,350*65536+18
mov edx,13
int 0x40
stdcall draw_icon, 32,351,6 ;32 - update
;button 'Save Code'
mov ebx,370*65536+18
mov edx,14
int 0x40
stdcall draw_icon, 17,371,6 ;17 - save
;button ']P'
mov ebx,390*65536+18
mov edx,15
int 0x40
stdcall draw_icon, 18,391,6 ;18 - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;button 'Show color text'
mov ebx,410*65536+18
mov edx,16
int 0x40
stdcall draw_icon, 19,411,6
;button 'Add Object'
mov ebx,125*65536+18
mov ecx,30*65536+18
mov edx,31
int 0x40
stdcall draw_icon, 14,126,31 ;14 - add object
;button 'Move Up'
mov ebx,155*65536+18
mov edx,21
int 0x40
stdcall draw_icon, 23,156,31 ;23 - move up
;button 'Move Down'
mov ebx,175*65536+18
mov edx,22
int 0x40
stdcall draw_icon, 24,176,31 ;24 - move down
;button 'Copy'
mov ebx,195*65536+18
mov edx,23
int 0x40
stdcall draw_icon, 30,196,31 ;30 - copy
;button 'Paste'
mov ebx,215*65536+18
mov edx,24
int 0x40
stdcall draw_icon, 31,216,31 ;31 - paste
;button 'Property'
mov ebx,235*65536+18
mov edx,25
int 0x40
stdcall draw_icon, 7,236,31 ;7 - property
;button 'Undo'
mov ebx,255*65536+18
mov edx,26
int 0x40
stdcall draw_icon, 33,256,31 ;33 - undo
;button 'Redo'
mov ebx,275*65536+18
mov edx,27
int 0x40
stdcall draw_icon, 34,276,31 ;34 - redo
; 10 30 50 70 90
cmp [err_opn],1
jne @f
mcall 4,10*65536+35,0x80ff0000,txtErrOpen
@@:
stdcall [edit_box_draw], edit1
stdcall [edit_box_draw], edit_sav
mov dword[w_scr_t1.all_redraw],1
;stdcall [scrollbar_ver_draw], w_scr_t1
stdcall [tl_draw], tree1
mov dword[w_scr_t2.all_redraw],1
;stdcall [scrollbar_ver_draw], w_scr_t2
stdcall [tl_draw], tree2
cmp byte[show_mode],0 ;<3B><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne @f
stdcall [buf2d_draw], buf_fon
@@:
cmp byte[show_mode],1 ;<3B><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
jne @f
stdcall [ted_draw], tedit0
@@:
mcall 12,2
popad
ret
align 4
mouse:
stdcall [edit_box_mouse], edit1
stdcall [edit_box_mouse], edit_sav
stdcall [tl_mouse], tree1
stdcall [tl_mouse], tree2
cmp byte[show_mode],1 ;<3B><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
jne @f
stdcall [ted_mouse], tedit0
@@:
ret
align 4
key:
mcall 2
stdcall [edit_box_key], edit1
stdcall [edit_box_key], edit_sav
stdcall [tl_key], tree1
stdcall [tl_key], tree2
jmp still
align 4
button:
mcall 17
cmp ah,5
jne @f
call but_open_proj
jmp still
@@:
cmp ah,6
jne @f
call but_save_proj
jmp still
@@:
;cmp ah,10
;jne @f
;call but_element_change
;@@:
cmp ah,11
jne @f
call but_show_constructor
jmp still
@@:
cmp ah,12
jne @f
call but_show_code
jmp still
@@:
cmp ah,13
jne @f
call but_update
jmp still
@@:
cmp ah,14
jne @f
call but_save_asm
jmp still
@@:
cmp ah,15
jne @f
call but_show_invis
jmp still
@@:
cmp ah,16
jne @f
call but_show_syntax
jmp still
@@:
cmp ah,21
jne @f
call but_obj_move_up
jmp still
@@:
cmp ah,22
jne @f
call but_obj_move_down
jmp still
@@:
cmp ah,23
jne @f
call but_obj_copy
jmp still
@@:
cmp ah,24
jne @f
call but_obj_paste
jmp still
@@:
cmp ah,25
jne @f
call on_file_object_select
jmp still
@@:
cmp ah,26
jne @f
stdcall [tl_info_undo], tree2
stdcall [tl_draw], tree2
jmp still
@@:
cmp ah,27
jne @f
stdcall [tl_info_redo], tree2
stdcall [tl_draw], tree2
jmp still
@@:
cmp ah,31
jne @f
call on_add_object
jmp still
@@:
cmp ah,1
jne still
.exit:
stdcall mem.Free,[icon_tl_sys]
mov dword[tree1.data_img],0
mov dword[tree2.data_img],0
mov dword[tree1.data_img_sys],0
mov dword[tree2.data_img_sys],0
stdcall dword[tl_data_clear], tree1
stdcall dword[tl_data_clear], tree2
stdcall [buf2d_delete],buf_fon ;㤠<><20><><EFBFBD><EFBFBD><EFBFBD>
stdcall [buf2d_delete],buf_font ;㤠<><20><><EFBFBD><EFBFBD><EFBFBD>
stdcall [buf2d_delete],buf_skin1
stdcall [buf2d_delete],buf_skin2
stdcall [buf2d_delete],buf_skin3
stdcall [ted_delete], tedit0
cmp dword[unpac_mem],0
je @f
stdcall mem.Free,[unpac_mem]
@@:
mcall -1
align 4
open_file_data dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD>
open_file_size dd 0 ;ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
align 4
but_open_proj:
copy_path open_dialog_name,communication_area_default_path,file_name,0
pushad
mov [OpenDialog_data.type],0
stdcall [OpenDialog_Start],OpenDialog_data
cmp [OpenDialog_data.status],2
je .open_end
;<3B><><EFBFBD> <20><><EFBFBD> 㤠筮<E3A4A0> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [run_file_70.Function], 5
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], 0
mov dword[run_file_70.Buffer], open_b
mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path
mcall 70,run_file_70
mov ecx,dword[open_b+32] ;+32 qword: ࠧ<><E0A0A7><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [open_file_size],ecx
stdcall mem.ReAlloc,[open_file_data],ecx
mov [open_file_data],eax
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], ecx
m2m dword[run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path
mcall 70,run_file_70 ;<3B><><EFBFBD><EFBFBD><EFBFBD><E3A6A0><>
cmp ebx,0xffffffff
mov [err_opn],1
je .open_end ;if open file
mov [err_opn],0
stdcall [edit_box_set_text], edit1,openfile_path
stdcall dword[tl_info_clear], tree2
mov eax,[open_file_data] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EAA5AA>
@@:
mov ebx,dword[eax]
cmp ebx,0
je @f
call find_obj_in_opt ;edi = pointer to ObjOpt struct
mov cx,word[edi+obj_opt.img-obj_opt]
cmp cx,0
jge .zero
xor cx,cx ;<3B><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
.zero:
shl ecx,16 ;<3B> ecx <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov cl,byte[eax+u_object.lvl-u_object] ;<3B><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EAA5AA>
;tl_node_close_open - <20><> <20><><EFBFBD><EFBFBD><E5AEA4>, <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
mov ch,byte[eax+u_object.clo-u_object] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall dword[tl_node_add], tree2,ecx,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD>
stdcall dword[tl_cur_next], tree2 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
add eax,sizeof.object ;<3B><><EFBFBD><EFBFBD><20><><><E1ABA5><EFBFBD><20><><EFBFBD>
jmp @b
@@:
stdcall dword[tl_cur_beg], tree2 ;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov [foc_obj],0
call draw_constructor
call code_gen
.open_end:
call draw_window ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><EFBFBD> <20><><EFBFBD>砥, <20><><EFBFBD><EFBFBD> <20>᫨ 䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
popad
ret
;<3B><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
align 4
but_save_proj:
copy_path open_dialog_name,communication_area_default_path,file_name,0
pushad
mov [OpenDialog_data.type],1
stdcall [OpenDialog_Start],OpenDialog_data
cmp [OpenDialog_data.status],2
je .end_save_file
;<3B><><EFBFBD> <20><><EFBFBD> 㤠筮<E3A4A0> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;<3B><>६ ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E4A0A9>
xor ecx,ecx
stdcall [tl_node_poi_get_info], tree2,0
@@:
cmp eax,0
je @f
inc ecx
stdcall [tl_node_poi_get_next_info], tree2,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><E5AEA4> <20><><E1ABA5><EFBFBD><>
jmp @b
@@:
;movzx eax,word[tree2.info_size]
imul ecx,sizeof.object ;eax
add ecx,4 ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
mov [open_file_size],ecx
stdcall mem.ReAlloc,[open_file_data],ecx
mov [open_file_data],eax
mov edi,[open_file_data]
stdcall [tl_node_poi_get_info], tree2,0
mov edx,eax
@@:
cmp edx,0
je @f
stdcall [tl_node_poi_get_data], tree2,edx
mov esi,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>
mov bl,byte[edx+2] ;bl - <20><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EAA5AA>
mov byte[esi+u_object.lvl-u_object],bl
mov bl,byte[edx+3] ;bl - <20><><EFBFBD><EFBFBD><EFBFBD>⨥/<2F><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EAA5AA>
mov byte[esi+u_object.clo-u_object],bl
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <> <20><><EFBFBD><EAA5AA>
mov ebx,[esi+u_object.typid-u_object] ;ebx - <20><><EFBFBD><EAA5AA>
;<3B><><EFBFBD>࠭塞 <20><><EFBFBD><EAA5AA>
push ebx
imul ebx,sizeof.TreeList
add ebx,[tree2.data_nodes] ;ebx - 㪠<><E3AAA0><EFBFBD> <20><><EFBFBD><><EFBFBD>
stdcall get_obj_npp,ebx
mov [esi+u_object.typid-u_object],eax
mov eax,esi
;<3B><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD>
movzx ecx,word[tree2.info_size]
cld
rep movsb
;<3B><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
pop dword[eax+u_object.typid-u_object]
stdcall [tl_node_poi_get_next_info], tree2,edx
mov edx,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><E5AEA4> <20><><E1ABA5><EFBFBD><>
jmp @b
@@:
mov dword[edi],0 ;<3B><><20><><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
add edi,4
stdcall [edit_box_set_text], edit1,openfile_path
mov ecx,[open_file_size] ;ecx - ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD>࠭塞<E0A0AD><EFA5AC><EFBFBD><><E4A0A9>
mov [run_file_70.Function], 2
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], ecx
m2m [run_file_70.Buffer], [open_file_data]
mov [run_file_70.rezerv], 0
mov dword[run_file_70.FileName], openfile_path
mcall 70,run_file_70
.end_save_file:
popad
ret
;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
;output:
; eax - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>
align 4
proc get_obj_npp uses ebx ecx, p_obj_str:dword
mov ecx,2
mov ebx,[p_obj_str]
stdcall [tl_node_poi_get_info], tree2,0
@@:
cmp eax,0
je .no_exist
cmp eax,ebx
je @f
inc ecx
stdcall [tl_node_poi_get_next_info], tree2,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><E5AEA4> <20><><E1ABA5><EFBFBD><>
jmp @b
.no_exist: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD>
xor ecx,ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD>塞 㪠<><E3AAA0><EFBFBD>, <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
@@:
mov eax,ecx
ret
endp
;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> asm 䠩<><E4A0A9>
align 4
but_save_asm:
push edi
mov edi, tedit0
stdcall [ted_save_file],edi,run_file_70,[edit_sav.text]
cmp ted_err_save,0
jne @f
stdcall [mb_create],msgbox_1,thread ;message: <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD>
@@:
pop edi
ret
;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
align 4
but_show_invis:
push edi
mov edi,tedit0
xor ted_mode_invis,1
cmp byte[show_mode],1 ;<3B><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
jne @f
stdcall [ted_draw],edi
@@:
pop edi
ret
;
align 4
but_show_syntax:
push edi
mov edi,tedit0
xor ted_mode_color,1
cmp byte[show_mode],1 ;<3B><EFBFBD><E1ABAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
jne @f
stdcall [ted_draw],edi
@@:
pop edi
ret
align 4
ted_save_err_msg:
mov byte[msgbox_0.err],al
stdcall [mb_create],msgbox_0,thread ;message: Can-t save text file!
ret
;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⨨ Enter <20> <20><><EFBFBD><EFBFBD> tree2
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><E0A0AC><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ꥪ⮢
;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> but_element_change
align 4
on_file_object_select:
cmp byte[prop_wnd_run],0
jne @f
mov byte[prop_wnd_run],1
stdcall [tl_node_get_data], tree2
mov dword[foc_obj],eax
cmp eax,0
je @f
pushad
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><><E1A2AE><EFBFBD><E2A2A0>
mcall 51,1,prop_start,prop_thread
popad
@@:
;call draw_window
ret
;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⨨ Enter <20> <20><><EFBFBD><EFBFBD> tree1
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> tree2
align 4
on_add_object:
push eax ebx ecx
stdcall [tl_node_get_data], tree1
cmp eax,0
je @f
xor ecx,ecx
mov cx,word[eax+obj_opt.img-obj_opt] ;cx - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFA5AC><EFBFBD> <20><><EFBFBD><EAA5AA>
cmp ecx,count_main_icons ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ecx <20><><EFBFBD><EFBFBD><EFBFBD> 0, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><>᫠ ⮦<> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jl .end_0
;<3B><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><><EFBFBD><E7A0AD> <20><>६ 0-<2D>
xor cx,cx
.end_0:
shl ecx,16
stdcall mem_clear, u_object,sizeof.object
mov ebx,dword[eax]
mov dword[u_object.id],ebx
stdcall dword[tl_node_add], tree2,ecx,u_object ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD>
@@:
pop ecx ebx eax
call draw_window
ret
align 4
but_ctrl_o:
ret
align 4
but_ctrl_n:
ret
align 4
but_ctrl_s:
ret
;<3B><><EFBFBD><EFBFBD><EFBFBD><20> <20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD>ᢥ⪨ ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
;input:
; ted_syntax_file - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
; ted_syntax_file_size - ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
;output:
; ebx - <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><><E4A0A9>
align 4
open_unpac_synt_file:
push eax edi esi
mov edi, tedit0
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov ecx, ted_syntax_file_size
mov dword[run_file_70.Count], ecx
m2m dword[run_file_70.Buffer], ted_syntax_file
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mcall 70, run_file_70
cmp ebx,-1
jne .end_0
;<3B><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨨ 䠩<><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
mov byte[txt_not_syntax_file.err],'0'
add byte[txt_not_syntax_file.err],al
notify_window_run txt_not_syntax_file ;Can-t open color options file!
jmp @f
.end_0:
mov eax,ted_syntax_file
cmp dword[eax],'KPCK'
jne .end_unpack
mov ecx,dword[eax+4] ;ecx - ࠧ<><E0A0A7><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD> <20><><20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD>
cmp dword[unpac_mem],0
jne .end_1
;<3B><><EFBFBD><E0A2AE>砫쭮<E7A0AB> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
stdcall mem.Alloc,ecx
mov [unpac_mem],eax
mov [unpac_mem_size],ecx
.end_1:
cmp dword[unpac_mem_size],ecx
jge .end_2
;<3B><20><><EFBFBD> <20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><> 墠⠥<E5A2A0> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.ReAlloc,[unpac_mem],ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [unpac_mem],eax
mov [unpac_mem_size],ecx
.end_2:
;<3B><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall unpack,ted_syntax_file,[unpac_mem]
cmp ted_syntax_file_size,ecx
jge .end_3
;<3B><20><><EFBFBD> <20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><> 墠⠥<E5A2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
stdcall mem.ReAlloc,ted_syntax_file,ecx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ted_syntax_file,eax
mov ted_syntax_file_size,ecx
.end_3:
;<3B><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><E1AFA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edi,ted_syntax_file
mov esi,[unpac_mem]
cld
rep movsb
.end_unpack:
;<3B><EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD>ᢥ⪨
stdcall [ted_init_syntax_file], tedit0
@@:
pop esi edi eax
ret
align 4
txt_not_syntax_file:
db '<27><EFBFBD><E8A8A1> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨨ 䠩<><E4A0A9> <20> 梥⮢묨 <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9><EFBFBD><EFBFBD>! (<28><><EFBFBD> <20><EFBFBD><E8A8A1> ='
.err: db '?'
db ')',0
align 4
buf_fon: ;䮭<><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
dw 310 ;+4 left
dw 50 ;+6 top
dd 340 ;+8 w
dd 280 ;+12 h
dd 0xffffff ;+16 color
db 24 ;+20 bit in pixel
align 4
buf_font: ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
dw 25 ;+4 left
dw 25 ;+6 top
dd 96 ;+8 w
dd 144 ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
align 4
buf_skin1:
dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
dw 0 ;+4 left
dw 0 ;+6 top
dd SKIN_W1 ;+8 w
dd SKIN_H ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
align 4
buf_skin2:
dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
dw 0 ;+4 left
dw 0 ;+6 top
dd SKIN_W2 ;+8 w
dd SKIN_H ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
align 4
buf_skin3:
dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
dw 0 ;+4 left
dw 0 ;+6 top
dd SKIN_W3 ;+8 w
dd SKIN_H ;+12 h
dd 0 ;+16 color
db 24 ;+20 bit in pixel
show_mode db 0 ;<><E0A5A6> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
txtErrOpen db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>, <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A2><EFBFBD><ECADAE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txtErrIni1 db '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20> <20><><EFBFBD><EFBFBD>ﬨ',0
err_opn db 0 ;१. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
err_ini0 db 0 ;१. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
err_ini1 db 0 ;१. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20> <20><><EFBFBD><EFBFBD>
unpac_mem dd 0
unpac_mem_size dd 0
edit1 edit_box 210, 10, 5, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text1, mouse_dd, 0, 7, 7
edit2 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text2, mouse_dd, 0
edit3 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text3, mouse_dd, 0
edit4 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text4, mouse_dd, 0
edit5 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text5, mouse_dd, 0
edit6 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text6, mouse_dd, 0
edit7 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text7, mouse_dd, 0
edit8 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text8, mouse_dd, 0
edit9 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text9, mouse_dd, 0
edit10 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text10, mouse_dd, 0
edit11 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text11, mouse_dd, 0
edit12 edit_box 115, 32, 20, 0xffffff, 0x80ff, 0xff, 0x808080, 0, MAX_LEN_OBJ_TXT, ed_text12, mouse_dd, 0
prop_wnd_edits_end: ;<3B><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E1A2AE>
edit_sav edit_box 210, 310, 30, 0xffffff, 0xff80, 0xff, 0xff0000, 0x4080, 300, ed_text_sav, mouse_dd, 0
ed_text1 db '/hd0/1/',0
rb 295
ed_text2 rb MAX_LEN_OBJ_TXT+2
ed_text3 rb MAX_LEN_OBJ_TXT+2
ed_text4 rb MAX_LEN_OBJ_TXT+2
ed_text5 rb MAX_LEN_OBJ_TXT+2
ed_text6 rb MAX_LEN_OBJ_TXT+2
ed_text7 rb MAX_LEN_OBJ_TXT+2
ed_text8 rb MAX_LEN_OBJ_TXT+2
ed_text9 rb MAX_LEN_OBJ_TXT+2
ed_text10 rb MAX_LEN_OBJ_TXT+2
ed_text11 rb MAX_LEN_OBJ_TXT+2
ed_text12 rb MAX_LEN_OBJ_TXT+2
ed_text_sav rb 302
txt_null db 'null',0
mouse_dd dd ?
el_focus dd tree1
;<3B><><EFBFBD> <20><> ᯨ᪮<E1AFA8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E2A8AF> <20><>ꥪ⮢
tree1 tree_list sizeof.ObjOpt,20+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,50,125,280, 0,obj_opt.info-obj_opt,0, el_focus,\
w_scr_t1,on_add_object
;<3B><><EFBFBD> <20> <20><>ꥪ⠬<EAA5AA> <20> <20><><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><><E4A0A9>
tree2 tree_list sizeof.object,MAX_CED_OBJECTS+2, tl_draw_par_line,\
16,16, 0xffffff,0xb0d0ff,0xd000ff, 155,50,130,280, 13,u_object.txt-u_object,MAX_LEN_OBJ_TXT, el_focus,\
w_scr_t2,on_file_object_select
msgbox_0:
db 1,0
db 'Warning',0
db 'Error saving file!',13,\
'Maybe the file name is not entered correctly.',13,\
' (error code ='
.err: db '?'
db ')',0
db 'Close',0
db 0
msgbox_1:
db 1,0
db ':)',0
db 'File was saved',0
db 'Ok',0
db 0
struct TexSelect
x0 dd ?
y0 dd ?
x1 dd ?
y1 dd ?
ends
;------------------------------------------------------------------------------
align 4
tedit0: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E2AEA2><EFBFBD><><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.wnd BOX 310,50,325,260 ;+ 0
.rec BOX 30,13,7,10 ;+16
.drag_m db 0 ;+32 <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
.drag_k db 0 ;+33 <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.sel TexSelect 0,0,0,0 ;+34 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
.seln TexSelect ;+50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭠<E2A5AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
.tex dd 0 ;+66 text memory pointer
.tex_1 dd 0 ;+70 text first symbol pointer
.tex_end dd 0 ;+74 text end memory pointer
.cur_x dd 0 ;+78 <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.cur_y dd 0 ;+82 <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.max_chars dd 25002 ;+86 <20><><EFBFBD><EFBFBD><E1A8AC><EFBFBD> <20><>᫮ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5><EFBFBD>
.count_colors_text dd 1 ;+90 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ 梥⮢ ⥪<><E2A5AA><EFBFBD>
.count_key_words dd 0 ;+94 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><E7A5A2><>
.color_cursor dd 0xff0000 ;+98 梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.color_wnd_capt dd 0x0080c0 ;+102 梥<> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
.color_wnd_work dd 0x0 ;+106 梥<><> <20><><EFBFBD><EFBFBD>
.color_wnd_bord dd 0xffffff ;+110 梥<><><E2A5AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
.color_select dd 0x0000ff ;+114 梥<> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
.color_cur_text dd 0xffff00 ;+118 梥<><><E1A8AC><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
.color_wnd_text dd 0x80ffff ;+122 梥<><><E2A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
.syntax_file dd 0 ;+126 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
.syntax_file_size dd 55*1024 ;+130 <20><><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
.text_colors dd 0 ;+134 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD>ᨢ 梥⮢ ⥪<><E2A5AA><EFBFBD>
.help_text_f1 dd 0 ;+138 㪠<><E3AAA0><EFBFBD> <20><><><E2A5AA> <20><><EFBFBD><E0A0A2> (<28><> <20><><EFBFBD><EFBFBD>⨨ F1)
.help_id dd -1 ;+142 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0A0A2>
.key_words_data dd 0 ;+146 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5A2><> TexColViv
.tim_ch dd ? ;+150 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4A0A9>
.tim_undo dd ? ;+154 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
.tim_ls dd ? ;+158 <20><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD>
.tim_co dd ? ;+162 <20><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> 梥⮢<E6A2A5><E2AEA2><><E0A0A7>
.el_focus dd el_focus ;+166 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4AEAA><EFBFBD>
.err_save db 0 ;+170 <20><EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E4A0A9>
.panel_id db 0 ;+171 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.key_new db 0 ;+172 ᨬ<><E1A8AC><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.symbol_new_line db 20 ;+173 ᨬ<><E1A8AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A5AD> <20><><EFBFBD>
.scr_w dd scrol_w1 ;+174 <20><><EFBFBD><EFBFBD><E2A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
.scr_h dd scrol_h1 ;+178 <20><><EFBFBD><E0A8A7><EFBFBD><E2A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEAB><EFBFBD><EFBFBD>
.arr_key_pos dd 0 ;+182 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><E7A5A2><>
.buffer dd text_buffer ;+186 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>/<2F><><EFBFBD><E2A0A2>
.buffer_find dd 0 ;+190 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>
.cur_ins db 1 ;+194 <><E0A5A6><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
.mode_color db 1 ;+195 <><E0A5A6> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><> 梥⮬ (0-<2D>몫. 1-<2D><><EFBFBD>.)
.mode_invis db 0 ;+196 <><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A0A5><EFBFBD><><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
.gp_opt db 0 ;+197 <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20>㭪樥<E3ADAA> ted_get_pos_by_cursor
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>⨨ Ctrl+O (<28><><EFBFBD><EFBFBD><EFBFBD>⨥ 䠩<><E4A0A9>)
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (<28><EFBFBD><EBA7AE>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>᪠)
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5><EFBFBD>)
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
.buffer_size dd BUF_SIZE ;+214 ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>/<2F><><EFBFBD><E2A0A2>
.fun_find_err dd 0 ;+218 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8AB> <20><>㤠筮
.fun_init_synt_err dd 0 ;+222 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨨ 䠩<><E4A0A9> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
.fun_draw_panel_buttons dd 0 ;+226 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.fun_draw_panel_find dd 0 ;+230 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
.fun_draw_panel_syntax dd 0 ;+234 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨭ⠪<E1A8AD><E2A0AA><EFBFBD><EFBFBD>
.fun_save_err dd ted_save_err_msg ;+238 㪠<><E3AAA0><EFBFBD> <20><> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8AB><EFBFBD> <20><>㤠筮
.increase_size dd 1000 ;+242 <20><>᫮ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> 㢥稢<E3A2A5><E7A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>墠⪥
.ptr_free_symb dd ? ;+246 㪠<><E3AAA0><EFBFBD> <20><><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD> (<28><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>᪮७<E1AAAE><E0A5AD> <20><><EFBFBD><E2A0A2><><E2A5AA><EFBFBD>)
;------------------------------------------------------------------------------
align 4
scrol_w1:
.x:
.size_x dw 16 ;+0
.start_x dw 85 ;+2
.y:
.size_y dw 100 ; +4
.start_y dw 15 ; +6
.btn_high dd 15 ; +8
.type dd 1 ;+12
.max_area dd 100 ;+16
rb 4+4
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0x808080 ;+36
.redraw dd 0 ;+40
.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
rb 32
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
;---------------------------------------------------------------------
align 4
scrol_h1:
.x:
.size_x dw 85 ;+0
.start_x dw 30 ;+2
.y:
.size_y dw 16 ;+4
.start_y dw 100 ;+6
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
rb 4+4
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0x808080 ;+36
.redraw dd 0 ;+40
.delta dw 0 ;+44
.delta2 dw 0 ;+46
.run_x:
rb 32
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
align 4
w_scr_t1:
.size_x dw 16 ;+0
rb 2+2+2
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
rb 4+4
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0 ;+36
rb 4+2+2
.run_x:
rb 32
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
align 4
w_scr_t2:
.size_x dw 16 ;+0
rb 2+2+2
.btn_high dd 15 ;+8
.type dd 1 ;+12
.max_area dd 100 ;+16
rb 4+4
.bckg_col dd 0xeeeeee ;+28
.frnt_col dd 0xbbddff ;+32
.line_col dd 0 ;+36
rb 4+2+2
.run_x:
rb 32
.all_redraw dd 0 ;+80
.ar_offset dd 1 ;+84
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD>
align 4
OpenDialog_data:
.type dd 0 ;0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1 - <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD>, 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AA><EFBFBD><EFBFBD><EFBFBD>
.procinfo dd procinfo ;+4
.com_area_name dd communication_area_name ;+8
.com_area dd 0 ;+12
.opendir_path dd plugin_path ;+16
.dir_default_path dd default_dir ;+20
.start_path dd file_name ;+24 <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD>
.draw_window dd draw_window ;+28
.status dd 0 ;+32
.openfile_path dd openfile_path ;+36 <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>
.filename_area dd filename_area ;+40
.filter_area dd Filter
.x:
.x_size dw 420 ;+48 ; Window X size
.x_start dw 10 ;+50 ; Window X position
.y:
.y_size dw 320 ;+52 ; Window y size
.y_start dw 10 ;+54 ; Window Y position
default_dir db '/rd/1',0
communication_area_name:
db 'FFFFFFFF_open_dialog',0
open_dialog_name:
db 'opendial',0
communication_area_default_path:
db '/rd/1/File managers/',0
Filter:
dd Filter.end - Filter ;.1
.1:
db 'CED',0
db 'ASM',0
.end:
db 0
data_of_code dd 0
sc system_colors
image_data dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AD> <20><EFBFBD><E3ADAA>ﬨ libimg
text_buffer db BUF_SIZE dup(0)
fn_obj_opt db 'ob_o.opt',0
obj_opt ObjOpt
rb sizeof.ObjOpt*(MAX_OBJ_TYPES-1)+MAX_OBJ_CAPTIONS
db 0 ;eof options
cur_x dd 0
cur_y dd 0
foc_obj dd 0 ;<3B><><EFBFBD> <20><><E4AEAA><EFBFBD>
obj_count_txt_props dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><E3A5AC><><EFBFBD><E2AEA2><><E1A2AE><EFBFBD><EFBFBD>
obj_m_win dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
system_dir0 db '/sys/lib/'
lib0_name db 'box_lib.obj',0
system_dir1 db '/sys/lib/'
lib1_name db 'proc_lib.obj',0
system_dir2 db '/sys/lib/'
lib2_name db 'buf2d.obj',0
system_dir3 db '/sys/lib/'
lib3_name db 'libimg.obj',0
system_dir4 db '/sys/lib/'
lib4_name db 'msgbox.obj',0
align 4
import_buf2d_lib:
dd sz_lib_init
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
;buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
;buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
;buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
dd 0,0
sz_lib_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8>, 2-<2D> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E0A0A7><EFBFBD><EFBFBD>
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
;sz_buf2d_circle db 'buf2d_circle',0 ;<3B><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3A6AD><EFBFBD><EFBFBD>
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
;sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
;sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
align 4
import_box_lib:
dd alib_init2
edit_box_draw dd aEdit_box_draw
edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
edit_box_set_text dd aEdit_box_set_text
init_checkbox dd aInit_checkbox
check_box_draw dd aCheck_box_draw
check_box_mouse dd aCheck_box_mouse
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_hor_draw dd aScrollbar_hor_draw
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
tl_key dd sz_tl_key
tl_mouse dd sz_tl_mouse
tl_draw dd sz_tl_draw
tl_info_undo dd sz_tl_info_undo
tl_info_redo dd sz_tl_info_redo
tl_node_add dd sz_tl_node_add
tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete
tl_node_move_up dd sz_tl_node_move_up
tl_node_move_down dd sz_tl_node_move_down
tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv
tl_node_close_open dd sz_tl_node_close_open
tl_node_lev_inc dd sz_tl_node_lev_inc
tl_node_lev_dec dd sz_tl_node_lev_dec
tl_node_poi_get_info dd sz_tl_node_poi_get_info
tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info
tl_node_poi_get_data dd sz_tl_node_poi_get_data
ted_but_sumb_upper dd sz_ted_but_sumb_upper
ted_but_sumb_lover dd sz_ted_but_sumb_lover
ted_can_save dd sz_ted_can_save
ted_clear dd sz_ted_clear
ted_delete dd sz_ted_delete
ted_draw dd sz_ted_draw
ted_init dd sz_ted_init
ted_init_scroll_bars dd sz_ted_init_scroll_bars
ted_init_syntax_file dd sz_ted_init_syntax_file
ted_is_select dd sz_ted_is_select
ted_key dd sz_ted_key
ted_mouse dd sz_ted_mouse
ted_open_file dd sz_ted_open_file
ted_save_file dd sz_ted_save_file
ted_text_add dd sz_ted_text_add
ted_but_select_word dd sz_ted_but_select_word
ted_but_cut dd sz_ted_but_cut
ted_but_copy dd sz_ted_but_copy
ted_but_paste dd sz_ted_but_paste
ted_but_undo dd sz_ted_but_undo
ted_but_redo dd sz_ted_but_redo
ted_but_reverse dd sz_ted_but_reverse
ted_but_find dd sz_ted_but_find
ted_text_colored dd sz_ted_text_colored
;version_text_edit dd sz_ted_version
dd 0,0
alib_init2 db 'lib_init',0
aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aEdit_box_set_text db 'edit_box_set_text',0
aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
sz_tl_data_init db 'tl_data_init',0
sz_tl_data_clear db 'tl_data_clear',0
sz_tl_info_clear db 'tl_info_clear',0
sz_tl_key db 'tl_key',0
sz_tl_mouse db 'tl_mouse',0
sz_tl_draw db 'tl_draw',0
sz_tl_info_undo db 'tl_info_undo',0
sz_tl_info_redo db 'tl_info_redo',0
sz_tl_node_add db 'tl_node_add',0
sz_tl_node_set_data db 'tl_node_set_data',0
sz_tl_node_get_data db 'tl_node_get_data',0
sz_tl_node_delete db 'tl_node_delete',0
sz_tl_node_move_up db 'tl_node_move_up',0
sz_tl_node_move_down db 'tl_node_move_down',0
sz_tl_cur_beg db 'tl_cur_beg',0
sz_tl_cur_next db 'tl_cur_next',0
sz_tl_cur_perv db 'tl_cur_perv',0
sz_tl_node_close_open db 'tl_node_close_open',0
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0
sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0
sz_ted_can_save db 'ted_can_save',0
sz_ted_clear db 'ted_clear',0
sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',0
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0
sz_ted_mouse db 'ted_mouse',0
sz_ted_open_file db 'ted_open_file',0
sz_ted_save_file db 'ted_save_file',0
sz_ted_text_add db 'ted_text_add',0
sz_ted_but_select_word db 'ted_but_select_word',0
sz_ted_but_cut db 'ted_but_cut',0
sz_ted_but_copy db 'ted_but_copy',0
sz_ted_but_paste db 'ted_but_paste',0
sz_ted_but_undo db 'ted_but_undo',0
sz_ted_but_redo db 'ted_but_redo',0
sz_ted_but_reverse db 'ted_but_reverse',0
sz_ted_but_find db 'ted_but_find',0
sz_ted_text_colored db 'ted_text_colored',0
;sz_ted_version db 'version_text_edit',0
align 4
import_proc_lib:
OpenDialog_Init dd aOpenDialog_Init
OpenDialog_Start dd aOpenDialog_Start
dd 0,0
aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0
align 4
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0 ;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0 ;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<3B><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
align 4
import_msgbox_lib:
mb_create dd amb_create
mb_reinit dd amb_reinit
mb_setfunctions dd amb_setfunctions
dd 0,0
amb_create db 'mb_create',0
amb_reinit db 'mb_reinit',0
amb_setfunctions db 'mb_setfunctions',0
;library structures
l_libs_start:
lib0 l_libs lib0_name, library_path, system_dir0, import_box_lib
lib1 l_libs lib1_name, library_path, system_dir1, import_proc_lib
lib2 l_libs lib2_name, library_path, system_dir2, import_buf2d_lib
lib3 l_libs lib3_name, library_path, system_dir3, import_libimg
lib4 l_libs lib4_name, library_path, system_dir4, import_msgbox_lib
load_lib_end:
align 16
run_file_70 FileInfoBlock
open_b rb 560
IncludeIGlobals
i_end:
IncludeUGlobals
procinfo process_information
buf_cmd_lin rb 1024
file_name rb 1024 ;icon file path
fp_obj_opt rb 1024 ;obj options file patch
rb 1024
prop_thread:
rb 1024
thread: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD> <20><><EFBFBD><EFBFBD><><EFBFBD><E9A5AD>
rb 1024
stacktop: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
sys_path rb 1024
library_path rb 1024
plugin_path rb 4096
openfile_path rb 4096
filename_area rb 256
mem: