Subversion Repositories Kolibri OS

Rev

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

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