Subversion Repositories Kolibri OS

Rev

Rev 3465 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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