forked from KolibriOS/kolibrios
update program
git-svn-id: svn://kolibrios.org@5917 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e016ecafca
commit
0319574018
@ -176,8 +176,8 @@ align 4
|
||||
code_gen:
|
||||
stdcall [ted_clear], tedit0,1
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
xor bl,bl
|
||||
call code_gen_obj
|
||||
stdcall [ted_text_add], tedit0,\
|
||||
@ -199,8 +199,7 @@ push eax ebx edx
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jl .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
@ -263,8 +262,8 @@ push eax ebx edx
|
||||
stdcall get_code_key,eax ;®¡à ¡®âª ®¡ê¥ªâ
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -273,21 +272,19 @@ pop edx ebx eax
|
||||
|
||||
;¢§ïâì ª®¤ë ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||
align 4
|
||||
proc get_code_children_objects, p_node:dword
|
||||
push ebx esi
|
||||
mov esi,[p_node]
|
||||
mov bl,byte[esi+2] ;á®åà 塞 ã஢¥ì ⥪ã饣® ®¡ê¥ªâ
|
||||
proc get_code_children_objects uses eax ebx esi, p_node:dword
|
||||
mov esi,[p_node]
|
||||
mov bl,byte[esi+2] ;á®åà 塞 ã஢¥ì ⥪ã饣® ®¡ê¥ªâ
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0 ;¥á«¨ ¤®á⨣«¨ ª®æ ᯨ᪠®¡ê¥ªâ®¢
|
||||
je @f
|
||||
cmp byte[esi+2],bl ;¥á«¨ ã஢¥ì á«¥¤ãî饣® ®¡ê¥ªâ ¡®«ìè¥ ¨«¨ à ¢¥ ⥪ã饬ã
|
||||
jle @f ;â® ¤®ç¥à¨å 㧫®¢ ¥â
|
||||
mov bl,byte[esi+2]
|
||||
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||
@@:
|
||||
pop esi ebx
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
cmp eax,0 ;¥á«¨ ¤®á⨣«¨ ª®æ ᯨ᪠®¡ê¥ªâ®¢
|
||||
je @f
|
||||
cmp byte[eax+2],bl ;¥á«¨ ã஢¥ì á«¥¤ãî饣® ®¡ê¥ªâ ¡®«ìè¥ ¨«¨ à ¢¥ ⥪ã饬ã
|
||||
jle @f ;â® ¤®ç¥à¨å 㧫®¢ ¥â
|
||||
mov esi,eax
|
||||
mov bl,byte[esi+2]
|
||||
call code_gen_obj ;४ãàá¨¢ë© ¢ë§®¢ ¤®ç¥à¨å ®¡ê¥ªâ®¢
|
||||
@@:
|
||||
ret
|
||||
endp
|
||||
|
||||
@ -301,8 +298,7 @@ move_next_no_child_objects:
|
||||
push eax ebx
|
||||
mov bl,byte[esi+2] ;á®åà 塞 ã஢¥ì ⥪ã饣® ®¡ê¥ªâ
|
||||
@@:
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
cmp eax,0 ;¥á«¨ ¤®á⨣«¨ ª®æ ᯨ᪠®¡ê¥ªâ®¢
|
||||
je @f
|
||||
cmp byte[eax+2],bl ;¥á«¨ ã஢¥ì á«¥¤ãî饣® ®¡ê¥ªâ ¡®«ìè¥ ¨«¨ à ¢¥ ⥪ã饬ã
|
||||
@ -330,8 +326,8 @@ proc get_code_auto, p_node:dword
|
||||
pushad
|
||||
insert_nl
|
||||
mov esi,dword[p_node]
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
test_bool_prop ebx,BIT_MOD_ACI
|
||||
jae @f
|
||||
@ -390,7 +386,7 @@ proc get_code_auto, p_node:dword
|
||||
|
||||
call get_code_auto_data_libs_param
|
||||
stdcall insert_text, txt_ll_start
|
||||
call get_code_auto_data_libs_struc
|
||||
call get_code_auto_data_libs_struc
|
||||
stdcall insert_text, txt_ll_end
|
||||
call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ ¡¨¡«¨®â¥ª
|
||||
@@:
|
||||
@ -402,16 +398,16 @@ endp
|
||||
align 4
|
||||
proc get_code_auto_m
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
@ -426,8 +422,8 @@ proc get_code_auto_m
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -441,16 +437,16 @@ proc get_code_auto_data_el
|
||||
pushad
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
@ -513,8 +509,8 @@ proc get_code_auto_data_el
|
||||
stdcall insert_text_label_data, ebx,0
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -527,16 +523,16 @@ proc get_code_auto_data_el_cbox
|
||||
pushad
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_CHB
|
||||
jne .no_check
|
||||
@ -583,8 +579,8 @@ proc get_code_auto_data_el_cbox
|
||||
stdcall insert_text_label_data, ebx,0
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -598,16 +594,16 @@ proc get_code_auto_data_libs_param
|
||||
pushad
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_LIB
|
||||
jne @f
|
||||
@ -651,9 +647,8 @@ proc get_code_auto_data_libs_param
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
popad
|
||||
@ -666,17 +661,16 @@ proc get_code_auto_data_libs_struc
|
||||
pushad
|
||||
;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp dword[ebx],C_LIB
|
||||
jne @f
|
||||
;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
|
||||
@ -717,8 +711,8 @@ proc get_code_auto_data_libs_struc
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -732,17 +726,16 @@ proc get_code_auto_data_libs
|
||||
pushad
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp dword[ebx],C_LIB
|
||||
jne @f
|
||||
;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
|
||||
@ -754,8 +747,8 @@ proc get_code_auto_data_libs
|
||||
call get_code_lib_table
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -770,23 +763,23 @@ get_code_lib_table:
|
||||
pushad
|
||||
mov bl,byte[esi+2]
|
||||
mov edi,esi
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop edx ;¯®«ã票¥ ¤ ëå த¨â¥«ì᪮£® ®¡ê¥ªâ
|
||||
cmp edx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
mov edx,eax ;¯®«ã票¥ ¤ ëå த¨â¥«ì᪮£® ®¡ê¥ªâ
|
||||
cmp eax,0
|
||||
je @f
|
||||
@@:
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0
|
||||
je @f
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jle @f
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ecx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je @f
|
||||
cmp dword[ecx],C_IFN
|
||||
cmp dword[eax],C_IFN
|
||||
jne @b
|
||||
mov ecx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
;¢áâ ¢ª 㪠§ ⥫ï äãªæ¨î
|
||||
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
|
||||
jae .no_com_0
|
||||
@ -803,18 +796,18 @@ pushad
|
||||
stdcall insert_text, txt_dd_0_0
|
||||
mov esi,edi
|
||||
@@:
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
cmp esi,0
|
||||
je @f
|
||||
cmp byte[esi+2],bl ;lev
|
||||
jle @f
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ecx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ecx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je @f
|
||||
cmp dword[ecx],C_IFN
|
||||
cmp dword[eax],C_IFN
|
||||
jne @b
|
||||
mov ecx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
;¢áâ ¢ª ¨¬¥¨ ¨¬¯®àâ¨à®¢ ®© äãªæ¨¨
|
||||
test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
|
||||
jae .no_com_1
|
||||
@ -839,16 +832,16 @@ proc get_code_auto_data_dop
|
||||
pushad
|
||||
insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ¨ï
|
||||
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
@ -907,9 +900,8 @@ proc get_code_auto_data_dop
|
||||
jne @f
|
||||
stdcall insert_text_label_data, ebx,9
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -921,16 +913,16 @@ endp
|
||||
align 4
|
||||
proc get_code_auto_but
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_BUT
|
||||
jne @f
|
||||
@ -960,8 +952,8 @@ proc get_code_auto_but
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -973,16 +965,16 @@ endp
|
||||
align 4
|
||||
proc get_code_a_but_fun
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_BUT
|
||||
jne @f
|
||||
@ -1000,8 +992,8 @@ proc get_code_a_but_fun
|
||||
.c_fun:
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -1027,17 +1019,17 @@ endp
|
||||
align 4
|
||||
proc get_code_funct_key
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
stdcall insert_text, txt_std_key_ed
|
||||
@ -1045,8 +1037,8 @@ proc get_code_funct_key
|
||||
insert_nl
|
||||
@@:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
@ -1153,16 +1145,16 @@ endp
|
||||
align 4
|
||||
proc get_code_draw_obj
|
||||
pushad
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
.beg_iterat:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop ebx ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp ebx,0
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
mov ebx,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
cmp dword[ebx],C_EDB
|
||||
jne @f
|
||||
@ -1314,8 +1306,8 @@ proc get_code_draw_obj
|
||||
insert_nl
|
||||
.ob_draw_text:
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp .beg_iterat
|
||||
.find_no:
|
||||
|
@ -35,7 +35,7 @@ push eax ebx ecx edi
|
||||
xor ecx,ecx
|
||||
mov cx,word[edi+obj_opt.img-obj_opt] ;cx - ¨¤¥ªá £« ¢®© ¨ª®ª¨ ¤®¡ ¢«ï¥¬®£® ®¡ê¥ªâ
|
||||
shl ecx,16
|
||||
stdcall [tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
stdcall [tl_node_add], tree2,ecx,eax ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
stdcall [tl_draw], tree2
|
||||
pop edi ecx ebx eax
|
||||
ret
|
||||
@ -62,7 +62,6 @@ but_element_change:
|
||||
mov edx,dword[foc_obj]
|
||||
mov dword[edx+u_object.typid-u_object],0 ; á«ãç © ¥á«¨ ¨ç¥£® ¥ ¢ë¡à ®
|
||||
stdcall [tl_node_get_data],tree3
|
||||
pop eax
|
||||
cmp eax,0
|
||||
je @f
|
||||
mov eax,dword[eax] ;¡¥à¥¬ ¯®à浪®¢ë© ®¬¥à (¢ ¯ ¬ïâ¨) ¢ë¡à ®£® ®¡ê¥ªâ
|
||||
@ -154,9 +153,8 @@ endp
|
||||
;output:
|
||||
; eax - ¤«¨ ⥪á⮢®£® ¯®«ï ¢ãâਠ®¡ê¥ªâ
|
||||
align 4
|
||||
proc get_obj_text_len_col, obj:dword, ind:dword
|
||||
proc get_obj_text_len_col uses ebx ecx edi, obj:dword, ind:dword
|
||||
xor eax,eax
|
||||
push ebx ecx edi
|
||||
mov ecx,dword[ind]
|
||||
mov eax,dword[obj]
|
||||
mov ebx,dword[eax] ;¢ ebx ¯®¯ ¤ ¥â ª®¤ ®¡ê¥ªâ
|
||||
@ -187,7 +185,6 @@ push ebx ecx edi
|
||||
@@:
|
||||
|
||||
.end_fun:
|
||||
pop edi ecx ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
@ -277,23 +274,22 @@ align 4
|
||||
proc find_obj_in_file, o_type:dword
|
||||
push ebx esi
|
||||
mov ebx,[o_type]
|
||||
stdcall dword[tl_node_poi_get_info], 0,tree2
|
||||
pop esi
|
||||
stdcall dword[tl_node_poi_get_info], tree2,0
|
||||
mov esi,eax
|
||||
|
||||
@@:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
cmp dword[eax],ebx ;ᬮâਬ ®¯¨á «¨ ¨áª®¬ë© ®¡ê¥ªâ ¢ 㧫¥
|
||||
je .find_yes
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi,tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp @b
|
||||
|
||||
@ -311,30 +307,28 @@ endp
|
||||
;¢ë室:
|
||||
;eax - 㪠§ ⥫ì áâàãªâãàã ©¤¥®£® ®¡ê¥ªâ
|
||||
align 4
|
||||
proc find_obj_in_file_next, o_type:dword
|
||||
push ebx esi
|
||||
proc find_obj_in_file_next uses ebx esi, o_type:dword
|
||||
cmp dword[obj_find_last],0
|
||||
je .find_no
|
||||
|
||||
mov ebx,dword[o_type]
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], dword[obj_find_last],tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,dword[obj_find_last]
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
@@:
|
||||
cmp esi,0
|
||||
je .find_no
|
||||
|
||||
stdcall dword[tl_node_poi_get_data], esi,tree2
|
||||
pop eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
stdcall dword[tl_node_poi_get_data], tree2,esi ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
cmp eax,0
|
||||
je .find_no
|
||||
|
||||
cmp dword[eax],ebx ;ᬮâਬ ®¯¨á «¨ ¨áª®¬ë© ®¡ê¥ªâ ¢ 㧫¥
|
||||
je .find_yes
|
||||
|
||||
stdcall dword[tl_node_poi_get_next_info], esi, tree2
|
||||
pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall dword[tl_node_poi_get_next_info], tree2,esi
|
||||
mov esi,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
|
||||
jmp @b
|
||||
|
||||
@ -345,7 +339,6 @@ push ebx esi
|
||||
mov dword[obj_find_last],0
|
||||
xor eax,eax
|
||||
@@:
|
||||
pop esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
|
@ -40,13 +40,13 @@ pushad
|
||||
cmp dword[edx],C_VAR
|
||||
jne .sel_end
|
||||
|
||||
stdcall [tl_node_poi_get_info], 0,tree2
|
||||
pop edx
|
||||
stdcall [tl_node_poi_get_info], tree2,0
|
||||
@@:
|
||||
cmp edx,0
|
||||
cmp eax,0
|
||||
je @f
|
||||
stdcall [tl_node_poi_get_data], edx,tree2
|
||||
pop esi ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
mov edx,eax
|
||||
stdcall [tl_node_poi_get_data], tree2,edx
|
||||
mov esi,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
;------ ¤®¡ ¢«¥¨¥ ®¡ê¥ªâ ¢ ᯨ᮪ -------------------------------------------
|
||||
mov ebx,[foc_obj]
|
||||
cmp ebx,esi
|
||||
@ -75,12 +75,12 @@ pushad
|
||||
.zero:
|
||||
shl ecx,16 ;¢ ecx ¨¤¥ªá ¨ª®ª¨
|
||||
|
||||
stdcall dword[tl_node_add], u_object, ecx, tree3 ;áâàãªâãà u_object ¢ ¤ ®¬ á«ãç ¥ ¥ ᮡ«î¤ ¥âáï, ® 㦠¯à®áâ® ª ª ¯ ¬ïâì ¤«ï ¢áâ ¢ª¨
|
||||
stdcall dword[tl_node_add], tree3,ecx,u_object ;áâàãªâãà u_object ¢ ¤ ®¬ á«ãç ¥ ¥ ᮡ«î¤ ¥âáï, ® 㦠¯à®áâ® ª ª ¯ ¬ïâì ¤«ï ¢áâ ¢ª¨
|
||||
stdcall dword[tl_cur_next], tree3 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª
|
||||
.add_end:
|
||||
;-------
|
||||
stdcall [tl_node_poi_get_next_info], edx,tree2
|
||||
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall [tl_node_poi_get_next_info], tree2,edx
|
||||
mov edx,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp @b
|
||||
@@:
|
||||
|
||||
@ -92,7 +92,6 @@ pushad
|
||||
stdcall [tl_cur_beg],tree3
|
||||
@@:
|
||||
stdcall [tl_node_get_data],tree3
|
||||
pop eax
|
||||
cmp eax,0
|
||||
je .sel_end
|
||||
cmp dword[eax],edx
|
||||
|
@ -21,7 +21,7 @@ include 'obj_codes.inc'
|
||||
|
||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
|
||||
|
||||
hed db 'kol_f_edit 17.04.13',0
|
||||
hed db 'kol_f_edit 16.11.15',0
|
||||
|
||||
sizeof.TreeList equ 20 ;need for element 'tree_list'
|
||||
|
||||
@ -75,24 +75,22 @@ macro load_image_file path,buf,size { ;
|
||||
db 0
|
||||
@@:
|
||||
;32 - áâ ¤ àâë© ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥ ¡ëâì ¡ãä¥à á á¨áâ¥¬ë¬ ¯ã⥬
|
||||
copy_path .path_str,[32],file_name,0x0
|
||||
copy_path .path_str,[32],file_name,0
|
||||
else
|
||||
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
|
||||
copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
|
||||
end if
|
||||
|
||||
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï
|
||||
mov [buf],eax
|
||||
|
||||
mov eax,70 ;70-ï äãªæ¨ï à ¡®â á ä ©« ¬¨
|
||||
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], [buf]
|
||||
m2m [run_file_70.Buffer], eax
|
||||
mov byte[run_file_70+20], 0
|
||||
mov [run_file_70.FileName], file_name
|
||||
mov ebx,run_file_70
|
||||
int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï
|
||||
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥¨ï
|
||||
cmp ebx,0xffffffff
|
||||
je @f
|
||||
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à image_data
|
||||
@ -216,8 +214,7 @@ start:
|
||||
stdcall dword[tl_data_init], tree1
|
||||
stdcall dword[tl_data_init], tree2
|
||||
|
||||
copy_path fn_icon,sys_path,file_name,0x0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
|
||||
mov eax,70 ;load icon file
|
||||
copy_path fn_icon,sys_path,file_name,0 ;ä®à¬¨à㥬 ¯®«ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ® ¢ ®¤®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
|
||||
mov [run_file_70.Function], 0
|
||||
mov [run_file_70.Position], 54
|
||||
mov [run_file_70.Flags], 0
|
||||
@ -225,8 +222,7 @@ start:
|
||||
mov [run_file_70.Buffer], bmp_icon
|
||||
mov [run_file_70.rezerv], 0
|
||||
mov [run_file_70.FileName], file_name
|
||||
mov ebx,run_file_70
|
||||
int 0x40
|
||||
mcall 70,run_file_70
|
||||
|
||||
cmp ebx,-1
|
||||
mov [err_ini0],1
|
||||
@ -265,15 +261,13 @@ start:
|
||||
stdcall [buf2d_convert_text_matrix], buf_font
|
||||
|
||||
|
||||
copy_path fn_obj_opt,sys_path,fp_obj_opt,0x0
|
||||
copy_path fn_obj_opt,sys_path,fp_obj_opt,0
|
||||
;load options file
|
||||
mov eax,70
|
||||
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
|
||||
mov ebx,run_file_70
|
||||
int 0x40
|
||||
mcall 70,run_file_70
|
||||
|
||||
cmp ebx,-1
|
||||
mov [err_ini1],1
|
||||
@ -292,7 +286,7 @@ start:
|
||||
xor cx,cx ;çâ®-¡ë ¥ £«î稫® á ®âà¨æ ⥫ìë¬ ¨¤¥ªá®¬
|
||||
.zero:
|
||||
shl ecx,16
|
||||
stdcall dword[tl_node_add], eax, ecx, tree1 ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ®¡ê¥ªâ
|
||||
stdcall dword[tl_node_add], tree1,ecx,eax ;¤®¡ ¢«ï¥¬ §¢ ¨¥ ®¡ê¥ªâ
|
||||
stdcall dword[tl_cur_next], tree1 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª
|
||||
add eax,sizeof.ObjOpt ;¯¥à¥å®¤ á«¥¤ãî騩 ®¡ê¥ªâ
|
||||
jmp @b
|
||||
@ -301,12 +295,12 @@ start:
|
||||
|
||||
.open_end:
|
||||
|
||||
stdcall [OpenDialog_Init],OpenDialog_data ;¯®¤£®â®¢ª ¤¨ «®£
|
||||
stdcall [ted_init], tedit0
|
||||
copy_path fn_syntax,sys_path,file_name,0x0
|
||||
copy_path fn_syntax,sys_path,file_name,0
|
||||
|
||||
; *** init syntax file ***
|
||||
; ¯à®¢¥à塞 à §¬¥à ä ©« á¨â ªá¨á
|
||||
mov eax,70
|
||||
mov [run_file_70.Function], 5
|
||||
mov [run_file_70.Position], 0
|
||||
mov [run_file_70.Flags], 0
|
||||
@ -314,8 +308,7 @@ start:
|
||||
mov dword[run_file_70.Buffer], open_b
|
||||
mov byte[run_file_70+20], 0
|
||||
mov dword[run_file_70.FileName], file_name
|
||||
mov ebx,run_file_70
|
||||
int 0x40
|
||||
mcall 70,run_file_70
|
||||
cmp eax,0
|
||||
jne @f
|
||||
|
||||
@ -488,11 +481,7 @@ pushad
|
||||
|
||||
cmp [err_opn],1
|
||||
jne @f
|
||||
mov eax,4
|
||||
mov ebx,10*65536+35
|
||||
mov ecx,0x80ff0000
|
||||
mov edx,txtErrOpen
|
||||
int 0x40
|
||||
mcall 4,10*65536+35,0x80ff0000,txtErrOpen
|
||||
@@:
|
||||
|
||||
stdcall [edit_box_draw], dword edit1
|
||||
@ -546,10 +535,12 @@ button:
|
||||
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
|
||||
@ -558,60 +549,74 @@ button:
|
||||
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
|
||||
@ -635,31 +640,50 @@ button:
|
||||
@@:
|
||||
mcall -1
|
||||
|
||||
align 4
|
||||
open_file_data dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï ®âªàëâ¨ï ä ©«®¢
|
||||
open_file_size dd 0 ;à §¬¥à ®âªàë⮣® ä ©«
|
||||
|
||||
align 4
|
||||
but_open_proj:
|
||||
copy_path open_dialog_name,communication_area_default_path,file_name,0
|
||||
pushad
|
||||
mov eax,70
|
||||
mov [OpenDialog_data.type],0
|
||||
stdcall [OpenDialog_Start],OpenDialog_data
|
||||
cmp [OpenDialog_data.status],2
|
||||
je .open_end
|
||||
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£
|
||||
|
||||
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: à §¬¥à ä ©« ¢ ¡ ©â å
|
||||
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 [run_file_70.Count], sizeof.object*MAX_CED_OBJECTS
|
||||
mov [run_file_70.Buffer], ced_info
|
||||
mov [run_file_70.rezerv], 0
|
||||
push [edit1.text]
|
||||
pop [run_file_70.FileName]
|
||||
mov ebx,run_file_70
|
||||
int 0x40
|
||||
|
||||
cmp ebx,-1
|
||||
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 ;§ £à㦠¥¬ ä ©«
|
||||
cmp ebx,0xffffffff
|
||||
mov [err_opn],1
|
||||
je .open_end ;if open file
|
||||
mov ecx,ced_info
|
||||
add ecx,ebx
|
||||
mov byte [ecx],0
|
||||
mov [err_opn],0
|
||||
stdcall [edit_box_set_text], edit1,openfile_path
|
||||
|
||||
stdcall dword[tl_info_clear], tree2
|
||||
mov eax,ced_info ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë
|
||||
mov eax,[open_file_data] ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâë
|
||||
@@:
|
||||
mov ebx,dword[eax]
|
||||
cmp ebx,0
|
||||
@ -673,12 +697,12 @@ but_open_proj:
|
||||
xor cx,cx ;çâ®-¡ë ¥ £«î稫® á ®âà¨æ ⥫ìë¬ ¨¤¥ªá®¬
|
||||
.zero:
|
||||
shl ecx,16 ;¢ ecx ¨¤¥ªá ¨ª®ª¨
|
||||
mov cl,byte[eax++u_object.lvl-u_object] ;ã஢¥ì ®¡ê¥ªâ
|
||||
mov cl,byte[eax+u_object.lvl-u_object] ;ã஢¥ì ®¡ê¥ªâ
|
||||
|
||||
;tl_node_close_open - ¥ ¯®¤å®¤¨â, â.ª. ¤¥©áâ¢ã¥â ã§«ë ¨¬¥î騥 ¤®ç¥à¨¥
|
||||
mov ch,byte[eax++u_object.clo-u_object] ;§ ªàëâë©/®âªàëâë©
|
||||
mov ch,byte[eax+u_object.clo-u_object] ;§ ªàëâë©/®âªàëâë©
|
||||
|
||||
stdcall dword[tl_node_add], eax, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
stdcall dword[tl_node_add], tree2,ecx,eax ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
|
||||
stdcall dword[tl_cur_next], tree2 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª
|
||||
add eax,sizeof.object ;¯¥à¥å®¤ á«¥¤ãî騩 ®¡ê¥ªâ
|
||||
@ -697,17 +721,39 @@ but_open_proj:
|
||||
;á®åà ¥¨¥ ä ©« ¯à®íªâ ¤¨áª
|
||||
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
|
||||
;ª®¤ ¯à¨ 㤠箬 ®âªàë⨨ ¤¨ «®£
|
||||
|
||||
mov edi,ced_info
|
||||
;¡¥à¥¬ à §¬¥à ¯ ¬ïâ¨, ¥®¡å®¤¨¬®© ¤«ï á®åà ¥¨ï ä ©«
|
||||
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 ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp @b
|
||||
@@:
|
||||
;movzx eax,word[tree2.info_size]
|
||||
imul ecx,sizeof.object ;eax
|
||||
add ecx,4 ;¬¥âª ª®æ ä ©«
|
||||
mov [open_file_size],ecx
|
||||
stdcall mem.ReAlloc,[open_file_data],ecx
|
||||
mov [open_file_data],eax
|
||||
|
||||
stdcall [tl_node_poi_get_info], 0,tree2
|
||||
pop edx
|
||||
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], edx,tree2
|
||||
pop esi ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
stdcall [tl_node_poi_get_data], tree2,edx
|
||||
mov esi,eax ;¯®«ãç ¥¬ ¤ ë¥ ã§«
|
||||
|
||||
mov bl,byte[edx+2] ;bl - ã஢¥ì ®¡ê¥ªâ
|
||||
mov byte[esi+u_object.lvl-u_object],bl
|
||||
@ -724,34 +770,31 @@ but_save_proj:
|
||||
mov [esi+u_object.typid-u_object],eax
|
||||
mov eax,esi
|
||||
;ª®¯¨à㥬 ®¡ê¥ªâ ¢ ¯ ¬ïâì ¤«ï á®åà ¥¨ï
|
||||
xor ecx,ecx
|
||||
mov cx,word[tree2.info_size]
|
||||
movzx ecx,word[tree2.info_size]
|
||||
cld
|
||||
rep movsb
|
||||
;¢®ááâ ¢«¨¢ ¥¬ ⨯ ®¡ê¥ªâ
|
||||
pop dword[eax+u_object.typid-u_object]
|
||||
|
||||
stdcall [tl_node_poi_get_next_info], edx,tree2
|
||||
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
stdcall [tl_node_poi_get_next_info], tree2,edx
|
||||
mov edx,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp @b
|
||||
@@:
|
||||
mov dword[edi],0 ;¬¥âª ª®æ ä ©«
|
||||
add edi,4
|
||||
mov ecx,edi
|
||||
sub ecx,ced_info ;ecx - à §¬¥à á®åà 塞®£® ä ©«
|
||||
|
||||
mov eax,70
|
||||
stdcall [edit_box_set_text], edit1,openfile_path
|
||||
mov ecx,[open_file_size] ;ecx - à §¬¥à á®åà 塞®£® ä ©«
|
||||
mov [run_file_70.Function], 2
|
||||
mov [run_file_70.Position], 0
|
||||
mov [run_file_70.Flags], 0
|
||||
mov [run_file_70.Count], ecx
|
||||
mov [run_file_70.Buffer], ced_info
|
||||
m2m [run_file_70.Buffer], [open_file_data]
|
||||
mov [run_file_70.rezerv], 0
|
||||
push [edit1.text]
|
||||
pop [run_file_70.FileName]
|
||||
mov ebx,run_file_70
|
||||
int 0x40
|
||||
mov dword[run_file_70.FileName], openfile_path
|
||||
mcall 70,run_file_70
|
||||
|
||||
.end_save_file:
|
||||
popad
|
||||
ret
|
||||
|
||||
@ -759,38 +802,34 @@ but_save_proj:
|
||||
;output:
|
||||
; eax - ®¬¥à ®¡ê¥ªâ
|
||||
align 4
|
||||
proc get_obj_npp, p_obj_str:dword
|
||||
mov eax,2
|
||||
push ebx edx
|
||||
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], 0,tree2
|
||||
pop edx
|
||||
stdcall [tl_node_poi_get_info], tree2,0
|
||||
@@:
|
||||
cmp edx,0
|
||||
cmp eax,0
|
||||
je .no_exist
|
||||
cmp edx,ebx
|
||||
cmp eax,ebx
|
||||
je @f
|
||||
|
||||
inc eax
|
||||
stdcall [tl_node_poi_get_next_info], edx,tree2
|
||||
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
inc ecx
|
||||
stdcall [tl_node_poi_get_next_info], tree2,eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
|
||||
jmp @b
|
||||
.no_exist: ;ª®£¤ ¨¤¥â áá뫪 ¥ áãé¥áâ¢ãî騩 ®¡ê¥ªâ
|
||||
xor eax,eax ;®¡ã«ï¥¬ 㪠§ ⥫ì, çâ®-¡ë ¥ á®åà ïâì ¢ ä ©« ¬ãá®à
|
||||
xor ecx,ecx ;®¡ã«ï¥¬ 㪠§ ⥫ì, çâ®-¡ë ¥ á®åà ïâì ¢ ä ©« ¬ãá®à
|
||||
@@:
|
||||
pop edx ebx
|
||||
mov eax,ecx
|
||||
ret
|
||||
endp
|
||||
|
||||
;äãªæ¨ï ¤«ï á®åà ¥¨ï ᮧ¤ ®£® asm ä ©«
|
||||
align 4
|
||||
but_save_asm:
|
||||
;stdcall [ted_but_save_file], tedit0,run_file_70,[edit_sav.text]
|
||||
push edi
|
||||
mov edi, tedit0
|
||||
|
||||
stdcall [ted_but_save_file],edi,run_file_70,[edit_sav.text]
|
||||
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: ” ©« ¡ë« á®åà ¥
|
||||
@ -841,8 +880,8 @@ on_file_object_select:
|
||||
jne @f
|
||||
mov byte[prop_wnd_run],1
|
||||
stdcall [tl_node_get_data], tree2
|
||||
pop dword[foc_obj]
|
||||
cmp dword[foc_obj],0
|
||||
mov dword[foc_obj],eax
|
||||
cmp eax,0
|
||||
je @f
|
||||
pushad
|
||||
;¢á¥ ¤¥©áâ¢¨ï ¯® áâனª¥ í«¥¬¥â®¢ ã¯à ¢«¥¨ï ¢ë¯®«ïîâáï ¢ ®ª¥ ᮠ᢮©á⢠¬¨
|
||||
@ -858,7 +897,6 @@ align 4
|
||||
on_add_object:
|
||||
push eax ebx ecx
|
||||
stdcall [tl_node_get_data], tree1
|
||||
pop eax
|
||||
cmp eax,0
|
||||
je @f
|
||||
xor ecx,ecx
|
||||
@ -874,7 +912,7 @@ push eax ebx ecx
|
||||
stdcall mem_clear, u_object,sizeof.object
|
||||
mov ebx,dword[eax]
|
||||
mov dword[u_object.id],ebx
|
||||
stdcall dword[tl_node_add], u_object, ecx, tree2 ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
stdcall dword[tl_node_add], tree2,ecx,u_object ;¤®¡ ¢«ï¥¬ ®¡ê¥ªâ
|
||||
@@:
|
||||
pop ecx ebx eax
|
||||
call draw_window
|
||||
@ -1239,14 +1277,51 @@ rb 32
|
||||
.all_redraw dd 0 ;+80
|
||||
.ar_offset dd 1 ;+84
|
||||
|
||||
;¤ ë¥ ¤«ï ¤¨ «®£ ®âªàëâ¨ï ä ©«®¢
|
||||
align 4
|
||||
OpenDialog_data:
|
||||
.type dd 0 ;0 - ®âªàëâì, 1 - á®åà ¨âì, 2 - ¢ë¡à âì ¤â४â®à¨î
|
||||
.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 ¯ãâì ª ¤¨ «®£ã ®âªàëâ¨ï ä ©«®¢
|
||||
.draw_window dd draw_window ;+28
|
||||
.status dd 0 ;+32
|
||||
.openfile_path dd openfile_path ;+36 ¯ãâì ª ®âªàë¢ ¥¬®¬ã ä ©«ã
|
||||
.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 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ¨ï ª à⨪¨ äãªæ¨ï¬¨ libimg
|
||||
|
||||
ced_info object 0 ;on start == 0
|
||||
rb sizeof.object*(MAX_CED_OBJECTS-1)
|
||||
|
||||
text_buffer db BUF_SIZE dup(0)
|
||||
fn_obj_opt db 'ob_o.opt',0
|
||||
obj_opt ObjOpt
|
||||
@ -1395,7 +1470,6 @@ import_box_lib:
|
||||
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_save_file dd sz_ted_but_save_file
|
||||
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
|
||||
@ -1409,6 +1483,7 @@ import_box_lib:
|
||||
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
|
||||
@ -1461,7 +1536,6 @@ dd 0,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_save_file db 'ted_but_save_file',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
|
||||
@ -1475,6 +1549,7 @@ dd 0,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
|
||||
@ -1564,13 +1639,13 @@ load_lib_end:
|
||||
|
||||
|
||||
align 16
|
||||
procinfo process_information
|
||||
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
|
||||
@ -1582,4 +1657,7 @@ IncludeUGlobals
|
||||
stacktop: ;¢¢¥àåã á⥪ ®á®¢®© ¯à®£à ¬¬ë
|
||||
sys_path rb 1024
|
||||
library_path rb 1024
|
||||
plugin_path rb 4096
|
||||
openfile_path rb 4096
|
||||
filename_area rb 256
|
||||
mem:
|
||||
|
Loading…
Reference in New Issue
Block a user