Subversion Repositories Kolibri OS

Rev

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

Rev 1698 Rev 1705
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
macro insert_tab
49
macro insert_tab
50
{
50
{
51
	stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor
51
	stdcall [ted_text_add], tedit0,txt_tab,1,ted_opt_ed_move_cursor
52
}
52
}
53
macro insert_br
53
macro insert_br
54
{
54
{
55
	stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor
55
	stdcall [ted_text_add], tedit0,txt_br,3,ted_opt_ed_move_cursor
56
}
56
}
57
macro insert_a_met
57
macro insert_a_met
58
{
58
{
59
	stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor
59
	stdcall [ted_text_add], tedit0,txt_a_met,3,ted_opt_ed_move_cursor
60
}
60
}
61
macro insert_0
61
macro insert_0
62
{
62
{
63
	stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor
63
	stdcall [ted_text_add], tedit0,txt_0,1,ted_opt_ed_move_cursor
64
}
64
}
65
macro insert_plus
65
macro insert_plus
66
{
66
{
67
	stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor
67
	stdcall [ted_text_add], tedit0,txt_plus,1,ted_opt_ed_move_cursor
68
}
68
}
69
macro insert_xor
69
macro insert_xor
70
{
70
{
71
	stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor
71
	stdcall [ted_text_add], tedit0,txt_xor,4,ted_opt_ed_move_cursor
72
}
72
}
73
macro insert_cmp
73
macro insert_cmp
74
{
74
{
75
	stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor
75
	stdcall [ted_text_add], tedit0,txt_cmp,4,ted_opt_ed_move_cursor
76
}
76
}
77
macro insert_reg reg_name
77
macro insert_reg reg_name
78
{
78
{
79
	stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor
79
	stdcall [ted_text_add], tedit0,reg_name,3,ted_opt_ed_move_cursor
80
}
80
}
81
macro insert_reg8 reg_name
81
macro insert_reg8 reg_name
82
{
82
{
83
	stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
83
	stdcall [ted_text_add], tedit0,reg_name,2,ted_opt_ed_move_cursor
84
}
84
}
85
macro insert_i65p
85
macro insert_i65p
86
{
86
{
87
	stdcall [ted_text_add], tedit0,txt_i65p,7,ted_opt_ed_move_cursor
87
	stdcall [ted_text_add], tedit0,txt_i65p,7,ted_opt_ed_move_cursor
88
}
88
}
89
 
89
 
90
 
90
 
91
;
91
;
92
macro insert_but_beg
92
macro insert_but_beg
93
{
93
{
94
	stdcall [ted_text_add], tedit0,txt_but_1,txt_but_2-txt_but_1,ted_opt_ed_move_cursor
94
	stdcall [ted_text_add], tedit0,txt_but_1,txt_but_2-txt_but_1,ted_opt_ed_move_cursor
95
}
95
}
96
macro insert_but_end
96
macro insert_but_end
97
{
97
{
98
	stdcall [ted_text_add], tedit0,txt_but_2,txt_but_3-txt_but_2,ted_opt_ed_move_cursor
98
	stdcall [ted_text_add], tedit0,txt_but_2,txt_but_3-txt_but_2,ted_opt_ed_move_cursor
99
}
99
}
100
;
100
;
101
macro insert_key_beg
101
macro insert_key_beg
102
{
102
{
103
	stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor
103
	stdcall [ted_text_add], tedit0,txt_key_1,txt_key_2-txt_key_1,ted_opt_ed_move_cursor
104
}
104
}
105
macro insert_key_end
105
macro insert_key_end
106
{
106
{
107
	stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor
107
	stdcall [ted_text_add], tedit0,txt_key_2,txt_key_3-txt_key_2,ted_opt_ed_move_cursor
108
}
108
}
109
 
109
 
110
macro insert_d_poi
110
macro insert_d_poi
111
{
111
{
112
	stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor
112
	stdcall [ted_text_add], tedit0,txt_d_poi,1,ted_opt_ed_move_cursor
113
}
113
}
114
macro insert_ret
114
macro insert_ret
115
{
115
{
116
	stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor
116
	stdcall [ted_text_add], tedit0,txt_ret,4,ted_opt_ed_move_cursor
117
}
117
}
118
 
118
 
119
 
119
 
120
align 4
120
align 4
121
but_code_gen:
121
but_code_gen:
122
	call code_gen
122
	call code_gen
123
	cmp byte[show_mode],1 ;óñëîâèå âèäèìîñòè òåêñòîâîãî îêíà
123
	cmp byte[show_mode],1 ;óñëîâèå âèäèìîñòè òåêñòîâîãî îêíà
124
	jne @f
124
	jne @f
125
		stdcall [ted_draw], tedit0
125
		stdcall [ted_draw], tedit0
126
	@@:
126
	@@:
127
	ret
127
	ret
128
 
128
 
129
;ôóíêöèÿ ñîçäàþùàÿ êîä âñåãî ôàéëà
129
;ôóíêöèÿ ñîçäàþùàÿ êîä âñåãî ôàéëà
130
align 4
130
align 4
131
code_gen:
131
code_gen:
132
	stdcall [ted_clear], tedit0,1
132
	stdcall [ted_clear], tedit0,1
133
pushad
133
pushad
134
	stdcall dword[tl_node_poi_get_info], 0,tree2
134
	stdcall dword[tl_node_poi_get_info], 0,tree2
135
	pop esi
135
	pop esi
136
	xor bl,bl
136
	xor bl,bl
137
	call code_gen_obj
137
	call code_gen_obj
138
	stdcall [ted_text_add], tedit0,\
138
	stdcall [ted_text_add], tedit0,\
139
		txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;äîáàâëÿåì ñèìâîë íîâîé ñòðîêè ñ îïöèåé ted_opt_ed_change_time äëÿ âîçìîæíîñòè ñîõðàíåíèÿ ôàéëà
139
		txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;äîáàâëÿåì ñèìâîë íîâîé ñòðîêè ñ îïöèåé ted_opt_ed_change_time äëÿ âîçìîæíîñòè ñîõðàíåíèÿ ôàéëà
140
	stdcall [ted_init_scroll_bars], tedit0, 4 ;ìåíÿåì ðàçìåðû ñêðîëëèíãîâ
140
	stdcall [ted_init_scroll_bars], tedit0, 4 ;ìåíÿåì ðàçìåðû ñêðîëëèíãîâ
141
popad
141
popad
142
	ret
142
	ret
143
 
143
 
144
;input:
144
;input:
145
; bl - óðîâåíü îáúåêòà
145
; bl - óðîâåíü îáúåêòà
146
; esi - óêàçàòåëü íà óçåë
146
; esi - óêàçàòåëü íà óçåë
147
align 4
147
align 4
148
code_gen_obj:
148
code_gen_obj:
149
push ebx
149
push ebx
150
	.beg_iterat:
150
	.beg_iterat:
151
		cmp esi,0
151
		cmp esi,0
152
		je .find_no
152
		je .find_no
153
 
153
 
154
		cmp byte[esi+2],bl ;lev
154
		cmp byte[esi+2],bl ;lev
155
		jl .find_no
155
		jl .find_no
156
 
156
 
157
		stdcall dword[tl_node_poi_get_data], esi,tree2
157
		stdcall dword[tl_node_poi_get_data], esi,tree2
158
		pop eax ;ïîëó÷àåì äàííûå óçëà
158
		pop eax ;ïîëó÷àåì äàííûå óçëà
159
		cmp eax,0
159
		cmp eax,0
160
		je .find_no
160
		je .find_no
161
 
161
 
162
		cmp byte[eax],C_ST
162
		cmp byte[eax],C_ST
163
		jne @f
163
		jne @f
164
			stdcall get_code_struct,eax ;îáðàáîòêà îáúåêòà
164
			stdcall get_code_struct,eax ;îáðàáîòêà îáúåêòà
165
			stdcall dword[tl_node_poi_get_next_info], esi,tree2
165
			stdcall dword[tl_node_poi_get_next_info], esi,tree2
166
			pop ecx ;ïåðåõîäèì ê ñëåäóùåìó óçëó
166
			pop ecx ;ïåðåõîäèì ê ñëåäóùåìó óçëó
167
			cmp ecx,0
167
			cmp ecx,0
168
			je .find_no
168
			je .find_no
169
			cmp byte[ecx+2],bl ;lev
169
			cmp byte[ecx+2],bl ;lev
170
			jle .end_st
170
			jle .end_st
171
				mov esi,ecx
171
				mov esi,ecx
172
				push bx
172
				push bx
173
					mov bl,byte[esi+2]
173
					mov bl,byte[esi+2]
174
					call code_gen_obj ;ðåêóðñèâíûé âûçîâ äî÷åðíèõ îáúåêòîâ
174
					call code_gen_obj ;ðåêóðñèâíûé âûçîâ äî÷åðíèõ îáúåêòîâ
175
				pop bx
175
				pop bx
176
			.end_st:
176
			.end_st:
177
			stdcall [ted_text_add], tedit0,txt_ends,6,ted_opt_ed_move_cursor
177
			stdcall [ted_text_add], tedit0,txt_ends,6,ted_opt_ed_move_cursor
178
			jmp .beg_iterat
178
			jmp .beg_iterat
179
		@@:
179
		@@:
180
		cmp byte[eax],C_TT
180
		cmp byte[eax],C_TT
181
		jne @f
181
		jne @f
182
			stdcall get_code_text,eax ;îáðàáîòêà îáúåêòà
182
			stdcall get_code_text,eax ;îáðàáîòêà îáúåêòà
183
		@@:
183
		@@:
184
		cmp byte[eax],C_IN
184
		cmp byte[eax],C_IN
185
		jne @f
185
		jne @f
186
			stdcall get_code_incl,eax ;îáðàáîòêà îáúåêòà
186
			stdcall get_code_incl,eax ;îáðàáîòêà îáúåêòà
187
		@@:
187
		@@:
188
		cmp byte[eax],C_CO
188
		cmp byte[eax],C_CO
189
		jne @f
189
		jne @f
190
			stdcall get_code_comment,eax ;îáðàáîòêà îáúåêòà
190
			stdcall get_code_comment,eax ;îáðàáîòêà îáúåêòà
191
		@@:
191
		@@:
192
		cmp byte[eax],C_VR
192
		cmp byte[eax],C_VR
193
		jne @f
193
		jne @f
194
			stdcall get_code_variable,eax,ebx ;îáðàáîòêà îáúåêòà
194
			stdcall get_code_variable,eax,ebx ;îáðàáîòêà îáúåêòà
195
		@@:
195
		@@:
196
		cmp byte[eax],C_WI
196
		cmp byte[eax],C_WI
197
		jne @f
197
		jne @f
198
			stdcall get_code_window,eax ;îáðàáîòêà îáúåêòà
198
			stdcall get_code_window,eax ;îáðàáîòêà îáúåêòà
199
		@@:
199
		@@:
200
		cmp byte[eax],C_AC
200
		cmp byte[eax],C_AC
201
		jne @f
201
		jne @f
202
			stdcall get_code_auto,eax ;îáðàáîòêà îáúåêòà
202
			stdcall get_code_auto,eax ;îáðàáîòêà îáúåêòà
203
		@@:
203
		@@:
204
		cmp byte[eax],C_KE ;êëàâèàòóðà
204
		cmp byte[eax],C_KE ;êëàâèàòóðà
205
		jne @f
205
		jne @f
206
			stdcall get_code_key,eax ;îáðàáîòêà îáúåêòà
206
			stdcall get_code_key,eax ;îáðàáîòêà îáúåêòà
207
		@@:
207
		@@:
208
 
208
 
209
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
209
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
210
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
210
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
211
 
211
 
212
		jmp .beg_iterat
212
		jmp .beg_iterat
213
	.find_no:
213
	.find_no:
214
pop ebx
214
pop ebx
215
	ret
215
	ret
216
 
216
 
217
 
217
 
218
align 4
218
align 4
219
proc get_code_text, p_obj:dword
219
proc get_code_text, p_obj:dword
220
	pushad
220
	pushad
221
		insert_nl
221
		insert_nl
222
		mov ebx,dword[p_obj]
222
		mov ebx,dword[p_obj]
223
		stdcall get_obj_text_col,ebx,0
223
		stdcall get_obj_text_col,ebx,0
224
		stdcall str_len,edx
224
		stdcall str_len,edx
225
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
225
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
226
		insert_nl
226
		insert_nl
227
	popad
227
	popad
228
	ret
228
	ret
229
endp
229
endp
230
 
230
 
231
align 4
231
align 4
232
proc get_code_auto, p_obj:dword
232
proc get_code_auto, p_obj:dword
233
	pushad
233
	pushad
234
		insert_nl
234
		insert_nl
235
		mov ebx,dword[p_obj]
235
		mov ebx,dword[p_obj]
236
		mov ecx,dword[ebx+u_object.modif-u_object]
236
		mov ecx,dword[ebx+u_object.modif-u_object]
237
		bt ecx,BIT_MOD_ACM
237
		bt ecx,BIT_MOD_ACM
238
		jae @f
238
		jae @f
239
			;àâòîìàòè÷åñêèå ñîáûòèÿ îò ìûøè
239
			;àâòîìàòè÷åñêèå ñîáûòèÿ îò ìûøè
240
			call get_code_auto_m
240
			call get_code_auto_m
241
		@@:
241
		@@:
242
		bt ecx,BIT_MOD_ABU
242
		bt ecx,BIT_MOD_ABU
243
		jae @f
243
		jae @f
244
			;ñîçäàíèå ôóíêöèè button
244
			;ñîçäàíèå ôóíêöèè button
245
			insert_but_beg
245
			insert_but_beg
246
			call get_code_auto_but ;êîäû âûçîâà êíîïîê
246
			call get_code_auto_but ;êîäû âûçîâà êíîïîê
247
			insert_but_end
247
			insert_but_end
248
			call get_code_a_but_fun ;êîäû ôóíêöèé, âûçûâàåìûõ ïðè íàæàòèè êíîïîê
248
			call get_code_a_but_fun ;êîäû ôóíêöèé, âûçûâàåìûõ ïðè íàæàòèè êíîïîê
249
		@@:
249
		@@:
250
		bt ecx,BIT_MOD_ACD
250
		bt ecx,BIT_MOD_ACD
251
		jae @f
251
		jae @f
252
			call get_code_auto_data_el
252
			call get_code_auto_data_el
253
			call get_code_auto_data_dop
253
			call get_code_auto_data_dop
-
 
254
			call get_code_auto_data_libs
254
		@@:
255
		@@:
255
		insert_nl
256
		insert_nl
256
	popad
257
	popad
257
	ret
258
	ret
258
endp
259
endp
259
 
260
 
260
 
261
 
261
align 4
262
align 4
262
proc get_code_auto_m
263
proc get_code_auto_m
263
	pushad
264
	pushad
264
	stdcall dword[tl_node_poi_get_info], 0,tree2
265
	stdcall dword[tl_node_poi_get_info], 0,tree2
265
	pop esi
266
	pop esi
266
	.beg_iterat:
267
	.beg_iterat:
267
		cmp esi,0
268
		cmp esi,0
268
		je .find_no
269
		je .find_no
269
 
270
 
270
		stdcall dword[tl_node_poi_get_data], esi,tree2
271
		stdcall dword[tl_node_poi_get_data], esi,tree2
271
		pop ebx ;ïîëó÷àåì äàííûå óçëà
272
		pop ebx ;ïîëó÷àåì äàííûå óçëà
272
		cmp ebx,0
273
		cmp ebx,0
273
		je .find_no
274
		je .find_no
274
 
275
 
275
		cmp byte[ebx],C_ED
276
		cmp byte[ebx],C_ED
276
		jne @f
277
		jne @f
277
			stdcall insert_text, txt_std_mouse_ed
278
			stdcall insert_text, txt_std_mouse_ed
278
			;insert_sp
279
			;insert_sp
279
			stdcall get_obj_text_col,ebx,0
280
			stdcall get_obj_text_col,ebx,0
280
			stdcall str_len,edx
281
			stdcall str_len,edx
281
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
282
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
282
			insert_nl
283
			insert_nl
283
		@@:
284
		@@:
284
		cmp byte[ebx],C_CB
285
		cmp byte[ebx],C_CB
285
		jne @f
286
		jne @f
286
			stdcall insert_text, txt_std_mouse_cb
287
			stdcall insert_text, txt_std_mouse_cb
287
			;insert_sp
288
			;insert_sp
288
			stdcall get_obj_text_col,ebx,0
289
			stdcall get_obj_text_col,ebx,0
289
			stdcall str_len,edx
290
			stdcall str_len,edx
290
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
291
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
291
			insert_nl
292
			insert_nl
292
		@@:
293
		@@:
293
 
294
 
294
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
295
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
295
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
296
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
296
 
297
 
297
		jmp .beg_iterat
298
		jmp .beg_iterat
298
	.find_no:
299
	.find_no:
299
	popad
300
	popad
300
	ret
301
	ret
301
endp
302
endp
302
 
303
 
303
;ñîçäàíèå äàííûõ (ñòðóêòóð îáúåêòîâ)
304
;ñîçäàíèå äàííûõ (ñòðóêòóð îáúåêòîâ)
304
align 4
305
align 4
305
proc get_code_auto_data_el
306
proc get_code_auto_data_el
306
	pushad
307
	pushad
307
	insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
308
	insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
308
 
309
 
309
	stdcall dword[tl_node_poi_get_info], 0,tree2
310
	stdcall dword[tl_node_poi_get_info], 0,tree2
310
	pop esi
311
	pop esi
311
	.beg_iterat:
312
	.beg_iterat:
312
		cmp esi,0
313
		cmp esi,0
313
		je .find_no
314
		je .find_no
314
 
315
 
315
		stdcall dword[tl_node_poi_get_data], esi,tree2
316
		stdcall dword[tl_node_poi_get_data], esi,tree2
316
		pop ebx ;ïîëó÷àåì äàííûå óçëà
317
		pop ebx ;ïîëó÷àåì äàííûå óçëà
317
		cmp ebx,0
318
		cmp ebx,0
318
		je .find_no
319
		je .find_no
319
 
320
 
320
		cmp byte[ebx],C_ED
321
		cmp byte[ebx],C_ED
321
		jne @f
322
		jne @f
322
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
323
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
323
			stdcall get_obj_text_col,ebx,0
324
			stdcall insert_text_prop, ebx,0
324
			stdcall str_len,edx
-
 
325
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
-
 
326
			stdcall insert_text, txt_ebox
325
			stdcall insert_text, txt_ebox
327
 
326
 
328
			mov ecx,1
327
			mov ecx,1
329
			.prop:
328
			.prop:
330
				insert_sp
329
				insert_sp
331
				stdcall get_obj_text_col,ebx,ecx
330
				stdcall insert_text_prop, ebx,ecx
332
				stdcall str_len,edx
-
 
333
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
-
 
334
				insert_coma
331
				insert_coma
335
				inc ecx
332
				inc ecx
336
				cmp ecx,10
333
				cmp ecx,10
337
			jl .prop
334
			jl .prop
338
 
335
 
339
			insert_br
336
			insert_br
340
			;insert_tab
337
			;insert_tab
341
			stdcall insert_text, txt_txt
338
			stdcall insert_text, txt_txt
342
 
339
 
343
			mov edx,fp_icon
340
			mov edx,fp_icon
344
			stdcall get_obj_id, ebx,edx
341
			stdcall get_obj_id, ebx,edx
345
			stdcall str_len,edx ;eax = len(fp_icon)
342
			stdcall str_len,edx ;eax = len(fp_icon)
346
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
343
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
347
 
344
 
348
			;insert_coma
345
			;insert_coma
349
			;insert_sp
346
			;insert_sp
350
			stdcall insert_text, txt_mouse_dd
347
			stdcall insert_text, txt_mouse_dd
351
			insert_nl
348
			insert_nl
352
		@@:
349
		@@:
353
		;cmp byte[ebx],C_CB
350
		;cmp byte[ebx],C_CB
354
		;jne @f
351
		;jne @f
355
		;@@:
352
		;@@:
356
 
353
 
357
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
354
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
358
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
355
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
359
 
356
 
360
		jmp .beg_iterat
357
		jmp .beg_iterat
361
	.find_no:
358
	.find_no:
362
	popad
359
	popad
363
	ret
360
	ret
364
endp
361
endp
-
 
362
 
-
 
363
;äàííûå äëÿ áèáëèîòåê
-
 
364
align 4
-
 
365
proc get_code_auto_data_libs
-
 
366
	pushad
-
 
367
	insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
-
 
368
 
-
 
369
	stdcall dword[tl_node_poi_get_info], 0,tree2
-
 
370
	pop esi
-
 
371
	.beg_iterat:
-
 
372
		cmp esi,0
-
 
373
		je .find_no
-
 
374
 
-
 
375
		stdcall dword[tl_node_poi_get_data], esi,tree2
-
 
376
		pop ebx ;ïîëó÷àåì äàííûå óçëà
-
 
377
		cmp ebx,0
-
 
378
		je .find_no
-
 
379
 
-
 
380
		cmp byte[ebx],C_LIB
-
 
381
		jne @f
-
 
382
			;0,1,2,3,4,5 - l_nam,s_dir,i_met,...
-
 
383
			stdcall insert_text, txt_align_4
-
 
384
			stdcall insert_text_prop, ebx,2
-
 
385
			stdcall insert_text, txt_d_poi
-
 
386
			insert_nl
-
 
387
 
-
 
388
			call get_code_lib_table
-
 
389
		@@:
-
 
390
 
-
 
391
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
-
 
392
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
-
 
393
 
-
 
394
		jmp .beg_iterat
-
 
395
	.find_no:
-
 
396
	popad
-
 
397
	ret
-
 
398
endp
-
 
399
 
-
 
400
;input:
-
 
401
; esi
-
 
402
align 4
-
 
403
get_code_lib_table:
-
 
404
pushad
-
 
405
	mov bl,byte[esi+2]
-
 
406
	mov edi,esi
-
 
407
	stdcall dword[tl_node_poi_get_data], esi,tree2
-
 
408
	pop edx ;ïîëó÷åíèå äàííûõ ðîäèòåëüñêîãî îáúåêòà
-
 
409
	cmp edx,0
-
 
410
	je @f
-
 
411
	@@:
-
 
412
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
-
 
413
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
-
 
414
		cmp esi,0
-
 
415
		je @f
-
 
416
		cmp byte[esi+2],bl ;lev
-
 
417
		jle @f
-
 
418
			stdcall dword[tl_node_poi_get_data], esi,tree2
-
 
419
			pop ecx ;ïîëó÷àåì äàííûå óçëà
-
 
420
			cmp ecx,0
-
 
421
			je @f
-
 
422
			cmp byte[ecx],C_IFN
-
 
423
			jne @b
-
 
424
				;âñòàâêà óêàçàòåëÿ íà ôóíêöèþ
-
 
425
				insert_tab
-
 
426
				stdcall insert_text_prop, ecx,0
-
 
427
				stdcall insert_text, txt_dd
-
 
428
				stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè
-
 
429
				stdcall insert_text_prop, ecx,0
-
 
430
				insert_nl
-
 
431
			jmp @b
-
 
432
	@@:
-
 
433
	stdcall insert_text, txt_dd_0_0
-
 
434
	mov esi,edi
-
 
435
	@@:
-
 
436
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
-
 
437
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
-
 
438
		cmp esi,0
-
 
439
		je @f
-
 
440
		cmp byte[esi+2],bl ;lev
-
 
441
		jle @f
-
 
442
			stdcall dword[tl_node_poi_get_data], esi,tree2
-
 
443
			pop ecx ;ïîëó÷àåì äàííûå óçëà
-
 
444
			cmp ecx,0
-
 
445
			je @f
-
 
446
			cmp byte[ecx],C_IFN
-
 
447
			jne @b
-
 
448
				;âñòàâêà èìåíè èìïîðòèðîâàííîé ôóíêöèè
-
 
449
				insert_tab
-
 
450
				stdcall insert_text_prop, edx,3 ;ïðèñòàâêà ê ôóíêöèè
-
 
451
				stdcall insert_text_prop, ecx,0
-
 
452
				stdcall insert_text, txt_db
-
 
453
				stdcall insert_text, txt_str_beg
-
 
454
				stdcall insert_text_prop, ecx,1
-
 
455
				stdcall insert_text, txt_str_end
-
 
456
				insert_nl
-
 
457
			jmp @b
-
 
458
	@@:
-
 
459
popad
-
 
460
	ret
365
 
461
 
366
;
462
;
367
align 4
463
align 4
368
proc get_code_auto_data_dop
464
proc get_code_auto_data_dop
369
	pushad
465
	pushad
370
	insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
466
	insert_nl ;îòñòóï äëÿ ôîðìàòèðîâàíèÿ
371
 
467
 
372
	stdcall dword[tl_node_poi_get_info], 0,tree2
468
	stdcall dword[tl_node_poi_get_info], 0,tree2
373
	pop esi
469
	pop esi
374
	.beg_iterat:
470
	.beg_iterat:
375
		cmp esi,0
471
		cmp esi,0
376
		je .find_no
472
		je .find_no
377
 
473
 
378
		stdcall dword[tl_node_poi_get_data], esi,tree2
474
		stdcall dword[tl_node_poi_get_data], esi,tree2
379
		pop ebx ;ïîëó÷àåì äàííûå óçëà
475
		pop ebx ;ïîëó÷àåì äàííûå óçëà
380
		cmp ebx,0
476
		cmp ebx,0
381
		je .find_no
477
		je .find_no
382
 
478
 
383
		cmp byte[ebx],C_ED
479
		cmp byte[ebx],C_ED
384
		jne @f
480
		jne @f
385
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
481
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
386
			stdcall insert_text, txt_txt
482
			stdcall insert_text, txt_txt
387
 
483
 
388
			mov edx,fp_icon
484
			mov edx,fp_icon
389
			stdcall get_obj_id, ebx,edx
485
			stdcall get_obj_id, ebx,edx
390
			stdcall str_len,edx ;eax = len(fp_icon)
486
			stdcall str_len,edx ;eax = len(fp_icon)
391
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
487
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
392
			stdcall insert_text, txt_times
488
			stdcall insert_text, txt_times
393
 
489
 
394
			stdcall get_obj_text_col,ebx,9
490
			stdcall get_obj_text_col,ebx,9
395
			stdcall str_len,edx
491
			stdcall str_len,edx
396
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
492
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
397
 
493
 
398
			insert_plus
494
			insert_plus
399
			stdcall insert_text, txt_2
495
			stdcall insert_text, txt_2
400
			stdcall insert_text, txt_db
496
			stdcall insert_text, txt_db
401
			insert_0
497
			insert_0
402
			insert_nl
498
			insert_nl
403
		@@:
499
		@@:
404
		;cmp byte[ebx],C_CB
500
		;cmp byte[ebx],C_CB
405
		;jne @f
501
		;jne @f
406
		;@@:
502
		;@@:
407
 
503
 
408
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
504
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
409
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
505
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
410
 
506
 
411
		jmp .beg_iterat
507
		jmp .beg_iterat
412
	.find_no:
508
	.find_no:
413
	popad
509
	popad
414
	ret
510
	ret
415
endp
511
endp
416
 
512
 
417
;ñâÿçûâàåì êíîïêè ñ ôóíêöèÿìè
513
;ñâÿçûâàåì êíîïêè ñ ôóíêöèÿìè
418
align 4
514
align 4
419
proc get_code_auto_but
515
proc get_code_auto_but
420
	pushad
516
	pushad
421
	stdcall dword[tl_node_poi_get_info], 0,tree2
517
	stdcall dword[tl_node_poi_get_info], 0,tree2
422
	pop esi
518
	pop esi
423
	.beg_iterat:
519
	.beg_iterat:
424
		cmp esi,0
520
		cmp esi,0
425
		je .find_no
521
		je .find_no
426
 
522
 
427
		stdcall dword[tl_node_poi_get_data], esi,tree2
523
		stdcall dword[tl_node_poi_get_data], esi,tree2
428
		pop ebx ;ïîëó÷àåì äàííûå óçëà
524
		pop ebx ;ïîëó÷àåì äàííûå óçëà
429
		cmp ebx,0
525
		cmp ebx,0
430
		je .find_no
526
		je .find_no
431
 
527
 
432
		cmp byte[ebx],C_BU
528
		cmp byte[ebx],C_BU
433
		jne @f
529
		jne @f
434
			insert_tab
530
			insert_tab
435
			insert_cmp
531
			insert_cmp
436
			insert_reg8 txt_ah
532
			insert_reg8 txt_ah
437
			insert_coma
533
			insert_coma
438
			stdcall get_obj_text_col,ebx,0
534
			stdcall get_obj_text_col,ebx,0
439
			stdcall str_len,edx
535
			stdcall str_len,edx
440
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
536
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
441
			insert_nl
537
			insert_nl
442
			insert_tab
538
			insert_tab
443
			stdcall insert_text, txt_jne_f
539
			stdcall insert_text, txt_jne_f
444
			insert_nl
540
			insert_nl
445
			insert_tab
541
			insert_tab
446
			insert_tab
542
			insert_tab
447
			stdcall insert_text, txt_call
543
			stdcall insert_text, txt_call
448
			stdcall get_obj_text_col,ebx,6
544
			stdcall get_obj_text_col,ebx,6
449
			stdcall str_len,edx
545
			stdcall str_len,edx
450
			cmp eax,1
546
			cmp eax,1
451
			jl .c_fun
547
			jl .c_fun
452
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
548
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
453
			.c_fun:
549
			.c_fun:
454
			insert_nl
550
			insert_nl
455
			insert_tab
551
			insert_tab
456
			insert_a_met ;@@:
552
			insert_a_met ;@@:
457
			insert_nl
553
			insert_nl
458
		@@:
554
		@@:
459
 
555
 
460
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
556
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
461
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
557
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
462
 
558
 
463
		jmp .beg_iterat
559
		jmp .beg_iterat
464
	.find_no:
560
	.find_no:
465
	popad
561
	popad
466
	ret
562
	ret
467
endp
563
endp
468
 
564
 
469
;áåðåì êîäû äëÿ ôóíêöèé íàæàòèé íà êíîïêè
565
;áåðåì êîäû äëÿ ôóíêöèé íàæàòèé íà êíîïêè
470
align 4
566
align 4
471
proc get_code_a_but_fun
567
proc get_code_a_but_fun
472
	pushad
568
	pushad
473
	stdcall dword[tl_node_poi_get_info], 0,tree2
569
	stdcall dword[tl_node_poi_get_info], 0,tree2
474
	pop esi
570
	pop esi
475
	.beg_iterat:
571
	.beg_iterat:
476
		cmp esi,0
572
		cmp esi,0
477
		je .find_no
573
		je .find_no
478
 
574
 
479
		stdcall dword[tl_node_poi_get_data], esi,tree2
575
		stdcall dword[tl_node_poi_get_data], esi,tree2
480
		pop ebx ;ïîëó÷àåì äàííûå óçëà
576
		pop ebx ;ïîëó÷àåì äàííûå óçëà
481
		cmp ebx,0
577
		cmp ebx,0
482
		je .find_no
578
		je .find_no
483
 
579
 
484
		cmp byte[ebx],C_BU
580
		cmp byte[ebx],C_BU
485
		jne @f
581
		jne @f
486
			stdcall get_obj_text_col,ebx,6
582
			stdcall get_obj_text_col,ebx,6
487
			stdcall str_len,edx
583
			stdcall str_len,edx
488
			cmp eax,1
584
			cmp eax,1
489
			jl .c_fun
585
			jl .c_fun
490
				insert_nl
586
				insert_nl
491
				stdcall insert_text, txt_align_4
587
				stdcall insert_text, txt_align_4
492
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
588
				stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
493
				insert_d_poi
589
				insert_d_poi
494
				insert_nl
590
				insert_nl
495
				insert_tab
591
				insert_tab
496
				insert_ret
592
				insert_ret
497
			.c_fun:
593
			.c_fun:
498
		@@:
594
		@@:
499
 
595
 
500
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
596
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
501
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
597
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
502
 
598
 
503
		jmp .beg_iterat
599
		jmp .beg_iterat
504
	.find_no:
600
	.find_no:
505
	popad
601
	popad
506
	ret
602
	ret
507
endp
603
endp
508
 
604
 
509
align 4
605
align 4
510
proc get_code_key, p_obj:dword
606
proc get_code_key, p_obj:dword
511
	pushad
607
	pushad
512
		insert_nl
608
		insert_nl
513
		mov ebx,dword[p_obj]
609
		mov ebx,dword[p_obj]
514
 
610
 
515
		insert_key_beg
611
		insert_key_beg
516
		call get_code_funct_key ;êîäû âûçîâà êíîïîê
612
		call get_code_funct_key ;êîäû âûçîâà êíîïîê
517
		insert_key_end
613
		insert_key_end
518
 
614
 
519
		insert_nl
615
		insert_nl
520
	popad
616
	popad
521
	ret
617
	ret
522
endp
618
endp
523
 
619
 
524
align 4
620
align 4
525
proc get_code_funct_key
621
proc get_code_funct_key
526
	pushad
622
	pushad
527
	stdcall dword[tl_node_poi_get_info], 0,tree2
623
	stdcall dword[tl_node_poi_get_info], 0,tree2
528
	pop esi
624
	pop esi
529
	.beg_iterat:
625
	.beg_iterat:
530
		cmp esi,0
626
		cmp esi,0
531
		je .find_no
627
		je .find_no
532
 
628
 
533
		stdcall dword[tl_node_poi_get_data], esi,tree2
629
		stdcall dword[tl_node_poi_get_data], esi,tree2
534
		pop ebx ;ïîëó÷àåì äàííûå óçëà
630
		pop ebx ;ïîëó÷àåì äàííûå óçëà
535
		cmp ebx,0
631
		cmp ebx,0
536
		je .find_no
632
		je .find_no
537
 
633
 
538
		cmp byte[ebx],C_ED
634
		cmp byte[ebx],C_ED
539
		jne @f
635
		jne @f
540
			stdcall insert_text, txt_std_key_ed
636
			stdcall insert_text, txt_std_key_ed
541
			stdcall insert_text_prop,ebx,0
637
			stdcall insert_text_prop,ebx,0
542
			insert_nl
638
			insert_nl
543
		@@:
639
		@@:
544
 
640
 
545
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
641
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
546
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
642
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
547
 
643
 
548
		jmp .beg_iterat
644
		jmp .beg_iterat
549
	.find_no:
645
	.find_no:
550
	popad
646
	popad
551
	ret
647
	ret
552
endp
648
endp
553
 
649
 
554
;îáúåêòû ïîäêëþ÷åíèÿ ôàéëîâ 'include ...'
650
;îáúåêòû ïîäêëþ÷åíèÿ ôàéëîâ 'include ...'
555
align 4
651
align 4
556
proc get_code_incl, p_obj:dword
652
proc get_code_incl, p_obj:dword
557
	pushad
653
	pushad
558
		stdcall insert_text, txt_incl
654
		stdcall insert_text, txt_incl
559
		mov ebx,dword[p_obj]
655
		mov ebx,dword[p_obj]
560
		stdcall insert_text_prop,ebx,0
656
		stdcall insert_text_prop,ebx,0
561
 
657
 
562
		stdcall get_obj_text_col,ebx,1
658
		stdcall get_obj_text_col,ebx,1
563
		stdcall str_len,edx
659
		stdcall str_len,edx
564
		cmp eax,1
660
		cmp eax,1
565
		jl @f
661
		jl @f
566
			insert_sp
662
			insert_sp
567
			insert_com
663
			insert_com
568
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
664
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
569
		@@:
665
		@@:
570
 
666
 
571
		insert_nl
667
		insert_nl
572
	popad
668
	popad
573
	ret
669
	ret
574
endp
670
endp
575
 
671
 
576
align 4
672
align 4
577
proc get_code_comment, p_obj:dword
673
proc get_code_comment, p_obj:dword
578
	insert_com
674
	insert_com
579
	stdcall insert_text_prop, dword[p_obj],0
675
	stdcall insert_text_prop, dword[p_obj],0
580
	insert_nl
676
	insert_nl
581
	ret
677
	ret
582
endp
678
endp
583
 
679
 
584
;ñîçäàåì êîä çàäàíèÿ îêíà
680
;ñîçäàåì êîä çàäàíèÿ îêíà
585
align 4
681
align 4
586
proc get_code_window, p_obj:dword
682
proc get_code_window, p_obj:dword
587
	pushad
683
	pushad
588
		mov ebx,dword[p_obj]
684
		mov ebx,dword[p_obj]
589
		;2,3,4,5,6 - x,y,w,h,col_bkg
685
		;2,3,4,5,6 - x,y,w,h,col_bkg
590
 
686
 
591
		stdcall insert_text, txt_draw_wb
687
		stdcall insert_text, txt_draw_wb
592
 
688
 
593
		insert_tab
689
		insert_tab
594
		insert_xor
690
		insert_xor
595
		insert_reg txt_eax
691
		insert_reg txt_eax
596
		insert_coma
692
		insert_coma
597
		insert_reg txt_eax
693
		insert_reg txt_eax
598
		insert_nl
694
		insert_nl
599
 
695
 
600
		;mov ebx,...
696
		;mov ebx,...
601
		insert_tab
697
		insert_tab
602
		stdcall insert_text, txt_mov
698
		stdcall insert_text, txt_mov
603
		insert_reg txt_ebx
699
		insert_reg txt_ebx
604
		insert_coma
700
		insert_coma
605
		stdcall insert_text_prop, ebx,2
701
		stdcall insert_text_prop, ebx,2
606
		insert_i65p
702
		insert_i65p
607
		stdcall insert_text_prop, ebx,4
703
		stdcall insert_text_prop, ebx,4
608
		insert_nl
704
		insert_nl
609
 
705
 
610
		;mov ecx,...
706
		;mov ecx,...
611
		insert_tab
707
		insert_tab
612
		stdcall insert_text, txt_mov
708
		stdcall insert_text, txt_mov
613
		insert_reg txt_ecx
709
		insert_reg txt_ecx
614
		insert_coma
710
		insert_coma
615
		stdcall insert_text_prop, ebx,3
711
		stdcall insert_text_prop, ebx,3
616
		insert_i65p
712
		insert_i65p
617
		stdcall insert_text_prop, ebx,5
713
		stdcall insert_text_prop, ebx,5
618
		insert_nl
714
		insert_nl
619
 
715
 
620
		;mov edx,...
716
		;mov edx,...
621
		insert_tab
717
		insert_tab
622
		stdcall insert_text, txt_mov
718
		stdcall insert_text, txt_mov
623
		insert_reg txt_edx
719
		insert_reg txt_edx
624
		insert_coma
720
		insert_coma
625
		stdcall insert_text_prop, ebx,6
721
		stdcall insert_text_prop, ebx,6
626
		insert_nl
722
		insert_nl
627
 
723
 
628
		;or edx,0x33000000
724
		;or edx,0x33000000
-
 
725
		insert_tab
629
		stdcall insert_text, txt_or
726
		stdcall insert_text, txt_or
630
		insert_reg txt_edx
727
		insert_reg txt_edx
631
		insert_coma
728
		insert_coma
632
		stdcall insert_text, txt_0x33000000
729
		stdcall insert_text, txt_0x33000000
633
		insert_nl
730
		insert_nl
634
 
731
 
635
		;mov edi,...
732
		;mov edi,...
636
		insert_tab
733
		insert_tab
637
		stdcall insert_text, txt_mov
734
		stdcall insert_text, txt_mov
638
		insert_reg txt_edi
735
		insert_reg txt_edi
639
		insert_coma
736
		insert_coma
640
		stdcall insert_text_prop, ebx,0
737
		stdcall insert_text_prop, ebx,0
641
		insert_nl
738
		insert_nl
642
 
739
 
643
		insert_tab
740
		insert_tab
644
		stdcall insert_text, txt_i_40
741
		stdcall insert_text, txt_i_40
-
 
742
		insert_nl
645
 
743
 
646
		call get_code_draw_obj
744
		call get_code_draw_obj
647
 
745
 
648
		stdcall insert_text, txt_draw_we
746
		stdcall insert_text, txt_draw_we ;êîä çàâåðøàþùèé ôóíêöèþ ðèñîâàíèÿ
649
	popad
747
	popad
650
	ret
748
	ret
651
endp
749
endp
652
 
750
 
653
 
751
 
654
;ôîðìèðóåì âûçîâ ôóíêöèé äëÿ ðèñîâàíèÿ îáúåêòîâ
752
;ôîðìèðóåì âûçîâ ôóíêöèé äëÿ ðèñîâàíèÿ îáúåêòîâ
655
align 4
753
align 4
656
proc get_code_draw_obj
754
proc get_code_draw_obj
657
	pushad
755
	pushad
658
	stdcall dword[tl_node_poi_get_info], 0,tree2
756
	stdcall dword[tl_node_poi_get_info], 0,tree2
659
	pop esi
757
	pop esi
660
	.beg_iterat:
758
	.beg_iterat:
661
		cmp esi,0
759
		cmp esi,0
662
		je .find_no
760
		je .find_no
663
 
761
 
664
		stdcall dword[tl_node_poi_get_data], esi,tree2
762
		stdcall dword[tl_node_poi_get_data], esi,tree2
665
		pop ebx ;ïîëó÷àåì äàííûå óçëà
763
		pop ebx ;ïîëó÷àåì äàííûå óçëà
666
		cmp ebx,0
764
		cmp ebx,0
667
		je .find_no
765
		je .find_no
668
 
766
 
669
		cmp byte[ebx],C_ED
767
		cmp byte[ebx],C_ED
670
		jne @f
768
		jne @f
671
			stdcall insert_text, txt_editb_draw
769
			stdcall insert_text, txt_editb_draw
672
			stdcall insert_text_prop, ebx,0
770
			stdcall insert_text_prop, ebx,0
673
			insert_nl
771
			insert_nl
674
		@@:
772
		@@:
675
		cmp byte[ebx],C_CB
773
		cmp byte[ebx],C_CB
676
		jne @f
774
		jne @f
677
			stdcall insert_text, txt_cbox_draw
775
			stdcall insert_text, txt_cbox_draw
678
			stdcall insert_text_prop, ebx,0
776
			stdcall insert_text_prop, ebx,0
679
			insert_nl
777
			insert_nl
680
		@@:
778
		@@:
681
		cmp byte[ebx],C_BU
779
		cmp byte[ebx],C_BU
682
		jne @f
780
		jne @f
683
			insert_tab
781
			insert_tab
684
			stdcall insert_text, txt_mov
782
			stdcall insert_text, txt_mov
685
			insert_reg txt_eax
783
			insert_reg txt_eax
686
			insert_coma
784
			insert_coma
687
			stdcall insert_text, txt_8
785
			stdcall insert_text, txt_8
688
			insert_nl
786
			insert_nl
689
 
787
 
690
			insert_tab
788
			insert_tab
691
			stdcall insert_text, txt_mov
789
			stdcall insert_text, txt_mov
692
			insert_reg txt_ebx
790
			insert_reg txt_ebx
693
			insert_coma
791
			insert_coma
694
			stdcall insert_text_prop, ebx,1
792
			stdcall insert_text_prop, ebx,1
695
			insert_i65p
793
			insert_i65p
696
			stdcall insert_text_prop, ebx,3
794
			stdcall insert_text_prop, ebx,3
697
			insert_nl
795
			insert_nl
698
 
796
 
699
			insert_tab
797
			insert_tab
700
			stdcall insert_text, txt_mov
798
			stdcall insert_text, txt_mov
701
			insert_reg txt_ecx
799
			insert_reg txt_ecx
702
			insert_coma
800
			insert_coma
703
			stdcall insert_text_prop, ebx,2
801
			stdcall insert_text_prop, ebx,2
704
			insert_i65p
802
			insert_i65p
705
			stdcall insert_text_prop, ebx,4
803
			stdcall insert_text_prop, ebx,4
706
			insert_nl
804
			insert_nl
707
 
805
 
708
			insert_tab
806
			insert_tab
709
			stdcall insert_text, txt_mov
807
			stdcall insert_text, txt_mov
710
			insert_reg txt_edx
808
			insert_reg txt_edx
711
			insert_coma
809
			insert_coma
712
			stdcall insert_text_prop, ebx,0
810
			stdcall insert_text_prop, ebx,0
713
			insert_nl
811
			insert_nl
714
 
812
 
715
			insert_tab
813
			insert_tab
716
			stdcall insert_text, txt_or
814
			stdcall insert_text, txt_or
717
			insert_reg txt_edx
815
			insert_reg txt_edx
718
			insert_coma
816
			insert_coma
719
			stdcall insert_text, txt_but_create
817
			stdcall insert_text, txt_but_create
720
			insert_nl
818
			insert_nl
721
 
819
 
722
			insert_tab
820
			insert_tab
723
			stdcall insert_text, txt_mov
821
			stdcall insert_text, txt_mov
724
			insert_reg txt_esi
822
			insert_reg txt_esi
725
			insert_coma
823
			insert_coma
726
			stdcall insert_text_prop, ebx,5 ;button color
824
			stdcall insert_text_prop, ebx,5 ;button color
727
			insert_nl
825
			insert_nl
728
 
826
 
729
			insert_tab
827
			insert_tab
730
			stdcall insert_text, txt_i_40
828
			stdcall insert_text, txt_i_40
731
			insert_nl
829
			insert_nl
732
		@@:
830
		@@:
733
		cmp byte[ebx],C_RE
831
		cmp byte[ebx],C_RE
734
		jne @f
832
		jne @f
735
			insert_tab
833
			insert_tab
736
			stdcall insert_text, txt_mov
834
			stdcall insert_text, txt_mov
737
			insert_reg txt_eax
835
			insert_reg txt_eax
738
			insert_coma
836
			insert_coma
739
			stdcall insert_text, txt_1
837
			stdcall insert_text, txt_1
740
			stdcall insert_text, txt_3
838
			stdcall insert_text, txt_3
741
			insert_nl
839
			insert_nl
742
 
840
 
743
			insert_tab
841
			insert_tab
744
			stdcall insert_text, txt_mov
842
			stdcall insert_text, txt_mov
745
			insert_reg txt_ebx
843
			insert_reg txt_ebx
746
			insert_coma
844
			insert_coma
747
			stdcall insert_text_prop, ebx,1
845
			stdcall insert_text_prop, ebx,1
748
			insert_i65p
846
			insert_i65p
749
			stdcall insert_text_prop, ebx,3
847
			stdcall insert_text_prop, ebx,3
750
			insert_nl
848
			insert_nl
751
 
849
 
752
			insert_tab
850
			insert_tab
753
			stdcall insert_text, txt_mov
851
			stdcall insert_text, txt_mov
754
			insert_reg txt_ecx
852
			insert_reg txt_ecx
755
			insert_coma
853
			insert_coma
756
			stdcall insert_text_prop, ebx,2
854
			stdcall insert_text_prop, ebx,2
757
			insert_i65p
855
			insert_i65p
758
			stdcall insert_text_prop, ebx,4
856
			stdcall insert_text_prop, ebx,4
759
			insert_nl
857
			insert_nl
760
 
858
 
761
			insert_tab
859
			insert_tab
762
			stdcall insert_text, txt_mov
860
			stdcall insert_text, txt_mov
763
			insert_reg txt_edx
861
			insert_reg txt_edx
764
			insert_coma
862
			insert_coma
765
			stdcall insert_text_prop, ebx,0 ;rect color
863
			stdcall insert_text_prop, ebx,0 ;rect color
766
			insert_nl
864
			insert_nl
767
 
865
 
768
			insert_tab
866
			insert_tab
769
			stdcall insert_text, txt_i_40
867
			stdcall insert_text, txt_i_40
770
			insert_nl
868
			insert_nl
771
		@@:
869
		@@:
772
 
870
 
773
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
871
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
774
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
872
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
775
 
873
 
776
		jmp .beg_iterat
874
		jmp .beg_iterat
777
	.find_no:
875
	.find_no:
778
	popad
876
	popad
779
	ret
877
	ret
780
endp
878
endp
781
 
879
 
782
 
880
 
783
 
881
 
784
align 4
882
align 4
785
proc get_code_struct, p_obj:dword
883
proc get_code_struct, p_obj:dword
786
	pushad
884
	pushad
787
		mov ebx,dword[p_obj]
885
		mov ebx,dword[p_obj]
788
		;0 - name
886
		;0 - name
789
 
887
 
790
		stdcall [ted_text_add], tedit0,txt_struct,7,ted_opt_ed_move_cursor
888
		stdcall [ted_text_add], tedit0,txt_struct,7,ted_opt_ed_move_cursor
791
		stdcall get_obj_text_col,ebx,0
889
		stdcall insert_text_prop, ebx,0
792
		stdcall str_len,edx
-
 
793
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
-
 
794
		insert_nl
890
		insert_nl
795
 
891
 
796
	popad
892
	popad
797
	ret
893
	ret
798
endp
894
endp
799
 
895
 
800
;ñîçäàòü êîä îáúÿâëåíèÿ ïåðåìåííîé
896
;ñîçäàòü êîä îáúÿâëåíèÿ ïåðåìåííîé
801
align 4
897
align 4
802
proc get_code_variable, p_obj:dword,o_lev:dword
898
proc get_code_variable, p_obj:dword,o_lev:dword
803
	pushad
899
	pushad
804
		mov ebx,dword[p_obj]
900
		mov ebx,dword[p_obj]
805
		;0,1,2 - name,value,comment
901
		;0,1,2 - name,value,comment
806
 
902
 
807
		mov ecx,dword[o_lev]
903
		mov ecx,dword[o_lev]
808
		cmp cl,0
904
		cmp cl,0
809
		je .no_tab ;èçáåãàåì çàöèêëèâàíèÿ (0-1 = 2^32-1)
905
		je .no_tab ;èçáåãàåì çàöèêëèâàíèÿ (0-1 = 2^32-1)
810
		and cx,0xff
906
		and cx,0xff
811
		cld
907
		cld
812
		@@:
908
		@@:
813
			insert_tab ;ôîðìèðîâàíèå îòñòóïà ïåðåä ïåðåìåííîé
909
			insert_tab ;ôîðìèðîâàíèå îòñòóïà ïåðåä ïåðåìåííîé
814
		loop @b
910
		loop @b
815
		.no_tab:
911
		.no_tab:
816
 
-
 
817
		stdcall get_obj_text_col,ebx,0
-
 
818
		stdcall str_len,edx
912
 
819
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
913
		stdcall insert_text_prop, ebx,0 ;èìÿ ïåðåìåííîé
820
		insert_sp
914
		insert_sp
821
 
915
 
822
		mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè)
916
		mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - îòíîñèòåëüíûé èíäåêñ ðîäèòåëüñêîãî îáúåêòà (â ïàìÿòè)
823
		xor eax,eax
917
		xor eax,eax
824
		mov ax,[tree2.info_size]
918
		mov ax,[tree2.info_size]
825
		imul ecx,eax ;óìíîæàåì èíäåêñ íà ðàçìåð ñòðóêòóðû
919
		imul ecx,eax ;óìíîæàåì èíäåêñ íà ðàçìåð ñòðóêòóðû
826
		add ecx,[tree2.data_info] ;ecx - óêàçàòåëü äàííûå ðîäèòåëüñêîãî óçëà
920
		add ecx,[tree2.data_info] ;ecx - óêàçàòåëü äàííûå ðîäèòåëüñêîãî óçëà
827
 
921
 
828
		;ïðîâåðêó íà ïðàâèëüíîñòü ecx ???
922
		;ïðîâåðêó íà ïðàâèëüíîñòü ecx ???
829
 
-
 
830
		stdcall get_obj_text_col,ecx,0
-
 
831
		stdcall str_len,edx
923
 
832
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
924
		stdcall insert_text_prop, ecx,0 ;òèï ïåðåìåííîé
-
 
925
		insert_sp
833
		insert_sp
-
 
834
 
-
 
835
		stdcall get_obj_text_col,ebx,1
-
 
836
		stdcall str_len,edx
-
 
837
		stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
926
		stdcall insert_text_prop, ebx,1 ;çíà÷åíèå
838
 
927
 
839
		stdcall get_obj_text_col,ebx,2
928
		stdcall get_obj_text_col,ebx,2 ;êîììåíòàðèé
840
		stdcall str_len,edx
929
		stdcall str_len,edx
841
		cmp eax,1
930
		cmp eax,1
842
		jl @f
931
		jl @f
843
			insert_sp
932
			insert_sp
844
			insert_com
933
			insert_com
845
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
934
			stdcall [ted_text_add], tedit0,edx,eax,ted_opt_ed_move_cursor
846
		@@:
935
		@@:
847
		insert_nl
936
		insert_nl
848
 
937
 
849
	popad
938
	popad
850
	ret
939
	ret
851
endp
940
endp
852
 
941
 
853
 
942
 
854
 
943
 
855
;--- òåêñòîâûå êîíñòàíòû ---
944
;--- òåêñòîâûå êîíñòàíòû ---
-
 
945
txt_str_beg db 39,0
-
 
946
txt_str_end db 39,',0',0
856
txt_coma db ',',0
947
txt_coma db ',',0
857
txt_i_40 db 'int 0x40',13,0
948
txt_i_40 db 'int 0x40',13,0
858
txt_0 db '0',0
949
txt_0 db '0',0
859
txt_1 db '1',0
950
txt_1 db '1',0
860
txt_2 db '2',0
951
txt_2 db '2',0
861
txt_3 db '3',0
952
txt_3 db '3',0
862
txt_4 db '4',0
953
txt_4 db '4',0
863
txt_8 db '8',0
954
txt_8 db '8',0
864
txt_plus db '+',0
955
txt_plus db '+',0
865
txt_nl db 13,0
956
txt_nl db 13,0
866
txt_com db ';',0
957
txt_com db ';',0
867
txt_sp db ' ',0
958
txt_sp db ' ',0
868
txt_tab db 9,0
959
txt_tab db 9,0
869
txt_br db '\',13,9,0
960
txt_br db '\',13,9,0
870
txt_txt:
-
 
871
	db 'txt_',0
961
txt_txt db 'txt_',0
872
txt_db:
962
txt_db db ' db ',0
873
	db ' db ',0
963
txt_dd db ' dd ',0
874
txt_mouse_dd:
964
txt_dd_0_0 db 9,'dd 0,0',13,0
875
	db ', mouse_dd, ',0
965
txt_mouse_dd db ', mouse_dd, ',0
876
txt_times:
-
 
877
	db ':',13,9,'times ',0
966
txt_times db ':',13,9,'times ',0
878
txt_draw_wb:
967
txt_draw_wb:
879
	db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
968
	db 13,'align 4',13,'draw_window:',13,'pushad',13,9,'mcall 12,1',13,0
880
txt_draw_we:
969
txt_draw_we:
881
	db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
970
	db 9,'mcall 12,2',13,'popad',13,9,'ret',13,0
882
txt_but_create db '0x40000000',0 ;tmp
971
txt_but_create db '0x40000000',0 ;tmp
883
txt_0x33000000 db '0x33000000',0 ;tmp
972
txt_0x33000000 db '0x33000000',0 ;tmp
884
txt_struct db 'struct ',0
973
txt_struct db 'struct ',0
885
txt_ends db 'ends',13,13,0
974
txt_ends db 'ends',13,13,0
886
txt_mov db 'mov ',0
975
txt_mov db 'mov ',0
887
txt_xor db 'xor ',0
976
txt_xor db 'xor ',0
888
txt_or db 'or  ',0
977
txt_or db 'or  ',0
889
txt_cmp db 'cmp ',0
978
txt_cmp db 'cmp ',0
890
txt_call db 'call ',0
979
txt_call db 'call ',0
891
txt_jne_f db 'jne @f',0
980
txt_jne_f db 'jne @f',0
892
txt_a_met db '@@:',0
981
txt_a_met db '@@:',0
893
txt_ah db 'ah',0
982
txt_ah db 'ah',0
894
txt_eax db 'eax',0
983
txt_eax db 'eax',0
895
txt_ebx db 'ebx',0
984
txt_ebx db 'ebx',0
896
txt_ecx db 'ecx',0
985
txt_ecx db 'ecx',0
897
txt_edx db 'edx',0
986
txt_edx db 'edx',0
898
txt_edi db 'edi',0
987
txt_edi db 'edi',0
899
txt_esi db 'esi',0
988
txt_esi db 'esi',0
900
txt_align_4 db 'align 4',13,0
989
txt_align_4 db 'align 4',13,0
901
txt_d_poi db ':',0
990
txt_d_poi db ':',0
902
txt_ret db 'ret',13,0
991
txt_ret db 'ret',13,0
903
txt_i65p db '*65536+',0
992
txt_i65p db '*65536+',0
904
txt_std_mouse_ed:
993
txt_std_mouse_ed:
905
	db 9,'stdcall [edit_box_mouse], ',0
994
	db 9,'stdcall [edit_box_mouse], ',0
906
txt_std_mouse_cb:
995
txt_std_mouse_cb:
907
	db 9,'stdcall [check_box_mouse], ',0
996
	db 9,'stdcall [check_box_mouse], ',0
908
txt_std_key_ed:
997
txt_std_key_ed:
909
	db 9,'stdcall [edit_box_key], ',0
998
	db 9,'stdcall [edit_box_key], ',0
910
txt_incl:
999
txt_incl:
911
	db 'include ',0
1000
	db 'include ',0
912
txt_ebox:
1001
txt_ebox:
913
	db ' edit_box'
1002
	db ' edit_box',0
914
	.end: db 0
-
 
915
txt_editb_draw:
1003
txt_editb_draw:
916
	db 9,'stdcall [edit_box_draw], ',0
1004
	db 9,'stdcall [edit_box_draw], ',0
917
txt_cbox_draw:
1005
txt_cbox_draw:
918
	db 9,'stdcall [check_box_draw], ',0
1006
	db 9,'stdcall [check_box_draw], ',0
919
 
1007
 
920
txt_but_1:
1008
txt_but_1:
921
db 'align 4',13,'button:',13,9,'mcall 17',13
1009
db 'align 4',13,'button:',13,9,'mcall 17',13
922
txt_but_2:
1010
txt_but_2:
923
db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,9,'mcall -1',13
1011
db 9,'cmp ah,1',13,9,'jne still',13,'.exit:',13,9,'mcall -1',13
924
txt_but_3:
1012
txt_but_3:
925
 
1013
 
926
txt_key_1:
1014
txt_key_1:
927
db 'align 4',13,'key:',13,9,'mcall 2',13
1015
db 'align 4',13,'key:',13,9,'mcall 2',13
928
txt_key_2:
1016
txt_key_2:
929
db 9,'jmp still',13
1017
db 9,'jmp still',13
930
txt_key_3:
1018
txt_key_3:
931
 
1019
 
932
align 4
1020
align 4
933
proc get_obj_id, p_obj:dword, txt_buf:dword
1021
proc get_obj_id, p_obj:dword, txt_buf:dword
934
	push eax ecx edx
1022
	push eax ecx edx
935
	mov eax,dword[p_obj]
1023
	mov eax,dword[p_obj]
936
	sub eax,[tree2.data_info]
1024
	sub eax,[tree2.data_info]
937
	xor edx,edx
1025
	xor edx,edx
938
	xor ecx,ecx
1026
	xor ecx,ecx
939
	mov cx,word[tree2.info_size]
1027
	mov cx,word[tree2.info_size]
940
	div ecx
1028
	div ecx
941
 
1029
 
942
	mov edx,dword[txt_buf]
1030
	mov edx,dword[txt_buf]
943
	mov byte[edx],0
1031
	mov byte[edx],0
944
	stdcall str_cat_value,edx,eax
1032
	stdcall str_cat_value,edx,eax
945
	pop edx ecx eax
1033
	pop edx ecx eax
946
	ret
1034
	ret
947
endp
1035
endp
948
 
1036
 
949
;--- òåêñòîâûå ôóíêöèè ---
1037
;--- òåêñòîâûå ôóíêöèè ---
950
 
1038
 
951
align 4
1039
align 4
952
proc mem_clear, mem:dword, len:dword
1040
proc mem_clear, mem:dword, len:dword
953
	push eax ecx edi
1041
	push eax ecx edi
954
	cld
1042
	cld
955
	xor al,al
1043
	xor al,al
956
	mov edi, dword[mem]
1044
	mov edi, dword[mem]
957
	mov ecx, dword[len]
1045
	mov ecx, dword[len]
958
	repne stosb
1046
	repne stosb
959
	pop edi ecx eax
1047
	pop edi ecx eax
960
	ret
1048
	ret
961
endp
1049
endp
962
 
1050
 
963
align 4
1051
align 4
964
proc str_cat, str1:dword, str2:dword
1052
proc str_cat, str1:dword, str2:dword
965
	push eax ecx edi esi
1053
	push eax ecx edi esi
966
	mov esi,dword[str2]
1054
	mov esi,dword[str2]
967
	stdcall str_len,esi
1055
	stdcall str_len,esi
968
	mov ecx,eax
1056
	mov ecx,eax
969
	inc ecx
1057
	inc ecx
970
	mov edi,dword[str1]
1058
	mov edi,dword[str1]
971
	stdcall str_len,edi
1059
	stdcall str_len,edi
972
	add edi,eax
1060
	add edi,eax
973
	cld
1061
	cld
974
	repne movsb
1062
	repne movsb
975
	pop esi edi ecx eax
1063
	pop esi edi ecx eax
976
	ret
1064
	ret
977
endp
1065
endp
978
 
1066
 
979
align 4
1067
align 4
980
proc str_cat_value, str1:dword, value:dword
1068
proc str_cat_value, str1:dword, value:dword
981
	pushad
1069
	pushad
982
	mov edi,[str1]
1070
	mov edi,[str1]
983
	stdcall str_len,edi
1071
	stdcall str_len,edi
984
	add edi,eax
1072
	add edi,eax
985
	mov eax,[value]
1073
	mov eax,[value]
986
	call tl_convert_to_str
1074
	call tl_convert_to_str
987
	popad
1075
	popad
988
	ret
1076
	ret
989
endp
1077
endp
990
 
1078
 
991
;output:
1079
;output:
992
; eax = strlen
1080
; eax = strlen
993
align 4
1081
align 4
994
proc str_len, str1:dword
1082
proc str_len, str1:dword
995
	mov eax,[str1]
1083
	mov eax,[str1]
996
	@@:
1084
	@@:
997
		cmp byte[eax],0
1085
		cmp byte[eax],0
998
		je @f
1086
		je @f
999
		inc eax
1087
		inc eax
1000
		jmp @b
1088
		jmp @b
1001
	@@:
1089
	@@:
1002
	sub eax,[str1]
1090
	sub eax,[str1]
1003
	ret
1091
	ret
1004
endp
1092
endp
1005
 
1093
 
1006
;input:
1094
;input:
1007
; eax = value
1095
; eax = value
1008
; edi = string buffer
1096
; edi = string buffer
1009
align 4
1097
align 4
1010
tl_convert_to_str:
1098
tl_convert_to_str:
1011
	pushad
1099
	pushad
1012
	stdcall mem_clear,edi,12
1100
	stdcall mem_clear,edi,12
1013
	call .str
1101
	call .str
1014
	popad
1102
	popad
1015
	ret
1103
	ret
1016
 
1104
 
1017
align 4
1105
align 4
1018
.str:
1106
.str:
1019
	mov ecx,0x0a ;çàäàåòñÿ ñèñòåìà ñ÷èñëåíèÿ èçìåíÿþòñÿ ðåãèñòðû ebx,eax,ecx,edx âõîäíûå ïàðàìåòðû eax - ÷èñëî
1107
	mov ecx,0x0a ;çàäàåòñÿ ñèñòåìà ñ÷èñëåíèÿ èçìåíÿþòñÿ ðåãèñòðû ebx,eax,ecx,edx âõîäíûå ïàðàìåòðû eax - ÷èñëî
1020
		;ïðåðåâîä ÷èñëà â ASCII ñòðîêó âõîäíûå äàííûå ecx=ñèñòåìà ñ÷èñëåíÿ edi àäðåñ êóäà çàïèñûâàòü, áóäåì ñòðîêó, ïðè÷åì êîíåö ïåðåìåííîé 
1108
		;ïðåðåâîä ÷èñëà â ASCII ñòðîêó âõîäíûå äàííûå ecx=ñèñòåìà ñ÷èñëåíÿ edi àäðåñ êóäà çàïèñûâàòü, áóäåì ñòðîêó, ïðè÷åì êîíåö ïåðåìåííîé 
1021
	cmp eax,ecx  ;ñðàâíèòü åñëè â eax ìåíüøå ÷åì â ecx òî ïåðåéòè íà @@-1 ò.å. íà pop eax
1109
	cmp eax,ecx  ;ñðàâíèòü åñëè â eax ìåíüøå ÷åì â ecx òî ïåðåéòè íà @@-1 ò.å. íà pop eax
1022
	jb @f
1110
	jb @f
1023
		xor edx,edx ;î÷èñòèòü edx
1111
		xor edx,edx ;î÷èñòèòü edx
1024
		div ecx     ;ðàçäåëèòü - îñòàòîê â edx
1112
		div ecx     ;ðàçäåëèòü - îñòàòîê â edx
1025
		push edx    ;ïîëîæèòü â ñòåê
1113
		push edx    ;ïîëîæèòü â ñòåê
1026
		;dec edi    ;ñìåùåíèå íåîáõîäèìîå äëÿ çàïèñè ñ êîíöà ñòðîêè
1114
		;dec edi    ;ñìåùåíèå íåîáõîäèìîå äëÿ çàïèñè ñ êîíöà ñòðîêè
1027
		call .str   ;ïåðåéòè íà ñàìó ñåáÿ ò.å. âûçâàòü ñàìó ñåáÿ è òàê äî òîãî ìîìåíòà ïîêà â eax íå ñòàíåò ìåíüøå ÷åì â ecx
1115
		call .str   ;ïåðåéòè íà ñàìó ñåáÿ ò.å. âûçâàòü ñàìó ñåáÿ è òàê äî òîãî ìîìåíòà ïîêà â eax íå ñòàíåò ìåíüøå ÷åì â ecx
1028
		pop eax
1116
		pop eax
1029
	@@: ;cmp al,10 ;ïðîâåðèòü íå ìåíüøå ëè çíà÷åíèå â al ÷åì 10 (äëÿ ñèñòåìû ñ÷èñëåíÿ 10 äàííàÿ êîìàíäà - ëèøíàÿ))
1117
	@@: ;cmp al,10 ;ïðîâåðèòü íå ìåíüøå ëè çíà÷åíèå â al ÷åì 10 (äëÿ ñèñòåìû ñ÷èñëåíÿ 10 äàííàÿ êîìàíäà - ëèøíàÿ))
1030
	or al,0x30  ;äàííàÿ êîìàíäà êîðî÷å  ÷åì äâå âûøå 
1118
	or al,0x30  ;äàííàÿ êîìàíäà êîðî÷å  ÷åì äâå âûøå 
1031
	stosb	    ;çàïèñàòü ýëåìåíò èç ðåãèñòðà al â ÿ÷åêó ïàìÿòè es:edi
1119
	stosb	    ;çàïèñàòü ýëåìåíò èç ðåãèñòðà al â ÿ÷åêó ïàìÿòè es:edi
1032
	ret
1120
	ret