Subversion Repositories Kolibri OS

Rev

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

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