Subversion Repositories Kolibri OS

Rev

Rev 1732 | Rev 3465 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1732 Rev 1904
1
;
1
;
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ᮧ¤ î騥 ¯à®£à ¬­ë© ª®¤
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ᮧ¤ î騥 ¯à®£à ¬­ë© ª®¤
3
;
3
;
4
u_object object ;¢à¥¬¥­­ë© ®¡ê¥ªâ ¤«ï § ¤ ­¨ï ᬥ饭¨©
4
u_object object ;¢à¥¬¥­­ë© ®¡ê¥ªâ ¤«ï § ¤ ­¨ï ᬥ饭¨©
5
 
5
 
6
macro insert_coma
6
macro insert_coma
7
{
7
{
8
	stdcall [ted_text_add], tedit0,txt_coma,1,ted_opt_ed_move_cursor
8
	stdcall [ted_text_add], tedit0,txt_coma,1,ted_opt_ed_move_cursor
9
}
9
}
10
macro insert_nl
10
macro insert_nl
11
{
11
{
12
	stdcall [ted_text_add], tedit0,txt_nl,1,ted_opt_ed_move_cursor
12
	stdcall [ted_text_add], tedit0,txt_nl,1,ted_opt_ed_move_cursor
13
}
13
}
14
macro insert_com
14
macro insert_com
15
{
15
{
16
	stdcall [ted_text_add], tedit0,txt_com,1,ted_opt_ed_move_cursor
16
	stdcall [ted_text_add], tedit0,txt_com,1,ted_opt_ed_move_cursor
17
}
17
}
18
macro insert_sp
18
macro insert_sp
19
{
19
{
20
	stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor
20
	stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor
21
}
21
}
22
 
22
 
23
;äã­ªæ¨ï ¢áâ ¢«ï¥â ⥪á⮢ãî áâப㠢 ⥪áâ®¢ë© à¥¤ ªâ®à
23
;äã­ªæ¨ï ¢áâ ¢«ï¥â ⥪á⮢ãî áâப㠢 ⥪áâ®¢ë© à¥¤ ªâ®à
24
align 4
24
align 4
25
proc insert_text, txt:dword
25
proc insert_text, txt:dword
26
	push eax
26
	push eax
27
	stdcall str_len,dword[txt]
27
	stdcall str_len,dword[txt]
28
	cmp eax,1
28
	cmp eax,1
29
	jl @f
29
	jl @f
30
		stdcall [ted_text_add], tedit0,dword[txt],eax,ted_opt_ed_move_cursor
30
		stdcall [ted_text_add], tedit0,dword[txt],eax,ted_opt_ed_move_cursor
31
	@@:
31
	@@:
32
	pop eax
32
	pop eax
33
	ret
33
	ret
34
endp
34
endp
35
 
35
 
36
;¢áâ ¢«ï¥â 㪠§ ­­®¥ ⥪á⮢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
36
;¢áâ ¢«ï¥â 㪠§ ­­®¥ ⥪á⮢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
37
align 4
37
align 4
38
proc insert_text_prop, p_obj:dword,index:dword
38
proc insert_text_prop, p_obj:dword,index:dword
39
	push eax edx
39
	push eax edx
40
		mov eax,[p_obj]
40
		mov eax,[p_obj]
41
		mov edx,[index]
41
		mov edx,[index]
42
		stdcall get_obj_text_col,eax,edx
42
		stdcall get_obj_text_col,eax,edx
43
		stdcall str_len,edx
43
		stdcall str_len,edx
44
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
44
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
45
	pop edx eax
45
	pop edx eax
46
	ret
46
	ret
47
endp
47
endp
48
 
48
 
49
;¢áâ ¢«ï¥â 㪠§ ­­®¥ ¡¨â®¢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
49
;¢áâ ¢«ï¥â 㪠§ ­­®¥ ¡¨â®¢®¥ ᢮©á⢮ ¨§ ®¡ê¥ªâ  ¢ ⥪áâ®¢ë© à¥¤ ªâ®à
50
align 4
50
align 4
51
proc insert_bit_prop, p_obj:dword,index:dword
51
proc insert_bit_prop, p_obj:dword,index:dword
52
	push ebx ecx edi
52
	push ebx ecx edi
53
		mov ebx,[p_obj]
53
		mov ebx,[p_obj]
54
		mov ecx,[index]
54
		mov ecx,[index]
55
		test_bool_prop ebx,ecx
55
		test_bool_prop ebx,ecx
56
		jnc @f ;¥á«¨ ¯®«ì§®¢ â¥«ì ­¥ ¢ë¡à « ¢ ®¡ê¥ªâ¥ ¤ ­­®¥ ᢮©á⢮
56
		jnc @f ;¥á«¨ ¯®«ì§®¢ â¥«ì ­¥ ¢ë¡à « ¢ ®¡ê¥ªâ¥ ¤ ­­®¥ ᢮©á⢮
57
			mov ebx,dword[ebx]
57
			mov ebx,dword[ebx]
58
			call find_obj_in_opt
58
			call find_obj_in_opt
59
			mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饭¨¥ §­ ç¥­¨© ᢮©á⢠(ª®­áâ ­â)
59
			mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饭¨¥ §­ ç¥­¨© ᢮©á⢠(ª®­áâ ­â)
60
			cmp byte[ecx],0
60
			cmp byte[ecx],0
61
			je @f ;¥á«¨ ã ®¡ê¥ªâ  ­¥â § ¤ ­­ëå ¡¨â®¢ëå ᢮©áâ¢
61
			je @f ;¥á«¨ ã ®¡ê¥ªâ  ­¥â § ¤ ­­ëå ¡¨â®¢ëå ᢮©áâ¢
62
				add ecx,obj_opt ;¤®¡ ¢«ï¥¬ ­ ç «® ä ©«  á ®¯æ¨ï¬¨
62
				add ecx,obj_opt ;¤®¡ ¢«ï¥¬ ­ ç «® ä ©«  á ®¯æ¨ï¬¨
63
				stdcall get_string_by_ind, ecx,[index]
63
				stdcall get_string_by_ind, ecx,[index]
64
				cmp byte[edi],0
64
				cmp byte[edi],0
65
				je @f ;¥á«¨ ã ®¡ê¥ªâ  ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥
65
				je @f ;¥á«¨ ã ®¡ê¥ªâ  ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥
66
				stdcall insert_text, txt_plus
66
				stdcall insert_text, txt_plus
67
				stdcall insert_text, edi
67
				stdcall insert_text, edi
68
		@@:
68
		@@:
69
	pop edi ecx ebx
69
	pop edi ecx ebx
70
	ret
70
	ret
71
endp
71
endp
72
 
72
 
73
;äã­ªæ¨ï ¢áâ ¢«ï¥â 2 ¯ à ¬¥âà  ¯® 16 ¡¨â ¢ ¢¨¤¥:
73
;äã­ªæ¨ï ¢áâ ¢«ï¥â 2 ¯ à ¬¥âà  ¯® 16 ¡¨â ¢ ¢¨¤¥:
74
; (_p1_ shl 16 + _p2_)
74
; (_p1_ shl 16 + _p2_)
75
align 4
75
align 4
76
proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword
76
proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword
77
	stdcall insert_text, txt_skob_o
77
	stdcall insert_text, txt_skob_o
78
	stdcall insert_text_prop, [obj],[p_hi]
78
	stdcall insert_text_prop, [obj],[p_hi]
79
	stdcall insert_text, txt_shl_16
79
	stdcall insert_text, txt_shl_16
80
	stdcall insert_text, txt_skob_c
80
	stdcall insert_text, txt_skob_c
81
	stdcall insert_text, txt_plus
81
	stdcall insert_text, txt_plus
82
	stdcall insert_text_prop, [obj],[p_lo]
82
	stdcall insert_text_prop, [obj],[p_lo]
83
	ret
83
	ret
84
endp
84
endp
85
 
85
 
86
;¢áâ ¢«ï¥¬ áâப㠢¨¤ :
86
;¢áâ ¢«ï¥¬ áâப㠢¨¤ :
87
; txt_(n) db (s)
87
; txt_(n) db (s)
88
align 4
88
align 4
89
proc insert_text_label_data, obj:dword, col:dword
89
proc insert_text_label_data, obj:dword, col:dword
90
	push eax edx
90
	push eax edx
91
	mov eax,[obj]
91
	mov eax,[obj]
92
		stdcall insert_text, txt_txt
92
		stdcall insert_text, txt_txt
93
		mov edx,fp_icon
93
		mov edx,fp_icon
94
		stdcall get_obj_id_str, eax,edx ;edx = 'n'
94
		stdcall get_obj_id_str, eax,edx ;edx = 'n'
95
		stdcall str_cat, edx,txt_db ;edx = 'n db '
95
		stdcall str_cat, edx,txt_db ;edx = 'n db '
96
		stdcall insert_text, edx
96
		stdcall insert_text, edx
97
		stdcall insert_text_prop, eax,[col]
97
		stdcall insert_text_prop, eax,[col]
98
		insert_nl
98
		insert_nl
99
	pop edx eax
99
	pop edx eax
100
	ret
100
	ret
101
endp
101
endp
102
 
102
 
103
macro insert_tab
103
macro insert_tab
104
{
104
{
105
	stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor
105
	stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor
106
}
106
}
107
macro insert_br
107
macro insert_br
108
{
108
{
109
	stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor
109
	stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor
110
}
110
}
111
macro insert_a_met
111
macro insert_a_met
112
{
112
{
113
	stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor
113
	stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor
114
}
114
}
115
macro insert_0
115
macro insert_0
116
{
116
{
117
	stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor
117
	stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor
118
}
118
}
119
macro insert_plus
119
macro insert_plus
120
{
120
{
121
	stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor
121
	stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor
122
}
122
}
123
macro insert_xor
123
macro insert_xor
124
{
124
{
125
	stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor
125
	stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor
126
}
126
}
127
macro insert_cmp
127
macro insert_cmp
128
{
128
{
129
	stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor
129
	stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor
130
}
130
}
131
macro insert_reg reg_name
131
macro insert_reg reg_name
132
{
132
{
133
	stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor
133
	stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor
134
}
134
}
135
macro insert_reg8 reg_name
135
macro insert_reg8 reg_name
136
{
136
{
137
	stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
137
	stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
138
}
138
}
139
 
139
 
140
;
140
;
141
macro insert_key_beg
141
macro insert_key_beg
142
{
142
{
143
	stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor
143
	stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor
144
}
144
}
145
macro insert_key_end
145
macro insert_key_end
146
{
146
{
147
	stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor
147
	stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor
148
}
148
}
149
 
149
 
150
macro insert_d_poi
150
macro insert_d_poi
151
{
151
{
152
	stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor
152
	stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor
153
}
153
}
154
macro insert_ret
154
macro insert_ret
155
{
155
{
156
	stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor
156
	stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor
157
}
157
}
158
 
158
 
159
 
159
 
160
align 4
160
align 4
161
but_update:
161
but_update:
162
	call draw_constructor
162
	call draw_constructor
163
	cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª­  ª®­áâàãªâ®à 
163
	cmp byte[show_mode],0 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠®ª­  ª®­áâàãªâ®à 
164
	jne @f
164
	jne @f
165
		stdcall [buf2d_draw], buf_fon
165
		stdcall [buf2d_draw], buf_fon
166
	@@:
166
	@@:
167
	call code_gen
167
	call code_gen
168
	cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
168
	cmp byte[show_mode],1 ;ãá«®¢¨¥ ¢¨¤¨¬®á⨠⥪á⮢®£® ®ª­ 
169
	jne @f
169
	jne @f
170
		stdcall [ted_draw], tedit0
170
		stdcall [ted_draw], tedit0
171
	@@:
171
	@@:
172
	ret
172
	ret
173
 
173
 
174
;äã­ªæ¨ï ᮧ¤ îé ï ª®¤ ¢á¥£® ä ©« 
174
;äã­ªæ¨ï ᮧ¤ îé ï ª®¤ ¢á¥£® ä ©« 
175
align 4
175
align 4
176
code_gen:
176
code_gen:
177
	stdcall [ted_clear], tedit0,1
177
	stdcall [ted_clear], tedit0,1
178
pushad
178
pushad
179
	stdcall dword[tl_node_poi_get_info], 0,tree2
179
	stdcall dword[tl_node_poi_get_info], 0,tree2
180
	pop esi
180
	pop esi
181
	xor bl,bl
181
	xor bl,bl
182
	call code_gen_obj
182
	call code_gen_obj
183
	stdcall [ted_text_add], tedit0,\
183
	stdcall [ted_text_add], tedit0,\
184
		txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®¡ ¢«ï¥¬ ᨬ¢®« ­®¢®© áâப¨ á ®¯æ¨¥© ted_opt_ed_change_time ¤«ï ¢®§¬®¦­®á⨠á®åà ­¥­¨ï ä ©« 
184
		txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®¡ ¢«ï¥¬ ᨬ¢®« ­®¢®© áâப¨ á ®¯æ¨¥© ted_opt_ed_change_time ¤«ï ¢®§¬®¦­®á⨠á®åà ­¥­¨ï ä ©« 
185
	stdcall [ted_init_scroll_bars], tedit0, 4 ;¬¥­ï¥¬ à §¬¥àë áªà®««¨­£®¢
185
	stdcall [ted_init_scroll_bars], tedit0, 4 ;¬¥­ï¥¬ à §¬¥àë áªà®««¨­£®¢
186
popad
186
popad
187
	ret
187
	ret
188
 
188
 
189
;input:
189
;input:
190
; bl - ã஢¥­ì ®¡ê¥ªâ 
190
; bl - ã஢¥­ì ®¡ê¥ªâ 
191
; esi - 㪠§ â¥«ì ­  㧥«
191
; esi - 㪠§ â¥«ì ­  㧥«
192
align 4
192
align 4
193
code_gen_obj:
193
code_gen_obj:
194
push eax ebx edx
194
push eax ebx edx
195
	.beg_iterat:
195
	.beg_iterat:
196
		cmp esi,0
196
		cmp esi,0
197
		je .find_no
197
		je .find_no
198
 
198
 
199
		cmp byte[esi+2],bl ;lev
199
		cmp byte[esi+2],bl ;lev
200
		jl .find_no
200
		jl .find_no
201
 
201
 
202
		stdcall dword[tl_node_poi_get_data], esi,tree2
202
		stdcall dword[tl_node_poi_get_data], esi,tree2
203
		pop eax ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
203
		pop eax ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
204
		cmp eax,0
204
		cmp eax,0
205
		je .find_no
205
		je .find_no
206
 
206
 
207
		cmp dword[eax],C_STR
207
		cmp dword[eax],C_STR
208
		jne .no_struct
208
		jne .no_struct
209
			stdcall get_obj_text_col, eax,1 ;edx - 㪠§ â¥«ì ­  1-¥ ᢮©á⢮ áâàãªâãàë
209
			stdcall get_obj_text_col, eax,1 ;edx - 㪠§ â¥«ì ­  1-¥ ᢮©á⢮ áâàãªâãàë
210
			stdcall insert_text,txt_struc
210
			stdcall insert_text,txt_struc
211
			cmp byte[edx],0
211
			cmp byte[edx],0
212
			jne @f
212
			jne @f
213
				stdcall insert_text,txt_t
213
				stdcall insert_text,txt_t
214
			@@:
214
			@@:
215
			insert_sp
215
			insert_sp
216
			stdcall insert_text_prop, eax,0
216
			stdcall insert_text_prop, eax,0
217
 
217
 
218
			cmp byte[edx],0
218
			cmp byte[edx],0
219
			je @f
219
			je @f
220
				;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
220
				;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
221
				insert_sp
221
				insert_sp
222
				stdcall insert_text_prop, eax,1
222
				stdcall insert_text_prop, eax,1
223
				insert_nl
223
				insert_nl
224
				stdcall insert_text, txt_skob_fo
224
				stdcall insert_text, txt_skob_fo
225
			@@:
225
			@@:
226
			insert_nl
226
			insert_nl
227
			stdcall get_code_children_objects, esi
227
			stdcall get_code_children_objects, esi
228
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
228
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
229
			cmp byte[edx],0
229
			cmp byte[edx],0
230
			je @f
230
			je @f
231
				;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
231
				;¥á«¨ áâàãªâãà  § ¤ ­  ¬ ªà®á®¬
232
				stdcall insert_text, txt_skob_fc
232
				stdcall insert_text, txt_skob_fc
233
				insert_nl
233
				insert_nl
234
			@@:
234
			@@:
235
			stdcall insert_text,txt_ends
235
			stdcall insert_text,txt_ends
236
		.no_struct:
236
		.no_struct:
237
		cmp dword[eax],C_TXT
237
		cmp dword[eax],C_TXT
238
		jne @f
238
		jne @f
239
			stdcall get_code_text,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
239
			stdcall get_code_text,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
240
		@@:
240
		@@:
241
		cmp dword[eax],C_INC
241
		cmp dword[eax],C_INC
242
		jne @f
242
		jne @f
243
			stdcall get_code_incl,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
243
			stdcall get_code_incl,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
244
		@@:
244
		@@:
245
		cmp dword[eax],C_VAR
245
		cmp dword[eax],C_VAR
246
		jne @f
246
		jne @f
247
			stdcall get_code_variable,eax,ebx ;®¡à ¡®âª  ®¡ê¥ªâ 
247
			stdcall get_code_variable,eax,ebx ;®¡à ¡®âª  ®¡ê¥ªâ 
248
		@@:
248
		@@:
249
		cmp dword[eax],C_WND
249
		cmp dword[eax],C_WND
250
		jne @f
250
		jne @f
251
			stdcall get_code_window,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
251
			stdcall get_code_window,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
252
			stdcall get_code_children_objects, esi ;®¡à ¡®âª  ¤®ç¥à­¨å ®¡¥ªâ®¢
252
			stdcall get_code_children_objects, esi ;®¡à ¡®âª  ¤®ç¥à­¨å ®¡¥ªâ®¢
253
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
253
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
254
			stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äã­ªæ¨î à¨á®¢ ­¨ï
254
			stdcall insert_text, txt_draw_we ;ª®¤ § ¢¥àè î騩 äã­ªæ¨î à¨á®¢ ­¨ï
255
		@@:
255
		@@:
256
		cmp dword[eax],C_ACO
256
		cmp dword[eax],C_ACO
257
		jne @f
257
		jne @f
258
			stdcall get_code_auto,esi ;®¡à ¡®âª  ®¡ê¥ªâ 
258
			stdcall get_code_auto,esi ;®¡à ¡®âª  ®¡ê¥ªâ 
259
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
259
			call move_next_no_child_objects ;¯à®¯ã᪠¤®ç¥à­¨å ®¡¥ªâ®¢
260
		@@:
260
		@@:
261
		cmp dword[eax],C_KEY ;ª« ¢¨ âãà 
261
		cmp dword[eax],C_KEY ;ª« ¢¨ âãà 
262
		jne @f
262
		jne @f
263
			stdcall get_code_key,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
263
			stdcall get_code_key,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
264
		@@:
264
		@@:
265
 
265
 
266
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
266
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
267
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
267
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
268
 
268
 
269
		jmp .beg_iterat
269
		jmp .beg_iterat
270
	.find_no:
270
	.find_no:
271
pop edx ebx eax
271
pop edx ebx eax
272
	ret
272
	ret
273
 
273
 
274
;¢§ïâì ª®¤ë ¤®ç¥à­¨å ®¡ê¥ªâ®¢
274
;¢§ïâì ª®¤ë ¤®ç¥à­¨å ®¡ê¥ªâ®¢
275
align 4
275
align 4
276
proc get_code_children_objects, p_node:dword
276
proc get_code_children_objects, p_node:dword
277
	push ebx esi
277
	push ebx esi
278
		mov esi,[p_node]
278
		mov esi,[p_node]
279
		mov bl,byte[esi+2] ;á®å࠭塞 ã஢¥­ì ⥪ã饣® ®¡ê¥ªâ 
279
		mov bl,byte[esi+2] ;á®å࠭塞 ã஢¥­ì ⥪ã饣® ®¡ê¥ªâ 
280
 
280
 
281
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
281
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
282
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
282
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
283
		cmp esi,0 ;¥á«¨ ¤®á⨣«¨ ª®­æ  ᯨ᪠ ®¡ê¥ªâ®¢
283
		cmp esi,0 ;¥á«¨ ¤®á⨣«¨ ª®­æ  ᯨ᪠ ®¡ê¥ªâ®¢
284
		je @f
284
		je @f
285
		cmp byte[esi+2],bl ;¥á«¨ ã஢¥­ì á«¥¤ãî饣® ®¡ê¥ªâ  ¡®«ìè¥ ¨«¨ à ¢¥­ ⥪ã饬ã
285
		cmp byte[esi+2],bl ;¥á«¨ ã஢¥­ì á«¥¤ãî饣® ®¡ê¥ªâ  ¡®«ìè¥ ¨«¨ à ¢¥­ ⥪ã饬ã
286
		jle @f ;â® ¤®ç¥à­¨å 㧫®¢ ­¥â
286
		jle @f ;â® ¤®ç¥à­¨å 㧫®¢ ­¥â
287
			mov bl,byte[esi+2]
287
			mov bl,byte[esi+2]
288
			call code_gen_obj ;४ãàᨢ­ë© ¢ë§®¢ ¤®ç¥à­¨å ®¡ê¥ªâ®¢
288
			call code_gen_obj ;४ãàᨢ­ë© ¢ë§®¢ ¤®ç¥à­¨å ®¡ê¥ªâ®¢
289
		@@:
289
		@@:
290
	pop esi ebx
290
	pop esi ebx
291
	ret
291
	ret
292
endp
292
endp
293
 
293
 
294
;¯à®¯ã᪠¢á¥å ¤®ç¥à­¨å ®¡ê¥ªâ®¢
294
;¯à®¯ã᪠¢á¥å ¤®ç¥à­¨å ®¡ê¥ªâ®¢
295
;input:
295
;input:
296
; esi - 㪠§ â¥«ì ­  㧥«
296
; esi - 㪠§ â¥«ì ­  㧥«
297
;outpet:
297
;outpet:
298
; esi - 㪠§ â¥«ì á«¥¤ã騩 ­¥ ¤®ç¥à­¨© (®â­®á¨â¥«ì­® ¢å®¤ï饣®) ­  㧥«
298
; esi - 㪠§ â¥«ì á«¥¤ã騩 ­¥ ¤®ç¥à­¨© (®â­®á¨â¥«ì­® ¢å®¤ï饣®) ­  㧥«
299
align 4
299
align 4
300
move_next_no_child_objects:
300
move_next_no_child_objects:
301
	push eax ebx
301
	push eax ebx
302
		mov bl,byte[esi+2] ;á®å࠭塞 ã஢¥­ì ⥪ã饣® ®¡ê¥ªâ 
302
		mov bl,byte[esi+2] ;á®å࠭塞 ã஢¥­ì ⥪ã饣® ®¡ê¥ªâ 
303
		@@:
303
		@@:
304
			stdcall dword[tl_node_poi_get_next_info], esi,tree2
304
			stdcall dword[tl_node_poi_get_next_info], esi,tree2
305
			pop eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
305
			pop eax ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
306
			cmp eax,0 ;¥á«¨ ¤®á⨣«¨ ª®­æ  ᯨ᪠ ®¡ê¥ªâ®¢
306
			cmp eax,0 ;¥á«¨ ¤®á⨣«¨ ª®­æ  ᯨ᪠ ®¡ê¥ªâ®¢
307
			je @f
307
			je @f
308
			cmp byte[eax+2],bl ;¥á«¨ ã஢¥­ì á«¥¤ãî饣® ®¡ê¥ªâ  ¡®«ìè¥ ¨«¨ à ¢¥­ ⥪ã饬ã
308
			cmp byte[eax+2],bl ;¥á«¨ ã஢¥­ì á«¥¤ãî饣® ®¡ê¥ªâ  ¡®«ìè¥ ¨«¨ à ¢¥­ ⥪ã饬ã
309
			jle @f ;â® ¤®ç¥à­¨å 㧫®¢ ­¥â
309
			jle @f ;â® ¤®ç¥à­¨å 㧫®¢ ­¥â
310
			mov esi,eax ;¥á«¨ á«¥¤ã騩 㧥« ®ª § «áï ¤®ç¥à­¨¬, ¯¥à¥áâ ¢«ï¥¬ 㪠§ â¥«ì
310
			mov esi,eax ;¥á«¨ á«¥¤ã騩 㧥« ®ª § «áï ¤®ç¥à­¨¬, ¯¥à¥áâ ¢«ï¥¬ 㪠§ â¥«ì
311
			jmp @b
311
			jmp @b
312
		@@:
312
		@@:
313
	pop ebx eax
313
	pop ebx eax
314
	ret
314
	ret
315
 
315
 
316
;¤®¡ ¢«¥­¨¥ ®¡ê¥ªâ  á ¯à®£à ¬­ë¬ ª®¤®¬ (⥪á⮬)
316
;¤®¡ ¢«¥­¨¥ ®¡ê¥ªâ  á ¯à®£à ¬­ë¬ ª®¤®¬ (⥪á⮬)
317
align 4
317
align 4
318
proc get_code_text, p_obj:dword
318
proc get_code_text, p_obj:dword
319
	;pushad
319
	;pushad
320
		insert_nl
320
		insert_nl
321
		stdcall insert_text_prop, dword[p_obj],0
321
		stdcall insert_text_prop, dword[p_obj],0
322
		insert_nl
322
		insert_nl
323
	;popad
323
	;popad
324
	ret
324
	ret
325
endp
325
endp
326
 
326
 
327
;®¡à ¡®âª  ®¡ê¥ªâ  ᮧ¤ î饣®  ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
327
;®¡à ¡®âª  ®¡ê¥ªâ  ᮧ¤ î饣®  ¢â®¬ â¨ç¥ªá¨¥ ª®¤ë
328
align 4
328
align 4
329
proc get_code_auto, p_node:dword
329
proc get_code_auto, p_node:dword
330
	pushad
330
	pushad
331
		insert_nl
331
		insert_nl
332
		mov esi,dword[p_node]
332
		mov esi,dword[p_node]
333
		stdcall dword[tl_node_poi_get_data], esi,tree2
333
		stdcall dword[tl_node_poi_get_data], esi,tree2
334
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
334
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
335
 
335
 
336
		test_bool_prop ebx,BIT_MOD_ACI
336
		test_bool_prop ebx,BIT_MOD_ACI
337
		jae @f
337
		jae @f
338
			mov edx,C_CHB
338
			mov edx,C_CHB
339
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
339
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
340
			cmp eax,0
340
			cmp eax,0
341
			je @f
341
			je @f
342
				stdcall insert_text, txt_std_init_cb
342
				stdcall insert_text, txt_std_init_cb
343
		@@:
343
		@@:
344
		test_bool_prop ebx,BIT_MOD_ACM
344
		test_bool_prop ebx,BIT_MOD_ACM
345
		jae @f
345
		jae @f
346
			; ¢â®¬ â¨ç¥áª¨¥ ᮡëâ¨ï ®â ¬ëè¨
346
			; ¢â®¬ â¨ç¥áª¨¥ ᮡëâ¨ï ®â ¬ëè¨
347
			call get_code_auto_m
347
			call get_code_auto_m
348
		@@:
348
		@@:
349
		test_bool_prop ebx,BIT_MOD_ABU
349
		test_bool_prop ebx,BIT_MOD_ABU
350
		jae @f
350
		jae @f
351
			;ᮧ¤ ­¨¥ ä㭪樨 button
351
			;ᮧ¤ ­¨¥ ä㭪樨 button
352
			stdcall insert_text, txt_but_beg
352
			stdcall insert_text, txt_but_beg
353
			call get_code_auto_but ;ª®¤ë ¢ë§®¢  ª­®¯®ª
353
			call get_code_auto_but ;ª®¤ë ¢ë§®¢  ª­®¯®ª
354
			stdcall insert_text, txt_but_mid
354
			stdcall insert_text, txt_but_mid
355
			stdcall get_code_children_objects, esi
355
			stdcall get_code_children_objects, esi
356
			;ª®­¥æ ä㭪樨 button (ª­®¯ª  id=-1, § ¢¥à襭¨¥ ¯à®£à ¬¬ë)
356
			;ª®­¥æ ä㭪樨 button (ª­®¯ª  id=-1, § ¢¥à襭¨¥ ¯à®£à ¬¬ë)
357
			stdcall insert_text, txt_but_end
357
			stdcall insert_text, txt_but_end
358
 
358
 
359
			call get_code_a_but_fun ;ª®¤ë ä㭪権, ¢ë§ë¢ ¥¬ëå ¯à¨ ­ ¦ â¨¨ ª­®¯®ª
359
			call get_code_a_but_fun ;ª®¤ë ä㭪権, ¢ë§ë¢ ¥¬ëå ¯à¨ ­ ¦ â¨¨ ª­®¯®ª
360
		@@:
360
		@@:
361
		test_bool_prop ebx,BIT_MOD_ACD
361
		test_bool_prop ebx,BIT_MOD_ACD
362
		jae @f
362
		jae @f
363
			call get_code_auto_data_el
363
			call get_code_auto_data_el
364
 
364
 
365
			mov edx,C_CHB
365
			mov edx,C_CHB
366
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
366
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã check_box
367
			cmp eax,0
367
			cmp eax,0
368
			je .no_check
368
			je .no_check
369
				stdcall insert_text, txt_cb_b
369
				stdcall insert_text, txt_cb_b
370
				call get_code_auto_data_el_cbox
370
				call get_code_auto_data_el_cbox
371
				stdcall insert_text, txt_cb_e
371
				stdcall insert_text, txt_cb_e
372
			.no_check:
372
			.no_check:
373
 
373
 
374
			call get_code_auto_data_dop
374
			call get_code_auto_data_dop
375
 
375
 
376
			mov edx,C_LIB
376
			mov edx,C_LIB
377
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ¡¨¡«¨®â¥ª¨
377
			stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ¡¨¡«¨®â¥ª¨
378
			cmp eax,0
378
			cmp eax,0
379
			je @f
379
			je @f
380
				insert_nl
380
				insert_nl
381
				stdcall insert_text, txt_head_i
381
				stdcall insert_text, txt_head_i
382
				stdcall insert_text, txt_d_poi
382
				stdcall insert_text, txt_d_poi
383
				insert_nl
383
				insert_nl
384
				stdcall insert_text, txt_head_l
384
				stdcall insert_text, txt_head_l
385
				stdcall insert_text, txt_db
385
				stdcall insert_text, txt_db
386
				stdcall insert_text, txt_str_beg
386
				stdcall insert_text, txt_str_beg
387
				stdcall insert_text, txt_sys_err
387
				stdcall insert_text, txt_sys_err
388
				stdcall insert_text, txt_str_end
388
				stdcall insert_text, txt_str_end
389
				insert_nl
389
				insert_nl
390
 
390
 
391
				call get_code_auto_data_libs_param
391
				call get_code_auto_data_libs_param
392
				stdcall insert_text, txt_ll_start
392
				stdcall insert_text, txt_ll_start
393
					call get_code_auto_data_libs_struc
393
					call get_code_auto_data_libs_struc
394
				stdcall insert_text, txt_ll_end
394
				stdcall insert_text, txt_ll_end
395
				call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ  ¡¨¡«¨®â¥ª
395
				call get_code_auto_data_libs ;â ¡«¨æë ¨¬¯®àâ  ¡¨¡«¨®â¥ª
396
		@@:
396
		@@:
397
		insert_nl
397
		insert_nl
398
	popad
398
	popad
399
	ret
399
	ret
400
endp
400
endp
401
 
401
 
402
align 4
402
align 4
403
proc get_code_auto_m
403
proc get_code_auto_m
404
	pushad
404
	pushad
405
	stdcall dword[tl_node_poi_get_info], 0,tree2
405
	stdcall dword[tl_node_poi_get_info], 0,tree2
406
	pop esi
406
	pop esi
407
	.beg_iterat:
407
	.beg_iterat:
408
		cmp esi,0
408
		cmp esi,0
409
		je .find_no
409
		je .find_no
410
 
410
 
411
		stdcall dword[tl_node_poi_get_data], esi,tree2
411
		stdcall dword[tl_node_poi_get_data], esi,tree2
412
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
412
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
413
		cmp ebx,0
413
		cmp ebx,0
414
		je .find_no
414
		je .find_no
415
 
415
 
416
		cmp dword[ebx],C_EDB
416
		cmp dword[ebx],C_EDB
417
		jne @f
417
		jne @f
418
			stdcall insert_text, txt_std_mouse_ed
418
			stdcall insert_text, txt_std_mouse_ed
419
			stdcall insert_text_prop, ebx,0
419
			stdcall insert_text_prop, ebx,0
420
			insert_nl
420
			insert_nl
421
		@@:
421
		@@:
422
		cmp dword[ebx],C_CHB
422
		cmp dword[ebx],C_CHB
423
		jne @f
423
		jne @f
424
			stdcall insert_text, txt_std_mouse_cb
424
			stdcall insert_text, txt_std_mouse_cb
425
			stdcall insert_text_prop, ebx,0
425
			stdcall insert_text_prop, ebx,0
426
			insert_nl
426
			insert_nl
427
		@@:
427
		@@:
428
 
428
 
429
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
429
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
430
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
430
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
431
 
431
 
432
		jmp .beg_iterat
432
		jmp .beg_iterat
433
	.find_no:
433
	.find_no:
434
	popad
434
	popad
435
	ret
435
	ret
436
endp
436
endp
437
 
437
 
438
;ᮧ¤ ­¨¥ ¤ ­­ëå (áâàãªâãà ®¡ê¥ªâ®¢)
438
;ᮧ¤ ­¨¥ ¤ ­­ëå (áâàãªâãà ®¡ê¥ªâ®¢)
439
align 4
439
align 4
440
proc get_code_auto_data_el
440
proc get_code_auto_data_el
441
	pushad
441
	pushad
442
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
442
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
443
 
443
 
444
	stdcall dword[tl_node_poi_get_info], 0,tree2
444
	stdcall dword[tl_node_poi_get_info], 0,tree2
445
	pop esi
445
	pop esi
446
	.beg_iterat:
446
	.beg_iterat:
447
		cmp esi,0
447
		cmp esi,0
448
		je .find_no
448
		je .find_no
449
 
449
 
450
		stdcall dword[tl_node_poi_get_data], esi,tree2
450
		stdcall dword[tl_node_poi_get_data], esi,tree2
451
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
451
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
452
		cmp ebx,0
452
		cmp ebx,0
453
		je .find_no
453
		je .find_no
454
 
454
 
455
		cmp dword[ebx],C_EDB
455
		cmp dword[ebx],C_EDB
456
		jne @f
456
		jne @f
457
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
457
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
458
			stdcall insert_text_prop, ebx,0
458
			stdcall insert_text_prop, ebx,0
459
			stdcall insert_text, txt_ebox
459
			stdcall insert_text, txt_ebox
460
 
460
 
461
			mov ecx,1
461
			mov ecx,1
462
			.prop:
462
			.prop:
463
				insert_sp
463
				insert_sp
464
				stdcall insert_text_prop, ebx,ecx
464
				stdcall insert_text_prop, ebx,ecx
465
				insert_coma
465
				insert_coma
466
				inc ecx
466
				inc ecx
467
				cmp ecx,10
467
				cmp ecx,10
468
			jl .prop
468
			jl .prop
469
 
469
 
470
			insert_br
470
			insert_br
471
			stdcall insert_text, txt_txt
471
			stdcall insert_text, txt_txt
472
 
472
 
473
			mov edx,fp_icon
473
			mov edx,fp_icon
474
			stdcall get_obj_id_str, ebx,edx
474
			stdcall get_obj_id_str, ebx,edx
475
			stdcall insert_text, edx
475
			stdcall insert_text, edx
476
 
476
 
477
			stdcall insert_text, txt_mouse_dd
477
			stdcall insert_text, txt_mouse_dd
478
 
478
 
479
			stdcall insert_text, txt_0 ;᢮©á⢠ editbox
479
			stdcall insert_text, txt_0 ;᢮©á⢠ editbox
480
			stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC
480
			stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC
481
			stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO
481
			stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO
482
 
482
 
483
			xchg eax,edx ;á®å࠭塞 §­ ç¥­¨¥ edx
483
			xchg eax,edx ;á®å࠭塞 §­ ç¥­¨¥ edx
484
			stdcall get_obj_text_col,ebx,10
484
			stdcall get_obj_text_col,ebx,10
485
			cmp byte[edx],0 ;¯à®¢¥à塞 ¯ãáâ ï «¨ áâப  ¯à¨ § ¯ã᪥ editbox
485
			cmp byte[edx],0 ;¯à®¢¥à塞 ¯ãáâ ï «¨ áâப  ¯à¨ § ¯ã᪥ editbox
486
			je .null_string
486
			je .null_string
487
				xchg eax,edx ;¢®áâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨¥ edx
487
				xchg eax,edx ;¢®áâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨¥ edx
488
				stdcall insert_text, txt_coma
488
				stdcall insert_text, txt_coma
489
 
489
 
490
				stdcall insert_text, txt_txt
490
				stdcall insert_text, txt_txt
491
				stdcall insert_text, edx
491
				stdcall insert_text, edx
492
				stdcall insert_text, txt_met_end
492
				stdcall insert_text, txt_met_end
493
				stdcall insert_text, txt_minus
493
				stdcall insert_text, txt_minus
494
				stdcall insert_text, txt_txt
494
				stdcall insert_text, txt_txt
495
				stdcall insert_text, edx
495
				stdcall insert_text, edx
496
				stdcall insert_text, txt_minus
496
				stdcall insert_text, txt_minus
497
				stdcall insert_text, txt_1
497
				stdcall insert_text, txt_1
498
				stdcall insert_text, txt_coma
498
				stdcall insert_text, txt_coma
499
 
499
 
500
				stdcall insert_text, txt_txt
500
				stdcall insert_text, txt_txt
501
				stdcall insert_text, edx
501
				stdcall insert_text, edx
502
				stdcall insert_text, txt_met_end
502
				stdcall insert_text, txt_met_end
503
				stdcall insert_text, txt_minus
503
				stdcall insert_text, txt_minus
504
				stdcall insert_text, txt_txt
504
				stdcall insert_text, txt_txt
505
				stdcall insert_text, edx
505
				stdcall insert_text, edx
506
				stdcall insert_text, txt_minus
506
				stdcall insert_text, txt_minus
507
				stdcall insert_text, txt_1
507
				stdcall insert_text, txt_1
508
			.null_string:
508
			.null_string:
509
			insert_nl
509
			insert_nl
510
		@@:
510
		@@:
511
		cmp dword[ebx],C_DTT
511
		cmp dword[ebx],C_DTT
512
		jne @f
512
		jne @f
513
			stdcall insert_text_label_data, ebx,0
513
			stdcall insert_text_label_data, ebx,0
514
		@@:
514
		@@:
515
 
515
 
516
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
516
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
517
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
517
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
518
 
518
 
519
		jmp .beg_iterat
519
		jmp .beg_iterat
520
	.find_no:
520
	.find_no:
521
	popad
521
	popad
522
	ret
522
	ret
523
endp
523
endp
524
 
524
 
525
align 4
525
align 4
526
proc get_code_auto_data_el_cbox
526
proc get_code_auto_data_el_cbox
527
	pushad
527
	pushad
528
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
528
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
529
 
529
 
530
	stdcall dword[tl_node_poi_get_info], 0,tree2
530
	stdcall dword[tl_node_poi_get_info], 0,tree2
531
	pop esi
531
	pop esi
532
	.beg_iterat:
532
	.beg_iterat:
533
		cmp esi,0
533
		cmp esi,0
534
		je .find_no
534
		je .find_no
535
 
535
 
536
		stdcall dword[tl_node_poi_get_data], esi,tree2
536
		stdcall dword[tl_node_poi_get_data], esi,tree2
537
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
537
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
538
		cmp ebx,0
538
		cmp ebx,0
539
		je .find_no
539
		je .find_no
540
 
540
 
541
		cmp dword[ebx],C_CHB
541
		cmp dword[ebx],C_CHB
542
		jne .no_check
542
		jne .no_check
543
			;1,2,3,4,5, 6,7,8, 9 - ot_x,ot_y,w,h,ot_w_txt, col_fon,col_frame,col_txt, txt
543
			;1,2,3,4,5, 6,7,8, 9 - ot_x,ot_y,w,h,ot_w_txt, col_fon,col_frame,col_txt, txt
544
 
544
 
545
			stdcall insert_text_prop, ebx,0
545
			stdcall insert_text_prop, ebx,0
546
			stdcall insert_text, txt_cbox
546
			stdcall insert_text, txt_cbox
547
			insert_sp
547
			insert_sp
548
 
548
 
549
			stdcall insert_2_prop_16_bit, ebx,1,3
549
			stdcall insert_2_prop_16_bit, ebx,1,3
550
			stdcall insert_text, txt_coma
550
			stdcall insert_text, txt_coma
551
			stdcall insert_2_prop_16_bit, ebx,2,4
551
			stdcall insert_2_prop_16_bit, ebx,2,4
552
			stdcall insert_text, txt_coma
552
			stdcall insert_text, txt_coma
553
 
553
 
554
			stdcall insert_text_prop, ebx,5
554
			stdcall insert_text_prop, ebx,5
555
			stdcall insert_text, txt_coma
555
			stdcall insert_text, txt_coma
556
			insert_sp
556
			insert_sp
557
 
557
 
558
			stdcall insert_text_prop, ebx,6
558
			stdcall insert_text_prop, ebx,6
559
			stdcall insert_text, txt_coma
559
			stdcall insert_text, txt_coma
560
			stdcall insert_text_prop, ebx,7
560
			stdcall insert_text_prop, ebx,7
561
			stdcall insert_text, txt_coma
561
			stdcall insert_text, txt_coma
562
			stdcall insert_text_prop, ebx,8
562
			stdcall insert_text_prop, ebx,8
563
			stdcall insert_text, txt_coma
563
			stdcall insert_text, txt_coma
564
			stdcall insert_text, txt_br
564
			stdcall insert_text, txt_br
565
 
565
 
566
			stdcall insert_text, txt_txt
566
			stdcall insert_text, txt_txt
567
			mov edx,fp_icon
567
			mov edx,fp_icon
568
			stdcall get_obj_id_str, ebx,edx
568
			stdcall get_obj_id_str, ebx,edx
569
			stdcall insert_text, edx
569
			stdcall insert_text, edx
570
			stdcall insert_text, txt_coma
570
			stdcall insert_text, txt_coma
571
 
571
 
572
			;ä« £¨
572
			;ä« £¨
573
			stdcall insert_text,txt_0
573
			stdcall insert_text,txt_0
574
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE
574
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE
575
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T
575
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T
576
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M
576
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M
577
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B
577
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B
578
 
578
 
579
			insert_nl
579
			insert_nl
580
		.no_check:
580
		.no_check:
581
		cmp dword[ebx],C_DTT
581
		cmp dword[ebx],C_DTT
582
		jne @f
582
		jne @f
583
			stdcall insert_text_label_data, ebx,0
583
			stdcall insert_text_label_data, ebx,0
584
		@@:
584
		@@:
585
 
585
 
586
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
586
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
587
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
587
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
588
 
588
 
589
		jmp .beg_iterat
589
		jmp .beg_iterat
590
	.find_no:
590
	.find_no:
591
	popad
591
	popad
592
	ret
592
	ret
593
endp
593
endp
594
 
594
 
595
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
595
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
596
align 4
596
align 4
597
proc get_code_auto_data_libs_param
597
proc get_code_auto_data_libs_param
598
	pushad
598
	pushad
599
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
599
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
600
 
600
 
601
	stdcall dword[tl_node_poi_get_info], 0,tree2
601
	stdcall dword[tl_node_poi_get_info], 0,tree2
602
	pop esi
602
	pop esi
603
	.beg_iterat:
603
	.beg_iterat:
604
		cmp esi,0
604
		cmp esi,0
605
		je .find_no
605
		je .find_no
606
 
606
 
607
		stdcall dword[tl_node_poi_get_data], esi,tree2
607
		stdcall dword[tl_node_poi_get_data], esi,tree2
608
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
608
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
609
		cmp ebx,0
609
		cmp ebx,0
610
		je .find_no
610
		je .find_no
611
 
611
 
612
		cmp dword[ebx],C_LIB
612
		cmp dword[ebx],C_LIB
613
		jne @f
613
		jne @f
614
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
614
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
615
 
615
 
616
			stdcall insert_text, txt_sys_dir
616
			stdcall insert_text, txt_sys_dir
617
			;object code
617
			;object code
618
			mov edx,fp_icon
618
			mov edx,fp_icon
619
			stdcall get_obj_id_str, ebx,edx
619
			stdcall get_obj_id_str, ebx,edx
620
			stdcall insert_text,edx
620
			stdcall insert_text,edx
621
			stdcall insert_text,txt_db
621
			stdcall insert_text,txt_db
622
			;stdcall insert_text, txt_str_beg
622
			;stdcall insert_text, txt_str_beg
623
			stdcall insert_text_prop, ebx,1
623
			stdcall insert_text_prop, ebx,1
624
			;stdcall insert_text, txt_str_end
624
			;stdcall insert_text, txt_str_end
625
			insert_nl
625
			insert_nl
626
 
626
 
627
			stdcall insert_text, txt_lib_name
627
			stdcall insert_text, txt_lib_name
628
			stdcall insert_text,edx
628
			stdcall insert_text,edx
629
			stdcall insert_text,txt_db
629
			stdcall insert_text,txt_db
630
			stdcall insert_text, txt_str_beg
630
			stdcall insert_text, txt_str_beg
631
			stdcall insert_text_prop, ebx,0
631
			stdcall insert_text_prop, ebx,0
632
			stdcall insert_text, txt_str_end
632
			stdcall insert_text, txt_str_end
633
			insert_nl
633
			insert_nl
634
 
634
 
635
			stdcall insert_text,txt_err_m_f_lib
635
			stdcall insert_text,txt_err_m_f_lib
636
			stdcall insert_text,edx
636
			stdcall insert_text,edx
637
			stdcall insert_text,txt_db
637
			stdcall insert_text,txt_db
638
			stdcall insert_text, txt_str_beg
638
			stdcall insert_text, txt_str_beg
639
			stdcall insert_text_prop, ebx,4
639
			stdcall insert_text_prop, ebx,4
640
			stdcall insert_text, txt_str_end
640
			stdcall insert_text, txt_str_end
641
			insert_nl
641
			insert_nl
642
 
642
 
643
			stdcall insert_text,txt_err_m_i_lib
643
			stdcall insert_text,txt_err_m_i_lib
644
			stdcall insert_text,edx
644
			stdcall insert_text,edx
645
			stdcall insert_text,txt_db
645
			stdcall insert_text,txt_db
646
			stdcall insert_text, txt_str_beg
646
			stdcall insert_text, txt_str_beg
647
			stdcall insert_text_prop, ebx,5
647
			stdcall insert_text_prop, ebx,5
648
			stdcall insert_text, txt_str_end
648
			stdcall insert_text, txt_str_end
649
			insert_nl
649
			insert_nl
650
 
650
 
651
			insert_nl
651
			insert_nl
652
		@@:
652
		@@:
653
 
653
 
654
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
654
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
655
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
655
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
656
 
656
 
657
		jmp .beg_iterat
657
		jmp .beg_iterat
658
	.find_no:
658
	.find_no:
659
	popad
659
	popad
660
	ret
660
	ret
661
endp
661
endp
662
 
662
 
663
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
663
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
664
align 4
664
align 4
665
proc get_code_auto_data_libs_struc
665
proc get_code_auto_data_libs_struc
666
	pushad
666
	pushad
667
	;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
667
	;insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
668
 
668
 
669
	stdcall dword[tl_node_poi_get_info], 0,tree2
669
	stdcall dword[tl_node_poi_get_info], 0,tree2
670
	pop esi
670
	pop esi
671
	.beg_iterat:
671
	.beg_iterat:
672
		cmp esi,0
672
		cmp esi,0
673
		je .find_no
673
		je .find_no
674
 
674
 
675
		stdcall dword[tl_node_poi_get_data], esi,tree2
675
		stdcall dword[tl_node_poi_get_data], esi,tree2
676
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
676
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
677
		cmp ebx,0
677
		cmp ebx,0
678
		je .find_no
678
		je .find_no
679
 
679
 
680
		cmp dword[ebx],C_LIB
680
		cmp dword[ebx],C_LIB
681
		jne @f
681
		jne @f
682
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
682
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
683
 
683
 
684
			stdcall insert_text, txt_lib
684
			stdcall insert_text, txt_lib
685
			;object code
685
			;object code
686
			mov edx,fp_icon
686
			mov edx,fp_icon
687
			stdcall get_obj_id_str, ebx,edx
687
			stdcall get_obj_id_str, ebx,edx
688
			stdcall insert_text,edx
688
			stdcall insert_text,edx
689
			insert_sp
689
			insert_sp
690
			stdcall insert_text, txt_ll
690
			stdcall insert_text, txt_ll
691
			stdcall insert_text, txt_lib_name
691
			stdcall insert_text, txt_lib_name
692
			stdcall insert_text,edx
692
			stdcall insert_text,edx
693
			stdcall insert_text,txt_coma
693
			stdcall insert_text,txt_coma
694
 
694
 
695
			stdcall insert_text, txt_lib_path
695
			stdcall insert_text, txt_lib_path
696
 
696
 
697
			stdcall insert_text, txt_sys_dir
697
			stdcall insert_text, txt_sys_dir
698
			stdcall insert_text,edx
698
			stdcall insert_text,edx
699
			stdcall insert_text,txt_coma
699
			stdcall insert_text,txt_coma
700
			stdcall insert_text,txt_br
700
			stdcall insert_text,txt_br
701
			stdcall insert_text,txt_tab
701
			stdcall insert_text,txt_tab
702
 
702
 
703
			stdcall insert_text,txt_err_m_f_lib
703
			stdcall insert_text,txt_err_m_f_lib
704
			stdcall insert_text,edx
704
			stdcall insert_text,edx
705
			stdcall insert_text,txt_coma
705
			stdcall insert_text,txt_coma
706
			stdcall insert_text,txt_head_l
706
			stdcall insert_text,txt_head_l
707
			stdcall insert_text,txt_coma
707
			stdcall insert_text,txt_coma
708
 
708
 
709
			stdcall insert_text_prop, ebx,2
709
			stdcall insert_text_prop, ebx,2
710
			stdcall insert_text,txt_coma
710
			stdcall insert_text,txt_coma
711
 
711
 
712
			stdcall insert_text,txt_err_m_i_lib
712
			stdcall insert_text,txt_err_m_i_lib
713
			stdcall insert_text,edx
713
			stdcall insert_text,edx
714
			stdcall insert_text,txt_coma
714
			stdcall insert_text,txt_coma
715
			stdcall insert_text,txt_head_i
715
			stdcall insert_text,txt_head_i
716
 
716
 
717
			insert_nl
717
			insert_nl
718
		@@:
718
		@@:
719
 
719
 
720
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
720
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
721
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
721
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
722
 
722
 
723
		jmp .beg_iterat
723
		jmp .beg_iterat
724
	.find_no:
724
	.find_no:
725
	popad
725
	popad
726
	ret
726
	ret
727
endp
727
endp
728
 
728
 
729
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
729
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
730
align 4
730
align 4
731
proc get_code_auto_data_libs
731
proc get_code_auto_data_libs
732
	pushad
732
	pushad
733
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
733
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
734
 
734
 
735
	stdcall dword[tl_node_poi_get_info], 0,tree2
735
	stdcall dword[tl_node_poi_get_info], 0,tree2
736
	pop esi
736
	pop esi
737
	.beg_iterat:
737
	.beg_iterat:
738
		cmp esi,0
738
		cmp esi,0
739
		je .find_no
739
		je .find_no
740
 
740
 
741
		stdcall dword[tl_node_poi_get_data], esi,tree2
741
		stdcall dword[tl_node_poi_get_data], esi,tree2
742
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
742
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
743
		cmp ebx,0
743
		cmp ebx,0
744
		je .find_no
744
		je .find_no
745
 
745
 
746
		cmp dword[ebx],C_LIB
746
		cmp dword[ebx],C_LIB
747
		jne @f
747
		jne @f
748
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
748
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
749
			stdcall insert_text, txt_align_4
749
			stdcall insert_text, txt_align_4
750
			stdcall insert_text_prop, ebx,2
750
			stdcall insert_text_prop, ebx,2
751
			stdcall insert_text, txt_d_poi
751
			stdcall insert_text, txt_d_poi
752
			insert_nl
752
			insert_nl
753
 
753
 
754
			call get_code_lib_table
754
			call get_code_lib_table
755
		@@:
755
		@@:
756
 
756
 
757
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
757
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
758
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
758
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
759
 
759
 
760
		jmp .beg_iterat
760
		jmp .beg_iterat
761
	.find_no:
761
	.find_no:
762
	popad
762
	popad
763
	ret
763
	ret
764
endp
764
endp
765
 
765
 
766
;input:
766
;input:
767
; esi
767
; esi
768
align 4
768
align 4
769
get_code_lib_table:
769
get_code_lib_table:
770
pushad
770
pushad
771
	mov bl,byte[esi+2]
771
	mov bl,byte[esi+2]
772
	mov edi,esi
772
	mov edi,esi
773
	stdcall dword[tl_node_poi_get_data], esi,tree2
773
	stdcall dword[tl_node_poi_get_data], esi,tree2
774
	pop edx ;¯®«ã祭¨¥ ¤ ­­ëå த¨â¥«ì᪮£® ®¡ê¥ªâ 
774
	pop edx ;¯®«ã祭¨¥ ¤ ­­ëå த¨â¥«ì᪮£® ®¡ê¥ªâ 
775
	cmp edx,0
775
	cmp edx,0
776
	je @f
776
	je @f
777
	@@:
777
	@@:
778
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
778
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
779
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
779
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
780
		cmp esi,0
780
		cmp esi,0
781
		je @f
781
		je @f
782
		cmp byte[esi+2],bl ;lev
782
		cmp byte[esi+2],bl ;lev
783
		jle @f
783
		jle @f
784
			stdcall dword[tl_node_poi_get_data], esi,tree2
784
			stdcall dword[tl_node_poi_get_data], esi,tree2
785
			pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
785
			pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
786
			cmp ecx,0
786
			cmp ecx,0
787
			je @f
787
			je @f
788
			cmp dword[ecx],C_IFN
788
			cmp dword[ecx],C_IFN
789
			jne @b
789
			jne @b
790
				;¢áâ ¢ª  㪠§ â¥«ï ­  äã­ªæ¨î
790
				;¢áâ ¢ª  㪠§ â¥«ï ­  äã­ªæ¨î
791
				test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
791
				test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
792
				jae .no_com_0
792
				jae .no_com_0
793
					stdcall insert_text, txt_com
793
					stdcall insert_text, txt_com
794
				.no_com_0:
794
				.no_com_0:
795
				insert_tab
795
				insert_tab
796
				stdcall insert_text_prop, ecx,0
796
				stdcall insert_text_prop, ecx,0
797
				stdcall insert_text, txt_dd
797
				stdcall insert_text, txt_dd
798
				stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
798
				stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
799
				stdcall insert_text_prop, ecx,0
799
				stdcall insert_text_prop, ecx,0
800
				insert_nl
800
				insert_nl
801
			jmp @b
801
			jmp @b
802
	@@:
802
	@@:
803
	stdcall insert_text, txt_dd_0_0
803
	stdcall insert_text, txt_dd_0_0
804
	mov esi,edi
804
	mov esi,edi
805
	@@:
805
	@@:
806
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
806
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
807
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
807
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
808
		cmp esi,0
808
		cmp esi,0
809
		je @f
809
		je @f
810
		cmp byte[esi+2],bl ;lev
810
		cmp byte[esi+2],bl ;lev
811
		jle @f
811
		jle @f
812
			stdcall dword[tl_node_poi_get_data], esi,tree2
812
			stdcall dword[tl_node_poi_get_data], esi,tree2
813
			pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
813
			pop ecx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
814
			cmp ecx,0
814
			cmp ecx,0
815
			je @f
815
			je @f
816
			cmp dword[ecx],C_IFN
816
			cmp dword[ecx],C_IFN
817
			jne @b
817
			jne @b
818
				;¢áâ ¢ª  ¨¬¥­¨ ¨¬¯®àâ¨à®¢ ­­®© ä㭪樨
818
				;¢áâ ¢ª  ¨¬¥­¨ ¨¬¯®àâ¨à®¢ ­­®© ä㭪樨
819
				test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
819
				test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT
820
				jae .no_com_1
820
				jae .no_com_1
821
					stdcall insert_text, txt_com
821
					stdcall insert_text, txt_com
822
				.no_com_1:
822
				.no_com_1:
823
				insert_tab
823
				insert_tab
824
				stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
824
				stdcall insert_text_prop, edx,3 ;¯à¨áâ ¢ª  ª ä㭪樨
825
				stdcall insert_text_prop, ecx,0
825
				stdcall insert_text_prop, ecx,0
826
				stdcall insert_text, txt_db
826
				stdcall insert_text, txt_db
827
				stdcall insert_text, txt_str_beg
827
				stdcall insert_text, txt_str_beg
828
				stdcall insert_text_prop, ecx,1
828
				stdcall insert_text_prop, ecx,1
829
				stdcall insert_text, txt_str_end
829
				stdcall insert_text, txt_str_end
830
				insert_nl
830
				insert_nl
831
			jmp @b
831
			jmp @b
832
	@@:
832
	@@:
833
popad
833
popad
834
	ret
834
	ret
835
 
835
 
836
;
836
;
837
align 4
837
align 4
838
proc get_code_auto_data_dop
838
proc get_code_auto_data_dop
839
	pushad
839
	pushad
840
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
840
	insert_nl ;®âáâ㯠¤«ï ä®à¬ â¨à®¢ ­¨ï
841
 
841
 
842
	stdcall dword[tl_node_poi_get_info], 0,tree2
842
	stdcall dword[tl_node_poi_get_info], 0,tree2
843
	pop esi
843
	pop esi
844
	.beg_iterat:
844
	.beg_iterat:
845
		cmp esi,0
845
		cmp esi,0
846
		je .find_no
846
		je .find_no
847
 
847
 
848
		stdcall dword[tl_node_poi_get_data], esi,tree2
848
		stdcall dword[tl_node_poi_get_data], esi,tree2
849
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
849
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
850
		cmp ebx,0
850
		cmp ebx,0
851
		je .find_no
851
		je .find_no
852
 
852
 
853
		cmp dword[ebx],C_EDB
853
		cmp dword[ebx],C_EDB
854
		jne @f
854
		jne @f
855
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
855
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
856
 
856
 
857
			;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ­­ë¥ ¤«ï editbox-®¢
857
			;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ­­ë¥ ¤«ï editbox-®¢
858
			stdcall insert_text, txt_txt
858
			stdcall insert_text, txt_txt
859
			mov edx,fp_icon
859
			mov edx,fp_icon
860
			stdcall get_obj_id_str, ebx,edx
860
			stdcall get_obj_id_str, ebx,edx
861
			stdcall insert_text,edx
861
			stdcall insert_text,edx
862
 
862
 
863
			stdcall get_obj_text_col,ebx,10
863
			stdcall get_obj_text_col,ebx,10
864
			cmp byte[edx],0
864
			cmp byte[edx],0
865
			je .no_text
865
			je .no_text
866
				stdcall insert_text, txt_d_poi
866
				stdcall insert_text, txt_d_poi
867
				stdcall insert_text, txt_db
867
				stdcall insert_text, txt_db
868
				stdcall insert_text, txt_str_beg
868
				stdcall insert_text, txt_str_beg
869
				stdcall str_len,edx
869
				stdcall str_len,edx
870
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
870
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
871
				stdcall insert_text, txt_str_end
871
				stdcall insert_text, txt_str_end
872
				insert_nl
872
				insert_nl
873
 
873
 
874
				insert_tab
874
				insert_tab
875
				stdcall insert_text, txt_met_end
875
				stdcall insert_text, txt_met_end
876
				stdcall insert_text, txt_rb
876
				stdcall insert_text, txt_rb
877
				stdcall insert_text, txt_txt
877
				stdcall insert_text, txt_txt
878
				mov edx,fp_icon
878
				mov edx,fp_icon
879
				stdcall get_obj_id_str, ebx,edx
879
				stdcall get_obj_id_str, ebx,edx
880
				stdcall insert_text,edx
880
				stdcall insert_text,edx
881
 
881
 
882
				stdcall insert_text, txt_minus
882
				stdcall insert_text, txt_minus
883
				stdcall insert_text, txt_txt
883
				stdcall insert_text, txt_txt
884
				stdcall insert_text,edx
884
				stdcall insert_text,edx
885
				stdcall insert_text, txt_met_end
885
				stdcall insert_text, txt_met_end
886
 
886
 
887
				insert_plus
887
				insert_plus
888
				stdcall insert_text_prop,ebx,9
888
				stdcall insert_text_prop,ebx,9
889
				insert_plus
889
				insert_plus
890
				stdcall insert_text, txt_3
890
				stdcall insert_text, txt_3
891
				
891
				
892
				insert_nl
892
				insert_nl
893
 
893
 
894
				jmp @f
894
				jmp @f
895
 
895
 
896
			.no_text: ;¯¥à¢®­ ç «ì­® ⥪áâ ­¥ § ¤ ­
896
			.no_text: ;¯¥à¢®­ ç «ì­® ⥪áâ ­¥ § ¤ ­
897
				stdcall insert_text, txt_times
897
				stdcall insert_text, txt_times
898
 
898
 
899
				stdcall insert_text_prop,ebx,9
899
				stdcall insert_text_prop,ebx,9
900
				insert_plus
900
				insert_plus
901
				stdcall insert_text, txt_2
901
				stdcall insert_text, txt_2
902
				stdcall insert_text, txt_db
902
				stdcall insert_text, txt_db
903
				insert_0
903
				insert_0
904
				insert_nl
904
				insert_nl
905
		@@:
905
		@@:
906
		cmp dword[ebx],C_CHB
906
		cmp dword[ebx],C_CHB
907
		jne @f
907
		jne @f
908
			stdcall insert_text_label_data, ebx,9
908
			stdcall insert_text_label_data, ebx,9
909
		@@:
909
		@@:
910
 
910
 
911
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
911
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
912
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
912
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
913
 
913
 
914
		jmp .beg_iterat
914
		jmp .beg_iterat
915
	.find_no:
915
	.find_no:
916
	popad
916
	popad
917
	ret
917
	ret
918
endp
918
endp
919
 
919
 
920
;á¢ï§ë¢ ¥¬ ª­®¯ª¨ á äã­ªæ¨ï¬¨
920
;á¢ï§ë¢ ¥¬ ª­®¯ª¨ á äã­ªæ¨ï¬¨
921
align 4
921
align 4
922
proc get_code_auto_but
922
proc get_code_auto_but
923
	pushad
923
	pushad
924
	stdcall dword[tl_node_poi_get_info], 0,tree2
924
	stdcall dword[tl_node_poi_get_info], 0,tree2
925
	pop esi
925
	pop esi
926
	.beg_iterat:
926
	.beg_iterat:
927
		cmp esi,0
927
		cmp esi,0
928
		je .find_no
928
		je .find_no
929
 
929
 
930
		stdcall dword[tl_node_poi_get_data], esi,tree2
930
		stdcall dword[tl_node_poi_get_data], esi,tree2
931
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
931
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
932
		cmp ebx,0
932
		cmp ebx,0
933
		je .find_no
933
		je .find_no
934
 
934
 
935
		cmp dword[ebx],C_BUT
935
		cmp dword[ebx],C_BUT
936
		jne @f
936
		jne @f
937
			insert_tab
937
			insert_tab
938
			insert_cmp
938
			insert_cmp
939
			insert_reg8 txt_ah
939
			insert_reg8 txt_ah
940
			insert_coma
940
			insert_coma
941
			stdcall get_obj_text_col,ebx,0
941
			stdcall get_obj_text_col,ebx,0
942
			stdcall str_len,edx
942
			stdcall str_len,edx
943
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
943
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
944
			insert_nl
944
			insert_nl
945
			insert_tab
945
			insert_tab
946
			stdcall insert_text, txt_jne_f
946
			stdcall insert_text, txt_jne_f
947
			insert_nl
947
			insert_nl
948
			insert_tab
948
			insert_tab
949
			insert_tab
949
			insert_tab
950
			stdcall insert_text, txt_call
950
			stdcall insert_text, txt_call
951
			stdcall get_obj_text_col,ebx,6
951
			stdcall get_obj_text_col,ebx,6
952
			stdcall str_len,edx
952
			stdcall str_len,edx
953
			cmp eax,1
953
			cmp eax,1
954
			jl .c_fun
954
			jl .c_fun
955
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
955
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
956
			.c_fun:
956
			.c_fun:
957
			insert_nl
957
			insert_nl
958
			insert_tab
958
			insert_tab
959
			insert_a_met ;@@:
959
			insert_a_met ;@@:
960
			insert_nl
960
			insert_nl
961
		@@:
961
		@@:
962
 
962
 
963
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
963
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
964
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
964
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
965
 
965
 
966
		jmp .beg_iterat
966
		jmp .beg_iterat
967
	.find_no:
967
	.find_no:
968
	popad
968
	popad
969
	ret
969
	ret
970
endp
970
endp
971
 
971
 
972
;¡¥à¥¬ ª®¤ë ¤«ï ä㭪権 ­ ¦ â¨© ­  ª­®¯ª¨
972
;¡¥à¥¬ ª®¤ë ¤«ï ä㭪権 ­ ¦ â¨© ­  ª­®¯ª¨
973
align 4
973
align 4
974
proc get_code_a_but_fun
974
proc get_code_a_but_fun
975
	pushad
975
	pushad
976
	stdcall dword[tl_node_poi_get_info], 0,tree2
976
	stdcall dword[tl_node_poi_get_info], 0,tree2
977
	pop esi
977
	pop esi
978
	.beg_iterat:
978
	.beg_iterat:
979
		cmp esi,0
979
		cmp esi,0
980
		je .find_no
980
		je .find_no
981
 
981
 
982
		stdcall dword[tl_node_poi_get_data], esi,tree2
982
		stdcall dword[tl_node_poi_get_data], esi,tree2
983
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
983
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
984
		cmp ebx,0
984
		cmp ebx,0
985
		je .find_no
985
		je .find_no
986
 
986
 
987
		cmp dword[ebx],C_BUT
987
		cmp dword[ebx],C_BUT
988
		jne @f
988
		jne @f
989
			stdcall get_obj_text_col,ebx,6
989
			stdcall get_obj_text_col,ebx,6
990
			stdcall str_len,edx
990
			stdcall str_len,edx
991
			cmp eax,1
991
			cmp eax,1
992
			jl .c_fun
992
			jl .c_fun
993
				insert_nl
993
				insert_nl
994
				stdcall insert_text, txt_align_4
994
				stdcall insert_text, txt_align_4
995
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
995
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
996
				insert_d_poi
996
				insert_d_poi
997
				insert_nl
997
				insert_nl
998
				insert_tab
998
				insert_tab
999
				insert_ret
999
				insert_ret
1000
			.c_fun:
1000
			.c_fun:
1001
		@@:
1001
		@@:
1002
 
1002
 
1003
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1003
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1004
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1004
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1005
 
1005
 
1006
		jmp .beg_iterat
1006
		jmp .beg_iterat
1007
	.find_no:
1007
	.find_no:
1008
	popad
1008
	popad
1009
	ret
1009
	ret
1010
endp
1010
endp
1011
 
1011
 
1012
align 4
1012
align 4
1013
proc get_code_key, p_obj:dword
1013
proc get_code_key, p_obj:dword
1014
	pushad
1014
	pushad
1015
		insert_nl
1015
		insert_nl
1016
		mov ebx,dword[p_obj]
1016
		mov ebx,dword[p_obj]
1017
 
1017
 
1018
		insert_key_beg
1018
		insert_key_beg
1019
		call get_code_funct_key ;ª®¤ë ¢ë§®¢  ª­®¯®ª
1019
		call get_code_funct_key ;ª®¤ë ¢ë§®¢  ª­®¯®ª
1020
		insert_key_end
1020
		insert_key_end
1021
 
1021
 
1022
		insert_nl
1022
		insert_nl
1023
	popad
1023
	popad
1024
	ret
1024
	ret
1025
endp
1025
endp
1026
 
1026
 
1027
align 4
1027
align 4
1028
proc get_code_funct_key
1028
proc get_code_funct_key
1029
	pushad
1029
	pushad
1030
	stdcall dword[tl_node_poi_get_info], 0,tree2
1030
	stdcall dword[tl_node_poi_get_info], 0,tree2
1031
	pop esi
1031
	pop esi
1032
	.beg_iterat:
1032
	.beg_iterat:
1033
		cmp esi,0
1033
		cmp esi,0
1034
		je .find_no
1034
		je .find_no
1035
 
1035
 
1036
		stdcall dword[tl_node_poi_get_data], esi,tree2
1036
		stdcall dword[tl_node_poi_get_data], esi,tree2
1037
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
1037
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
1038
		cmp ebx,0
1038
		cmp ebx,0
1039
		je .find_no
1039
		je .find_no
1040
 
1040
 
1041
		cmp dword[ebx],C_EDB
1041
		cmp dword[ebx],C_EDB
1042
		jne @f
1042
		jne @f
1043
			stdcall insert_text, txt_std_key_ed
1043
			stdcall insert_text, txt_std_key_ed
1044
			stdcall insert_text_prop,ebx,0
1044
			stdcall insert_text_prop,ebx,0
1045
			insert_nl
1045
			insert_nl
1046
		@@:
1046
		@@:
1047
 
1047
 
1048
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1048
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1049
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1049
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1050
 
1050
 
1051
		jmp .beg_iterat
1051
		jmp .beg_iterat
1052
	.find_no:
1052
	.find_no:
1053
	popad
1053
	popad
1054
	ret
1054
	ret
1055
endp
1055
endp
1056
 
1056
 
1057
;®¡ê¥ªâë ¯®¤ª«î祭¨ï ä ©«®¢ 'include ...'
1057
;®¡ê¥ªâë ¯®¤ª«î祭¨ï ä ©«®¢ 'include ...'
1058
align 4
1058
align 4
1059
proc get_code_incl, p_obj:dword
1059
proc get_code_incl, p_obj:dword
1060
	pushad
1060
	pushad
1061
		stdcall insert_text, txt_incl
1061
		stdcall insert_text, txt_incl
1062
		mov ebx,dword[p_obj]
1062
		mov ebx,dword[p_obj]
1063
		stdcall insert_text_prop,ebx,0
1063
		stdcall insert_text_prop,ebx,0
1064
 
1064
 
1065
		stdcall get_obj_text_col,ebx,1
1065
		stdcall get_obj_text_col,ebx,1
1066
		stdcall str_len,edx
1066
		stdcall str_len,edx
1067
		cmp eax,1
1067
		cmp eax,1
1068
		jl @f
1068
		jl @f
1069
			insert_sp
1069
			insert_sp
1070
			insert_com
1070
			insert_com
1071
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
1071
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
1072
		@@:
1072
		@@:
1073
 
1073
 
1074
		insert_nl
1074
		insert_nl
1075
	popad
1075
	popad
1076
	ret
1076
	ret
1077
endp
1077
endp
1078
 
1078
 
1079
;ᮧ¤ ¥¬ ª®¤ § ¤ ­¨ï ®ª­ 
1079
;ᮧ¤ ¥¬ ª®¤ § ¤ ­¨ï ®ª­ 
1080
align 4
1080
align 4
1081
proc get_code_window, p_obj:dword
1081
proc get_code_window, p_obj:dword
1082
	pushad
1082
	pushad
1083
		mov ebx,dword[p_obj]
1083
		mov ebx,dword[p_obj]
1084
		;2,3,4,5,6 - x,y,w,h,col_bkg
1084
		;2,3,4,5,6 - x,y,w,h,col_bkg
1085
 
1085
 
1086
		stdcall insert_text, txt_draw_wb
1086
		stdcall insert_text, txt_draw_wb
1087
 
1087
 
1088
		insert_tab
1088
		insert_tab
1089
		insert_xor
1089
		insert_xor
1090
		insert_reg txt_eax
1090
		insert_reg txt_eax
1091
		insert_coma
1091
		insert_coma
1092
		insert_reg txt_eax
1092
		insert_reg txt_eax
1093
		insert_nl
1093
		insert_nl
1094
 
1094
 
1095
		;mov ebx,...
1095
		;mov ebx,... § ¤ ¥âáï è¨à¨­  ®ª­  ¨ ®âáâ㯠®â «¥¢®£® ªà ï íªà ­ 
1096
		insert_tab
1096
		insert_tab
1097
		stdcall insert_text, txt_mov
1097
		stdcall insert_text, txt_mov
1098
		insert_reg txt_ebx
1098
		insert_reg txt_ebx
1099
		insert_coma
1099
		insert_coma
1100
		stdcall insert_2_prop_16_bit, ebx,2,4
1100
		stdcall insert_2_prop_16_bit, ebx,2,4
1101
		insert_nl
1101
		insert_nl
1102
 
1102
 
1103
		;mov ecx,...
1103
		;mov ecx,... § ¤ ¥âáï ¢ëá®â  ®ª­  ¨ ®âáâ㯠®â ¢¥àå­¥£® ªà ï íªà ­ 
1104
		insert_tab
1104
		insert_tab
1105
		stdcall insert_text, txt_mov
1105
		stdcall insert_text, txt_mov
1106
		insert_reg txt_ecx
1106
		insert_reg txt_ecx
1107
		insert_coma
1107
		insert_coma
1108
		stdcall insert_2_prop_16_bit, ebx,3,5
1108
		stdcall insert_2_prop_16_bit, ebx,3,5
1109
		insert_nl
1109
		insert_nl
1110
 
1110
 
1111
		;mov edx,...
1111
		;mov edx,... § ¤ ¥âáï 梥â à ¡®ç¥© ®¡« á⨠®ª­ 
1112
		insert_tab
1112
		insert_tab
1113
		stdcall insert_text, txt_mov
1113
		stdcall insert_text, txt_mov
1114
		insert_reg txt_edx
1114
		insert_reg txt_edx
1115
		insert_coma
1115
		insert_coma
1116
		stdcall insert_text_prop, ebx,6
1116
		stdcall insert_text_prop, ebx,6
1117
		insert_nl
1117
		insert_nl
1118
 
1118
 
1119
		;or edx,0x33000000
1119
		;or edx,0x33000000
1120
		insert_tab
1120
		insert_tab
1121
		stdcall insert_text, txt_or
1121
		stdcall insert_text, txt_or
1122
		insert_reg txt_edx
1122
		insert_reg txt_edx
1123
		insert_coma
1123
		insert_coma
-
 
1124
		stdcall insert_text,txt_skob_o
-
 
1125
		stdcall insert_text_prop, ebx,1 ;áâ¨«ì ®ª­ 
-
 
1126
		stdcall insert_text,txt_shl_24
1124
		stdcall insert_text, txt_0x33000000
1127
		stdcall insert_text,txt_skob_c
-
 
1128
		stdcall insert_bit_prop, ebx,BIT_MOD_WI_CAPT
-
 
1129
		stdcall insert_bit_prop, ebx,BIT_MOD_WI_CORD_OTN_CL_OBL
-
 
1130
		stdcall insert_bit_prop, ebx,BIT_MOD_WI_REDR
-
 
1131
		stdcall insert_bit_prop, ebx,BIT_MOD_WI_GRAD
1125
		insert_nl
1132
		insert_nl
1126
 
1133
 
1127
		;mov edi,...
1134
		;mov edi,...
1128
		insert_tab
1135
		insert_tab
1129
		stdcall insert_text, txt_mov
1136
		stdcall insert_text, txt_mov
1130
		insert_reg txt_edi
1137
		insert_reg txt_edi
1131
		insert_coma
1138
		insert_coma
1132
		stdcall insert_text_prop, ebx,0
1139
		stdcall insert_text_prop, ebx,0
1133
		insert_nl
1140
		insert_nl
1134
 
1141
 
1135
		insert_tab
1142
		insert_tab
1136
		stdcall insert_text, txt_i_40
1143
		stdcall insert_text, txt_i_40
1137
		insert_nl
1144
		insert_nl
1138
 
1145
 
1139
		call get_code_draw_obj
1146
		call get_code_draw_obj
1140
	popad
1147
	popad
1141
	ret
1148
	ret
1142
endp
1149
endp
1143
 
1150
 
1144
 
1151
 
1145
;ä®à¬¨à㥬 ¢ë§®¢ ä㭪権 ¤«ï à¨á®¢ ­¨ï ®¡ê¥ªâ®¢
1152
;ä®à¬¨à㥬 ¢ë§®¢ ä㭪権 ¤«ï à¨á®¢ ­¨ï ®¡ê¥ªâ®¢
1146
align 4
1153
align 4
1147
proc get_code_draw_obj
1154
proc get_code_draw_obj
1148
	pushad
1155
	pushad
1149
	stdcall dword[tl_node_poi_get_info], 0,tree2
1156
	stdcall dword[tl_node_poi_get_info], 0,tree2
1150
	pop esi
1157
	pop esi
1151
	.beg_iterat:
1158
	.beg_iterat:
1152
		cmp esi,0
1159
		cmp esi,0
1153
		je .find_no
1160
		je .find_no
1154
 
1161
 
1155
		stdcall dword[tl_node_poi_get_data], esi,tree2
1162
		stdcall dword[tl_node_poi_get_data], esi,tree2
1156
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
1163
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
1157
		cmp ebx,0
1164
		cmp ebx,0
1158
		je .find_no
1165
		je .find_no
1159
 
1166
 
1160
		cmp dword[ebx],C_EDB
1167
		cmp dword[ebx],C_EDB
1161
		jne @f
1168
		jne @f
1162
			stdcall insert_text, txt_editb_draw
1169
			stdcall insert_text, txt_editb_draw
1163
			stdcall insert_text_prop, ebx,0
1170
			stdcall insert_text_prop, ebx,0
1164
			insert_nl
1171
			insert_nl
1165
		@@:
1172
		@@:
1166
		cmp dword[ebx],C_CHB
1173
		cmp dword[ebx],C_CHB
1167
		jne @f
1174
		jne @f
1168
			stdcall insert_text, txt_cbox_draw
1175
			stdcall insert_text, txt_cbox_draw
1169
			stdcall insert_text_prop, ebx,0
1176
			stdcall insert_text_prop, ebx,0
1170
			insert_nl
1177
			insert_nl
1171
		@@:
1178
		@@:
1172
		cmp dword[ebx],C_BUT
1179
		cmp dword[ebx],C_BUT
1173
		jne .ob_draw_but
1180
		jne .ob_draw_but
1174
			insert_tab
1181
			insert_tab
1175
			stdcall insert_text, txt_mov
1182
			stdcall insert_text, txt_mov
1176
			insert_reg txt_eax
1183
			insert_reg txt_eax
1177
			insert_coma
1184
			insert_coma
1178
			stdcall insert_text, txt_8
1185
			stdcall insert_text, txt_8
1179
			insert_nl
1186
			insert_nl
1180
 
1187
 
1181
			insert_tab
1188
			insert_tab
1182
			stdcall insert_text, txt_mov
1189
			stdcall insert_text, txt_mov
1183
			insert_reg txt_ebx
1190
			insert_reg txt_ebx
1184
			insert_coma
1191
			insert_coma
1185
			stdcall insert_2_prop_16_bit, ebx,1,3
1192
			stdcall insert_2_prop_16_bit, ebx,1,3
1186
			insert_nl
1193
			insert_nl
1187
 
1194
 
1188
			insert_tab
1195
			insert_tab
1189
			stdcall insert_text, txt_mov
1196
			stdcall insert_text, txt_mov
1190
			insert_reg txt_ecx
1197
			insert_reg txt_ecx
1191
			insert_coma
1198
			insert_coma
1192
			stdcall insert_2_prop_16_bit, ebx,2,4
1199
			stdcall insert_2_prop_16_bit, ebx,2,4
1193
			insert_nl
1200
			insert_nl
1194
 
1201
 
1195
			insert_tab
1202
			insert_tab
1196
			stdcall insert_text, txt_mov
1203
			stdcall insert_text, txt_mov
1197
			insert_reg txt_edx
1204
			insert_reg txt_edx
1198
			insert_coma
1205
			insert_coma
1199
			stdcall insert_text_prop, ebx,0
1206
			stdcall insert_text_prop, ebx,0
1200
			test_bool_prop ebx,BIT_MOD_BUT_NFON
1207
			test_bool_prop ebx,BIT_MOD_BUT_NFON
1201
			jnc @f
1208
			jnc @f
1202
				stdcall insert_text, txt_plus
1209
				stdcall insert_text, txt_plus
1203
				stdcall insert_text, txt_bit_30
1210
				stdcall insert_text, txt_bit_30
1204
			@@:
1211
			@@:
1205
			test_bool_prop ebx,BIT_MOD_BUT_NBORD
1212
			test_bool_prop ebx,BIT_MOD_BUT_NBORD
1206
			jnc @f
1213
			jnc @f
1207
				stdcall insert_text, txt_plus
1214
				stdcall insert_text, txt_plus
1208
				stdcall insert_text, txt_bit_29
1215
				stdcall insert_text, txt_bit_29
1209
			@@:
1216
			@@:
1210
			insert_nl
1217
			insert_nl
1211
 
1218
 
1212
			insert_tab
1219
			insert_tab
1213
			stdcall insert_text, txt_mov
1220
			stdcall insert_text, txt_mov
1214
			insert_reg txt_esi
1221
			insert_reg txt_esi
1215
			insert_coma
1222
			insert_coma
1216
			stdcall insert_text_prop, ebx,5 ;button color
1223
			stdcall insert_text_prop, ebx,5 ;button color
1217
			insert_nl
1224
			insert_nl
1218
 
1225
 
1219
			insert_tab
1226
			insert_tab
1220
			stdcall insert_text, txt_i_40
1227
			stdcall insert_text, txt_i_40
1221
			insert_nl
1228
			insert_nl
1222
		.ob_draw_but:
1229
		.ob_draw_but:
1223
		cmp dword[ebx],C_REC
1230
		cmp dword[ebx],C_REC
1224
		jne @f
1231
		jne @f
1225
			insert_tab
1232
			insert_tab
1226
			stdcall insert_text, txt_mov
1233
			stdcall insert_text, txt_mov
1227
			insert_reg txt_eax
1234
			insert_reg txt_eax
1228
			insert_coma
1235
			insert_coma
1229
			stdcall insert_text, txt_1
1236
			stdcall insert_text, txt_1
1230
			stdcall insert_text, txt_3
1237
			stdcall insert_text, txt_3
1231
			insert_nl
1238
			insert_nl
1232
 
1239
 
1233
			insert_tab
1240
			insert_tab
1234
			stdcall insert_text, txt_mov
1241
			stdcall insert_text, txt_mov
1235
			insert_reg txt_ebx
1242
			insert_reg txt_ebx
1236
			insert_coma
1243
			insert_coma
1237
			stdcall insert_2_prop_16_bit, ebx,1,3
1244
			stdcall insert_2_prop_16_bit, ebx,1,3
1238
			insert_nl
1245
			insert_nl
1239
 
1246
 
1240
			insert_tab
1247
			insert_tab
1241
			stdcall insert_text, txt_mov
1248
			stdcall insert_text, txt_mov
1242
			insert_reg txt_ecx
1249
			insert_reg txt_ecx
1243
			insert_coma
1250
			insert_coma
1244
			stdcall insert_2_prop_16_bit, ebx,2,4
1251
			stdcall insert_2_prop_16_bit, ebx,2,4
1245
			insert_nl
1252
			insert_nl
1246
 
1253
 
1247
			insert_tab
1254
			insert_tab
1248
			stdcall insert_text, txt_mov
1255
			stdcall insert_text, txt_mov
1249
			insert_reg txt_edx
1256
			insert_reg txt_edx
1250
			insert_coma
1257
			insert_coma
1251
			stdcall insert_text_prop, ebx,0 ;rect color
1258
			stdcall insert_text_prop, ebx,0 ;rect color
1252
			insert_nl
1259
			insert_nl
1253
 
1260
 
1254
			insert_tab
1261
			insert_tab
1255
			stdcall insert_text, txt_i_40
1262
			stdcall insert_text, txt_i_40
1256
			insert_nl
1263
			insert_nl
1257
		@@:
1264
		@@:
1258
		cmp dword[ebx],C_DTT ;à¨á®¢ ­¨¥ ⥪áâ  ç¥à¥§ á¨áâ. ä. 4
1265
		cmp dword[ebx],C_DTT ;à¨á®¢ ­¨¥ ⥪áâ  ç¥à¥§ á¨áâ. ä. 4
1259
		jne .ob_draw_text
1266
		jne .ob_draw_text
1260
			insert_tab
1267
			insert_tab
1261
			stdcall insert_text, txt_mov
1268
			stdcall insert_text, txt_mov
1262
			insert_reg txt_eax
1269
			insert_reg txt_eax
1263
			insert_coma
1270
			insert_coma
1264
			stdcall insert_text, txt_4
1271
			stdcall insert_text, txt_4
1265
			insert_nl
1272
			insert_nl
1266
 
1273
 
1267
			insert_tab
1274
			insert_tab
1268
			stdcall insert_text, txt_mov
1275
			stdcall insert_text, txt_mov
1269
			insert_reg txt_ebx
1276
			insert_reg txt_ebx
1270
			insert_coma
1277
			insert_coma
1271
			stdcall insert_2_prop_16_bit, ebx,1,2
1278
			stdcall insert_2_prop_16_bit, ebx,1,2
1272
			insert_nl
1279
			insert_nl
1273
 
1280
 
1274
			insert_tab
1281
			insert_tab
1275
			stdcall insert_text, txt_mov
1282
			stdcall insert_text, txt_mov
1276
			insert_reg txt_ecx
1283
			insert_reg txt_ecx
1277
			insert_coma
1284
			insert_coma
1278
			stdcall insert_text_prop, ebx,3
1285
			stdcall insert_text_prop, ebx,3
1279
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ¡¨â ¤«ï áâப¨ ASCIIZ
1286
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ¡¨â ¤«ï áâப¨ ASCIIZ
1280
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ¡¨â ¤«ï ­¥ ¯à®§à ç­®£® ⥪áâ 
1287
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ¡¨â ¤«ï ­¥ ¯à®§à ç­®£® ⥪áâ 
1281
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ¡¨â ¤«ï 2-£® á¨áâ. èà¨äâ 
1288
			stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ¡¨â ¤«ï 2-£® á¨áâ. èà¨äâ 
1282
			insert_nl
1289
			insert_nl
1283
 
1290
 
1284
			insert_tab
1291
			insert_tab
1285
			stdcall insert_text, txt_mov
1292
			stdcall insert_text, txt_mov
1286
			insert_reg txt_edx
1293
			insert_reg txt_edx
1287
			insert_coma
1294
			insert_coma
1288
			stdcall insert_text, txt_txt
1295
			stdcall insert_text, txt_txt
1289
			mov edx,fp_icon
1296
			mov edx,fp_icon
1290
			stdcall get_obj_id_str, ebx,edx
1297
			stdcall get_obj_id_str, ebx,edx
1291
			stdcall insert_text,edx
1298
			stdcall insert_text,edx
1292
			insert_nl
1299
			insert_nl
1293
 
1300
 
1294
;mov esi,...
1301
;mov esi,...
1295
			test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN
1302
			test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN
1296
			jnc @f
1303
			jnc @f
1297
				insert_tab
1304
				insert_tab
1298
				stdcall insert_text, txt_mov
1305
				stdcall insert_text, txt_mov
1299
				insert_reg txt_edi
1306
				insert_reg txt_edi
1300
				insert_coma
1307
				insert_coma
1301
				stdcall insert_text_prop, ebx,4 ;梥â ä®­ 
1308
				stdcall insert_text_prop, ebx,4 ;梥â ä®­ 
1302
				insert_nl
1309
				insert_nl
1303
			@@:
1310
			@@:
1304
 
1311
 
1305
			insert_tab
1312
			insert_tab
1306
			stdcall insert_text, txt_i_40
1313
			stdcall insert_text, txt_i_40
1307
			insert_nl
1314
			insert_nl
1308
		.ob_draw_text:
1315
		.ob_draw_text:
1309
 
1316
 
1310
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1317
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1311
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1318
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
1312
 
1319
 
1313
		jmp .beg_iterat
1320
		jmp .beg_iterat
1314
	.find_no:
1321
	.find_no:
1315
	popad
1322
	popad
1316
	ret
1323
	ret
1317
endp
1324
endp
1318
 
1325
 
1319
;ᮧ¤ âì ª®¤ ®¡ê¥­¨ï ¯¥à¥¬¥­­®©
1326
;ᮧ¤ âì ª®¤ ®¡ê¥­¨ï ¯¥à¥¬¥­­®©
1320
align 4
1327
align 4
1321
proc get_code_variable, p_obj:dword,o_lev:dword
1328
proc get_code_variable, p_obj:dword,o_lev:dword
1322
	pushad
1329
	pushad
1323
		mov ebx,dword[p_obj]
1330
		mov ebx,dword[p_obj]
1324
		;0,1,2 - name,value,comment
1331
		;0,1,2 - name,value,comment
1325
 
1332
 
1326
		mov ecx,dword[o_lev]
1333
		mov ecx,dword[o_lev]
1327
		cmp cl,0
1334
		cmp cl,0
1328
		je .no_tab ;¨§¡¥£ ¥¬ § æ¨ª«¨¢ ­¨ï (0-1 = 2^32-1)
1335
		je .no_tab ;¨§¡¥£ ¥¬ § æ¨ª«¨¢ ­¨ï (0-1 = 2^32-1)
1329
		and ecx,0xff
1336
		and ecx,0xff
1330
		cld
1337
		cld
1331
		@@:
1338
		@@:
1332
			insert_tab ;ä®à¬¨à®¢ ­¨¥ ®âáâ㯠 ¯¥à¥¤ ¯¥à¥¬¥­­®©
1339
			insert_tab ;ä®à¬¨à®¢ ­¨¥ ®âáâ㯠 ¯¥à¥¤ ¯¥à¥¬¥­­®©
1333
		loop @b
1340
		loop @b
1334
		.no_tab:
1341
		.no_tab:
1335
 
1342
 
1336
		stdcall insert_text_prop, ebx,0 ;¨¬ï ¯¥à¥¬¥­­®©
1343
		stdcall insert_text_prop, ebx,0 ;¨¬ï ¯¥à¥¬¥­­®©
1337
		insert_sp
1344
		insert_sp
1338
 
1345
 
1339
		mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®â­®á¨â¥«ì­ë© ¨­¤¥ªá த¨â¥«ì᪮£® ®¡ê¥ªâ  (¢ ¯ ¬ïâ¨)
1346
		mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®â­®á¨â¥«ì­ë© ¨­¤¥ªá த¨â¥«ì᪮£® ®¡ê¥ªâ  (¢ ¯ ¬ïâ¨)
1340
		xor eax,eax
1347
		xor eax,eax
1341
		mov ax,[tree2.info_size]
1348
		mov ax,[tree2.info_size]
1342
		imul ecx,eax ;㬭®¦ ¥¬ ¨­¤¥ªá ­  à §¬¥à áâàãªâãàë
1349
		imul ecx,eax ;㬭®¦ ¥¬ ¨­¤¥ªá ­  à §¬¥à áâàãªâãàë
1343
		add ecx,[tree2.data_info] ;ecx - 㪠§ â¥«ì ¤ ­­ë¥ த¨â¥«ì᪮£® 㧫 
1350
		add ecx,[tree2.data_info] ;ecx - 㪠§ â¥«ì ¤ ­­ë¥ த¨â¥«ì᪮£® 㧫 
1344
 
1351
 
1345
		;¯à®¢¥àªã ­  ¯à ¢¨«ì­®áâì ecx ???
1352
		;¯à®¢¥àªã ­  ¯à ¢¨«ì­®áâì ecx ???
1346
 
1353
 
1347
		stdcall insert_text_prop, ecx,0 ;⨯ ¯¥à¥¬¥­­®©
1354
		stdcall insert_text_prop, ecx,0 ;⨯ ¯¥à¥¬¥­­®©
1348
		insert_sp
1355
		insert_sp
1349
		stdcall insert_text_prop, ebx,1 ;§­ ç¥­¨¥
1356
		stdcall insert_text_prop, ebx,1 ;§­ ç¥­¨¥
1350
 
1357
 
1351
		stdcall get_obj_text_col,ebx,2 ;ª®¬¬¥­â à¨©
1358
		stdcall get_obj_text_col,ebx,2 ;ª®¬¬¥­â à¨©
1352
		stdcall str_len,edx
1359
		stdcall str_len,edx
1353
		cmp eax,1
1360
		cmp eax,1
1354
		jl @f
1361
		jl @f
1355
			insert_sp
1362
			insert_sp
1356
			insert_com
1363
			insert_com
1357
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
1364
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
1358
		@@:
1365
		@@:
1359
		insert_nl
1366
		insert_nl
1360
 
1367
 
1361
	popad
1368
	popad
1362
	ret
1369
	ret
1363
endp
1370
endp
1364
 
1371
 
1365
 
1372
 
1366
 
1373
 
1367
;--- ⥪áâ®¢ë¥ ª®­áâ ­âë ---
1374
;--- ⥪áâ®¢ë¥ ª®­áâ ­âë ---
1368
txt_str_beg db 39,0
1375
txt_str_beg db 39,0
1369
txt_str_end db 39,',0',0
1376
txt_str_end db 39,',0',0
1370
txt_coma db ',',0
1377
txt_coma db ',',0
1371
txt_skob_o db '(',0
1378
txt_skob_o db '(',0
1372
txt_skob_c db ')',0
1379
txt_skob_c db ')',0
1373
txt_skob_fo db '{',0 ;᪮¡ª  䨣ãà­ ï ®âªà뢠îé ï
1380
txt_skob_fo db '{',0 ;᪮¡ª  䨣ãà­ ï ®âªà뢠îé ï
1374
txt_skob_fc db '}',0 ;᪮¡ª  䨣ãà­ ï § ªà뢠îé ï
1381
txt_skob_fc db '}',0 ;᪮¡ª  䨣ãà­ ï § ªà뢠îé ï
1375
txt_i_40 db 'int 0x40',13,0
1382
txt_i_40 db 'int 0x40',13,0
1376
txt_0 db '0',0
1383
txt_0 db '0',0
1377
txt_1 db '1',0
1384
txt_1 db '1',0
1378
txt_2 db '2',0
1385
txt_2 db '2',0
1379
txt_3 db '3',0
1386
txt_3 db '3',0
1380
txt_4 db '4',0
1387
txt_4 db '4',0
1381
txt_8 db '8',0
1388
txt_8 db '8',0
1382
txt_plus db '+',0
1389
txt_plus db '+',0
1383
txt_minus db '-',0
1390
txt_minus db '-',0
1384
;txt_dol db '$',0
1391
;txt_dol db '$',0
1385
txt_nl db 13,0
1392
txt_nl db 13,0
1386
txt_com db ';',0
1393
txt_com db ';',0
1387
txt_sp db ' ',0
1394
txt_sp db ' ',0
1388
txt_tab db 9,0
1395
txt_tab db 9,0
1389
txt_br db '\',13,9,0
1396
txt_br db '\',13,9,0
1390
txt_txt db 'txt_',0
1397
txt_txt db 'txt_',0
1391
txt_db db ' db ',0
1398
txt_db db ' db ',0
1392
txt_dd db ' dd ',0
1399
txt_dd db ' dd ',0
1393
txt_rb db ' rb ',0
1400
txt_rb db ' rb ',0
1394
txt_dd_0_0 db 9,'dd 0,0',13,0
1401
txt_dd_0_0 db 9,'dd 0,0',13,0
1395
txt_mouse_dd db ', mouse_dd, ',0
1402
txt_mouse_dd db ', mouse_dd, ',0
1396
txt_times db ':',13,9,'times ',0
1403
txt_times db ':',13,9,'times ',0
1397
txt_draw_wb:
1404
txt_draw_wb:
1398
	db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
1405
	db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
1399
txt_draw_we:
1406
txt_draw_we:
1400
	db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
1407
	db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
1401
txt_sys_dir db 'system_dir_',0
1408
txt_sys_dir db 'system_dir_',0
1402
txt_lib_name db 'lib_name_',0
1409
txt_lib_name db 'lib_name_',0
1403
txt_lib_path db ' sys_path, library_path, ',0
1410
txt_lib_path db ' sys_path, library_path, ',0
1404
txt_sys_err db '‘¨á⥬­ ï ®è¨¡ª ',0
1411
txt_sys_err db '‘¨á⥬­ ï ®è¨¡ª ',0
1405
txt_ll_start db 'l_libs_start:',13,0
1412
txt_ll_start db 'l_libs_start:',13,0
1406
txt_lib db 9,'lib_',0
1413
txt_lib db 9,'lib_',0
1407
txt_ll db 'l_libs ',0
1414
txt_ll db 'l_libs ',0
1408
txt_err_m_f_lib db 'err_msg_found_lib_',0
1415
txt_err_m_f_lib db 'err_msg_found_lib_',0
1409
txt_head_l db 'head_f_l',0
1416
txt_head_l db 'head_f_l',0
1410
txt_err_m_i_lib db 'err_msg_import_',0
1417
txt_err_m_i_lib db 'err_msg_import_',0
1411
txt_head_i db 'head_f_i',0
1418
txt_head_i db 'head_f_i',0
1412
txt_ll_end db 'l_libs_end:',13,0
1419
txt_ll_end db 'l_libs_end:',13,0
1413
;txt_bit_28 db '0x10000000',0
1420
;txt_bit_28 db '0x10000000',0
1414
txt_bit_29 db '0x20000000',0
1421
txt_bit_29 db '0x20000000',0
1415
txt_bit_30 db '0x40000000',0
1422
txt_bit_30 db '0x40000000',0
1416
;txt_bit_31 db '0x80000000',0
1423
;txt_bit_31 db '0x80000000',0
1417
txt_0x33000000 db '0x33000000',0 ;tmp
-
 
1418
txt_struc db 'struc',0
1424
txt_struc db 'struc',0
1419
txt_t db 't',0
1425
txt_t db 't',0
1420
txt_met_end db '.end',0
1426
txt_met_end db '.end',0
1421
txt_ends db 'ends',13,13,0
1427
txt_ends db 'ends',13,13,0
1422
txt_mov db 'mov ',0
1428
txt_mov db 'mov ',0
1423
txt_xor db 'xor ',0
1429
txt_xor db 'xor ',0
1424
txt_or db 'or  ',0
1430
txt_or db 'or  ',0
1425
txt_cmp db 'cmp ',0
1431
txt_cmp db 'cmp ',0
1426
txt_call db 'call ',0
1432
txt_call db 'call ',0
1427
txt_jne_f db 'jne @f',0
1433
txt_jne_f db 'jne @f',0
1428
txt_a_met db '@@:',0
1434
txt_a_met db '@@:',0
1429
txt_ah db 'ah',0
1435
txt_ah db 'ah',0
1430
txt_eax db 'eax',0
1436
txt_eax db 'eax',0
1431
txt_ebx db 'ebx',0
1437
txt_ebx db 'ebx',0
1432
txt_ecx db 'ecx',0
1438
txt_ecx db 'ecx',0
1433
txt_edx db 'edx',0
1439
txt_edx db 'edx',0
1434
txt_edi db 'edi',0
1440
txt_edi db 'edi',0
1435
txt_esi db 'esi',0
1441
txt_esi db 'esi',0
1436
txt_align_4 db 'align 4',13,0
1442
txt_align_4 db 'align 4',13,0
1437
txt_d_poi db ':',0
1443
txt_d_poi db ':',0
1438
txt_ret db 'ret',13,0
1444
txt_ret db 'ret',13,0
1439
txt_shl_16 db ' shl 16',0
1445
txt_shl_16 db ' shl 16',0
-
 
1446
txt_shl_24 db ' shl 24',0
1440
txt_std_mouse_ed:
1447
txt_std_mouse_ed:
1441
	db 9,'stdcall [edit_box_mouse], ',0
1448
	db 9,'stdcall [edit_box_mouse], ',0
1442
txt_std_init_cb:
1449
txt_std_init_cb:
1443
	db 9,'init_checkboxes2 check_boxes,check_boxes_end',13,0
1450
	db 9,'init_checkboxes2 check_boxes,check_boxes_end',13,0
1444
txt_std_mouse_cb:
1451
txt_std_mouse_cb:
1445
	db 9,'stdcall [check_box_mouse], ',0
1452
	db 9,'stdcall [check_box_mouse], ',0
1446
txt_std_key_ed:
1453
txt_std_key_ed:
1447
	db 9,'stdcall [edit_box_key], ',0
1454
	db 9,'stdcall [edit_box_key], ',0
1448
txt_incl:
1455
txt_incl:
1449
	db 'include ',0
1456
	db 'include ',0
1450
 
1457
 
1451
txt_cbox db ' check_box2',0
1458
txt_cbox db ' check_box2',0
1452
txt_cb_b db 13,'check_boxes:',0
1459
txt_cb_b db 13,'check_boxes:',0
1453
txt_cb_e db 'check_boxes_end:',13,0
1460
txt_cb_e db 'check_boxes_end:',13,0
1454
 
1461
 
1455
txt_ebox db ' edit_box',0
1462
txt_ebox db ' edit_box',0
1456
txt_editb_draw db 9,'stdcall [edit_box_draw], ',0
1463
txt_editb_draw db 9,'stdcall [edit_box_draw], ',0
1457
txt_cbox_draw db 9,'stdcall [check_box_draw], ',0
1464
txt_cbox_draw db 9,'stdcall [check_box_draw], ',0
1458
 
1465
 
1459
;­ ç «® ä㭪樨 ª­®¯®ª
1466
;­ ç «® ä㭪樨 ª­®¯®ª
1460
txt_but_beg db 'align 4',13,'button:',13,9,'mcall 17',13,0
1467
txt_but_beg db 'align 4',13,'button:',13,9,'mcall 17',13,0
1461
txt_but_mid db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,0
1468
txt_but_mid db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,0
1462
;ª®­¥æ ä㭪樨 ª­®¯®ª (§ ¢¥à襭¨¥ ¯à®£à ¬ë)
1469
;ª®­¥æ ä㭪樨 ª­®¯®ª (§ ¢¥à襭¨¥ ¯à®£à ¬ë)
1463
txt_but_end db 9,'mcall -1',13,0
1470
txt_but_end db 9,'mcall -1',13,0
1464
 
1471
 
1465
txt_key_1:
1472
txt_key_1:
1466
db 'align 4',13,'key:',13,9,'mcall 2',13
1473
db 'align 4',13,'key:',13,9,'mcall 2',13
1467
txt_key_2:
1474
txt_key_2:
1468
db 9,'jmp still',13
1475
db 9,'jmp still',13
1469
txt_key_3:
1476
txt_key_3:
1470
 
1477
 
1471
;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
1478
;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
1472
;output:
1479
;output:
1473
; txt_buf - áâப  á ­®¬¥à®¬ ®¡ê¥ªâ 
1480
; txt_buf - áâப  á ­®¬¥à®¬ ®¡ê¥ªâ 
1474
align 4
1481
align 4
1475
proc get_obj_id_str, p_obj:dword, txt_buf:dword
1482
proc get_obj_id_str, p_obj:dword, txt_buf:dword
1476
	push eax ecx edx
1483
	push eax ecx edx
1477
	mov eax,dword[p_obj]
1484
	mov eax,dword[p_obj]
1478
	sub eax,[tree2.data_info]
1485
	sub eax,[tree2.data_info]
1479
	xor edx,edx
1486
	xor edx,edx
1480
	xor ecx,ecx
1487
	xor ecx,ecx
1481
	mov cx,word[tree2.info_size]
1488
	mov cx,word[tree2.info_size]
1482
	div ecx
1489
	div ecx
1483
 
1490
 
1484
	mov edx,dword[txt_buf]
1491
	mov edx,dword[txt_buf]
1485
	mov byte[edx],0
1492
	mov byte[edx],0
1486
	stdcall str_cat_value,edx,eax
1493
	stdcall str_cat_value,edx,eax
1487
	pop edx ecx eax
1494
	pop edx ecx eax
1488
	ret
1495
	ret
1489
endp
1496
endp
1490
 
1497
 
1491
;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
1498
;¯®«ãç ¥¬ ¯®à浪®¢ë© ­®¬¥à ®¡ê¥ªâ  ®â­®á¨â¥«ì­® ¯ ¬ïâ¨ í«¥¬¥­â  tree2
1492
;output:
1499
;output:
1493
; eax - ­®¬¥à ®¡ê¥ªâ 
1500
; eax - ­®¬¥à ®¡ê¥ªâ 
1494
align 4
1501
align 4
1495
proc get_obj_id, p_obj:dword
1502
proc get_obj_id, p_obj:dword
1496
	push ecx edx
1503
	push ecx edx
1497
	mov eax,dword[p_obj]
1504
	mov eax,dword[p_obj]
1498
	sub eax,[tree2.data_info]
1505
	sub eax,[tree2.data_info]
1499
	xor edx,edx
1506
	xor edx,edx
1500
	xor ecx,ecx
1507
	xor ecx,ecx
1501
	mov cx,word[tree2.info_size]
1508
	mov cx,word[tree2.info_size]
1502
	div ecx
1509
	div ecx
1503
	pop edx ecx
1510
	pop edx ecx
1504
	ret
1511
	ret
1505
endp
1512
endp
1506
 
1513
 
1507
;--- ⥪áâ®¢ë¥ ä㭪樨 ---
1514
;--- ⥪áâ®¢ë¥ ä㭪樨 ---
1508
 
1515
 
1509
;¢ë¡¨à ¥¬ áâப㠨§ ¬ á¨¢ , ¯® 㪠§ ­­®¬ã ¨­¤¥ªáã
1516
;¢ë¡¨à ¥¬ áâப㠨§ ¬ á¨¢ , ¯® 㪠§ ­­®¬ã ¨­¤¥ªáã
1510
;input:
1517
;input:
1511
; str - 㪠§ â¥«ì ­  ¬ á¨¢ áâப
1518
; str - 㪠§ â¥«ì ­  ¬ á¨¢ áâப
1512
; ind - ¨­¤¥ªá ¨áª®¬®© áâப¨
1519
; ind - ¨­¤¥ªá ¨áª®¬®© áâப¨
1513
;output:
1520
;output:
1514
; edi - 㪠§ â¥«ì ­  ­ ©¤¥­ãî áâபã
1521
; edi - 㪠§ â¥«ì ­  ­ ©¤¥­ãî áâபã
1515
align 4
1522
align 4
1516
proc get_string_by_ind, str:dword, ind:dword
1523
proc get_string_by_ind, str:dword, ind:dword
1517
push eax ebx ecx
1524
push eax ebx ecx
1518
	mov edi,[str]
1525
	mov edi,[str]
1519
	mov ebx,[ind]
1526
	mov ebx,[ind]
1520
	xor al,al ;0 - ᨬ¢®« ª®­æ  áâப¨
1527
	xor al,al ;0 - ᨬ¢®« ª®­æ  áâப¨
1521
	@@:
1528
	@@:
1522
		cmp ebx,0
1529
		cmp ebx,0
1523
		jle @f ;¥á«¨ ­ ©¤¥­  áâப  á 㪠§ ­­ë¬ ¨­¤¥ªá®¬
1530
		jle @f ;¥á«¨ ­ ©¤¥­  áâப  á 㪠§ ­­ë¬ ¨­¤¥ªá®¬
1524
		xor ecx,ecx
1531
		xor ecx,ecx
1525
		dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
1532
		dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â
1526
		cld
1533
		cld
1527
		repne scasb ;¨é¥¬ ª®­¥æ áâப¨ (al=0)
1534
		repne scasb ;¨é¥¬ ª®­¥æ áâப¨ (al=0)
1528
		cmp byte[edi],0
1535
		cmp byte[edi],0
1529
		je @f ;¥á«¨ á«¥¤ãî饩 áâப¨ ­¥â ¢ë室 ¨§ 横« 
1536
		je @f ;¥á«¨ á«¥¤ãî饩 áâப¨ ­¥â ¢ë室 ¨§ 横« 
1530
		dec ebx
1537
		dec ebx
1531
		jmp @b
1538
		jmp @b
1532
	@@:
1539
	@@:
1533
pop ecx ebx eax
1540
pop ecx ebx eax
1534
	ret
1541
	ret
1535
endp
1542
endp
1536
 
1543
 
1537
align 4
1544
align 4
1538
proc mem_clear, mem:dword, len:dword
1545
proc mem_clear, mem:dword, len:dword
1539
	push eax ecx edi
1546
	push eax ecx edi
1540
	cld
1547
	cld
1541
	xor al,al
1548
	xor al,al
1542
	mov edi, dword[mem]
1549
	mov edi, dword[mem]
1543
	mov ecx, dword[len]
1550
	mov ecx, dword[len]
1544
	repne stosb
1551
	repne stosb
1545
	pop edi ecx eax
1552
	pop edi ecx eax
1546
	ret
1553
	ret
1547
endp
1554
endp
1548
 
1555
 
1549
align 4
1556
align 4
1550
proc str_cat, str1:dword, str2:dword
1557
proc str_cat, str1:dword, str2:dword
1551
	push eax ecx edi esi
1558
	push eax ecx edi esi
1552
	mov esi,dword[str2]
1559
	mov esi,dword[str2]
1553
	stdcall str_len,esi
1560
	stdcall str_len,esi
1554
	mov ecx,eax
1561
	mov ecx,eax
1555
	inc ecx
1562
	inc ecx
1556
	mov edi,dword[str1]
1563
	mov edi,dword[str1]
1557
	stdcall str_len,edi
1564
	stdcall str_len,edi
1558
	add edi,eax
1565
	add edi,eax
1559
	cld
1566
	cld
1560
	repne movsb
1567
	repne movsb
1561
	pop esi edi ecx eax
1568
	pop esi edi ecx eax
1562
	ret
1569
	ret
1563
endp
1570
endp
1564
 
1571
 
1565
align 4
1572
align 4
1566
proc str_cat_value, str1:dword, value:dword
1573
proc str_cat_value, str1:dword, value:dword
1567
	pushad
1574
	pushad
1568
	mov edi,[str1]
1575
	mov edi,[str1]
1569
	stdcall str_len,edi
1576
	stdcall str_len,edi
1570
	add edi,eax
1577
	add edi,eax
1571
	mov eax,[value]
1578
	mov eax,[value]
1572
	call tl_convert_to_str
1579
	call tl_convert_to_str
1573
	popad
1580
	popad
1574
	ret
1581
	ret
1575
endp
1582
endp
1576
 
1583
 
1577
;output:
1584
;output:
1578
; eax = strlen
1585
; eax = strlen
1579
align 4
1586
align 4
1580
proc str_len, str1:dword
1587
proc str_len, str1:dword
1581
	mov eax,[str1]
1588
	mov eax,[str1]
1582
	@@:
1589
	@@:
1583
		cmp byte[eax],0
1590
		cmp byte[eax],0
1584
		je @f
1591
		je @f
1585
		inc eax
1592
		inc eax
1586
		jmp @b
1593
		jmp @b
1587
	@@:
1594
	@@:
1588
	sub eax,[str1]
1595
	sub eax,[str1]
1589
	ret
1596
	ret
1590
endp
1597
endp
1591
 
1598
 
1592
;input:
1599
;input:
1593
; eax = value
1600
; eax = value
1594
; edi = string buffer
1601
; edi = string buffer
1595
align 4
1602
align 4
1596
tl_convert_to_str:
1603
tl_convert_to_str:
1597
	pushad
1604
	pushad
1598
	stdcall mem_clear,edi,12
1605
	stdcall mem_clear,edi,12
1599
	call .str
1606
	call .str
1600
	popad
1607
	popad
1601
	ret
1608
	ret
1602
 
1609
 
1603
align 4
1610
align 4
1604
.str:
1611
.str:
1605
	mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1612
	mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
1606
		;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢室­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1613
		;¯à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢室­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© 
1607
	cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1614
	cmp eax,ecx  ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
1608
	jb @f
1615
	jb @f
1609
		xor edx,edx ;®ç¨áâ¨âì edx
1616
		xor edx,edx ;®ç¨áâ¨âì edx
1610
		div ecx     ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1617
		div ecx     ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
1611
		push edx    ;¯®«®¦¨âì ¢ á⥪
1618
		push edx    ;¯®«®¦¨âì ¢ á⥪
1612
		;dec edi    ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1619
		;dec edi    ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
1613
		call .str   ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1620
		call .str   ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
1614
		pop eax
1621
		pop eax
1615
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1622
	@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
1616
	or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1623
	or al,0x30  ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥  祬 ¤¢¥ ¢ëè¥ 
1617
	stosb	    ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1624
	stosb	    ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
1618
	ret
1625
	ret