Subversion Repositories Kolibri OS

Rev

Rev 1720 | Rev 1732 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1720 Rev 1727
Line 1... Line 1...
1
;
1
;
2
; â ýòîì ôàéëå ñîáðàíû ôóíêöèè ñîçäàþùèå ïðîãðàìíûé êîä
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ᮧ¤ î騥 ¯à®£à ¬­ë© ª®¤
3
;
3
;
4
u_object object ;âðåìåííûé îáúåêò äëÿ çàäàíèÿ ñìåùåíèé
4
u_object object ;¢à¥¬¥­­ë© ®¡ê¥ªâ ¤«ï § ¤ ­¨ï ᬥ饭¨©
Line 5... Line 5...
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
Line 18... Line 18...
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
}
Line 22... Line 22...
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]
Line 31... Line 31...
31
	@@:
31
	@@:
32
	pop eax
32
	pop eax
33
	ret
33
	ret
34
endp
34
endp
Line 35... Line 35...
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]
Line 44... Line 44...
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
Line -... Line 48...
-
 
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
Line 57... Line 81...
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
Line 61... Line 85...
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
Line 143... Line 167...
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
Line 156... Line 180...
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 ¤«ï ¢®§¬®¦­®á⨠á®åà ­¥­¨ï ä ©« 
Line 170... Line 194...
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
Line 183... Line 207...
183
 
207
 
184
		cmp byte[esi+2],bl ;lev
208
		cmp byte[esi+2],bl ;lev
Line 185... Line 209...
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 ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
Line 189... Line 213...
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
Line 199... Line 223...
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
Line 208... Line 232...
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 ;îáðàáîòêà îáúåêòà
-
 
237
		@@:
-
 
238
		cmp dword[eax],C_INC
-
 
239
		jne @f
-
 
240
			stdcall get_code_incl,eax ;îáðàáîòêà îáúåêòà
260
			stdcall get_code_text,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
241
		@@:
261
		@@:
242
		cmp dword[eax],C_COM
262
		cmp dword[eax],C_INC
243
		jne @f
263
		jne @f
244
			stdcall get_code_comment,eax ;îáðàáîòêà îáúåêòà
264
			stdcall get_code_incl,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 ;®¡à ¡®âª  ®¡ê¥ªâ 
Line 257... Line 277...
257
		@@:
277
		@@:
258
		cmp dword[eax],C_KEY ;êëàâèàòóðà
278
		cmp dword[eax],C_KEY ;ª« ¢¨ âãà 
Line 259... Line 279...
259
		jne @f
279
		jne @f
260
			stdcall get_code_key,eax ;îáðàáîòêà îáúåêòà
280
			stdcall get_code_key,eax ;®¡à ¡®âª  ®¡ê¥ªâ 
261
		@@:
281
		@@:
262
 
282
 
Line 263... Line 283...
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
Line 273... Line 293...
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
Line 293... Line 313...
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
Line 320... Line 340...
320
			.no_check:
340
			.no_check:
Line 321... Line 341...
321
 
341
 
Line 322... Line 342...
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
Line 338... Line 358...
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
Line 355... Line 375...
355
	.beg_iterat:
375
	.beg_iterat:
356
		cmp esi,0
376
		cmp esi,0
357
		je .find_no
377
		je .find_no
Line 358... Line 378...
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
Line 362... Line 382...
362
		je .find_no
382
		je .find_no
363
 
383
 
Line 373... Line 393...
373
			stdcall insert_text_prop, ebx,0
393
			stdcall insert_text_prop, ebx,0
374
			insert_nl
394
			insert_nl
375
		@@:
395
		@@:
Line 376... Line 396...
376
 
396
 
377
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
397
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 378... Line 398...
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
Line 383... Line 403...
383
	ret
403
	ret
384
endp
404
endp
385
 
405
 
386
;ñîçäàíèå äàííûõ (ñòðóêòóð îáúåêòîâ)
406
;ᮧ¤ ­¨¥ ¤ ­­ëå (áâàãªâãà ®¡ê¥ªâ®¢)
387
align 4
407
align 4
Line 388... Line 408...
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
Line 393... Line 413...
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
Line 397... Line 417...
397
 
417
 
398
		stdcall dword[tl_node_poi_get_data], esi,tree2
418
		stdcall dword[tl_node_poi_get_data], esi,tree2
Line 422... Line 442...
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
Line 424... Line 444...
424
 
444
 
Line 425... Line 445...
425
			stdcall insert_text, txt_mouse_dd
445
			stdcall insert_text, txt_mouse_dd
-
 
446
 
-
 
447
			stdcall insert_text, txt_0 ;᢮©á⢠ editbox
-
 
448
			stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC
426
 
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
Line 432... Line 455...
432
				xchg eax,edx ;âîñòàíàâëèâàåì çíà÷åíèå edx
455
				xchg eax,edx ;¢®áâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨¥ edx
433
				stdcall insert_text, txt_coma
456
				stdcall insert_text, txt_coma
434
 
457
 
Line 457... Line 480...
457
		jne @f
480
		jne @f
458
			stdcall insert_text_label_data, ebx,0
481
			stdcall insert_text_label_data, ebx,0
459
		@@:
482
		@@:
Line 460... Line 483...
460
 
483
 
461
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
484
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 462... Line 485...
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
Line 467... Line 490...
467
	ret
490
	ret
468
endp
491
endp
469
 
492
 
470
align 4
493
align 4
Line 471... Line 494...
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
Line 476... Line 499...
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
Line 480... Line 503...
480
 
503
 
481
		stdcall dword[tl_node_poi_get_data], esi,tree2
504
		stdcall dword[tl_node_poi_get_data], esi,tree2
Line 502... Line 525...
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
-
 
507
			;stdcall insert_text, txt_bit_31
-
 
508
			;stdcall insert_text, txt_plus
529
			stdcall insert_text, txt_coma
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
Line 511... Line 532...
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
Line 516... Line 537...
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
			;ôëàãè
-
 
520
			stdcall insert_text,txt_0
-
 
521
			test_bool_prop ebx,BIT_MOD_CHE
-
 
522
			jnc @f
-
 
523
				stdcall insert_text,txt_plus
540
			;ä« £¨
524
				stdcall insert_text,txt_bit_che
-
 
525
			@@:
-
 
526
			test_bool_prop ebx,BIT_MOD_CHE_T
-
 
527
			jnc @f
-
 
528
				stdcall insert_text,txt_plus
541
			stdcall insert_text,txt_0
529
				stdcall insert_text,txt_bit_che_t
-
 
530
			@@:
-
 
531
			test_bool_prop ebx,BIT_MOD_CHE_M
-
 
532
			jnc @f
-
 
533
				stdcall insert_text,txt_plus
542
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE
534
				stdcall insert_text,txt_bit_che_m
-
 
535
			@@:
-
 
536
			test_bool_prop ebx,BIT_MOD_CHE_B
-
 
537
			jnc @f
-
 
Line 538... Line 543...
538
				stdcall insert_text,txt_plus
543
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T
539
				stdcall insert_text,txt_bit_che_b
544
			stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M
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:
Line 544... Line 549...
544
		cmp dword[ebx],C_DTT
549
		cmp dword[ebx],C_DTT
545
		jne @f
550
		jne @f
Line 546... Line 551...
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 ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
Line 551... Line 556...
551
 
556
 
552
		jmp .beg_iterat
557
		jmp .beg_iterat
553
	.find_no:
558
	.find_no:
554
	popad
559
	popad
555
	ret
560
	ret
Line 556... Line 561...
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
Line 561... Line 566...
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
Line 565... Line 570...
565
	pop esi
570
	pop esi
566
	.beg_iterat:
571
	.beg_iterat:
Line 613... Line 618...
613
 
618
 
614
			insert_nl
619
			insert_nl
Line 615... Line 620...
615
		@@:
620
		@@:
616
 
621
 
Line 617... Line 622...
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:
Line 622... Line 627...
622
	popad
627
	popad
623
	ret
628
	ret
624
endp
629
endp
625
 
630
 
626
;äàííûå äëÿ áèáëèîòåê
631
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
Line 627... Line 632...
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
 
Line 632... Line 637...
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
Line 636... Line 641...
636
		je .find_no
641
		je .find_no
637
 
642
 
Line 679... Line 684...
679
 
684
 
680
			insert_nl
685
			insert_nl
Line 681... Line 686...
681
		@@:
686
		@@:
682
 
687
 
Line 683... Line 688...
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:
Line 688... Line 693...
688
	popad
693
	popad
689
	ret
694
	ret
690
endp
695
endp
691
 
696
 
692
;äàííûå äëÿ áèáëèîòåê
697
;¤ ­­ë¥ ¤«ï ¡¨¡«¨®â¥ª
Line 693... Line 698...
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
 
Line 698... Line 703...
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
Line 702... Line 707...
702
		je .find_no
707
		je .find_no
703
 
708
 
Line 716... Line 721...
716
 
721
 
717
			call get_code_lib_table
722
			call get_code_lib_table
Line 718... Line 723...
718
		@@:
723
		@@:
719
 
724
 
Line 720... Line 725...
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
Line 732... Line 737...
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
Line 798... Line 803...
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
Line 803... Line 808...
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:
Line 808... Line 813...
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
Line 812... Line 817...
812
		pop ebx ;ïîëó÷àåì äàííûå óçëà
817
		pop ebx ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
813
		cmp ebx,0
818
		cmp ebx,0
814
		je .find_no
819
		je .find_no
-
 
820
 
-
 
821
		cmp dword[ebx],C_EDB
815
 
822
		jne @f
816
		cmp dword[ebx],C_EDB
823
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
817
		jne @f
824
 
818
			;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
825
			;ä®à¬¨à㥬 ⥪áâ®¢ë¥ ¤ ­­ë¥ ¤«ï editbox-®¢
Line 852... Line 859...
852
				
859
				
Line 853... Line 860...
853
				insert_nl
860
				insert_nl
Line 854... Line 861...
854
 
861
 
855
				jmp @f
862
				jmp @f
Line 856... Line 863...
856
 
863
 
857
			.no_text: ;ïåðâîíà÷àëüíî òåêñò íå çàäàí
864
			.no_text: ;¯¥à¢®­ ç «ì­® ⥪áâ ­¥ § ¤ ­
858
				stdcall insert_text, txt_times
865
				stdcall insert_text, txt_times
Line 868... Line 875...
868
		jne @f
875
		jne @f
869
			stdcall insert_text_label_data, ebx,9
876
			stdcall insert_text_label_data, ebx,9
870
		@@:
877
		@@:
Line 871... Line 878...
871
 
878
 
872
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
879
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 873... Line 880...
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
Line 878... Line 885...
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
Line 887... Line 894...
887
	.beg_iterat:
894
	.beg_iterat:
888
		cmp esi,0
895
		cmp esi,0
889
		je .find_no
896
		je .find_no
890
 
897
 
Line 891... Line 898...
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 ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
Line 920... Line 927...
920
			insert_a_met ;@@:
927
			insert_a_met ;@@:
921
			insert_nl
928
			insert_nl
922
		@@:
929
		@@:
Line 923... Line 930...
923
 
930
 
924
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
931
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 925... Line 932...
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
Line 930... Line 937...
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
Line 939... Line 946...
939
	.beg_iterat:
946
	.beg_iterat:
940
		cmp esi,0
947
		cmp esi,0
941
		je .find_no
948
		je .find_no
942
 
949
 
Line 943... Line 950...
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 ;¯®«ãç ¥¬ ¤ ­­ë¥ 㧫 
Line 960... Line 967...
960
				insert_ret
967
				insert_ret
961
			.c_fun:
968
			.c_fun:
962
		@@:
969
		@@:
Line 963... Line 970...
963
 
970
 
964
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
971
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 965... Line 972...
965
		pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
972
		pop esi ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã
966
 
973
 
967
		jmp .beg_iterat
974
		jmp .beg_iterat
968
	.find_no:
975
	.find_no:
Line 975... Line 982...
975
	pushad
982
	pushad
976
		insert_nl
983
		insert_nl
977
		mov ebx,dword[p_obj]
984
		mov ebx,dword[p_obj]
Line 978... Line 985...
978
 
985
 
979
		insert_key_beg
986
		insert_key_beg
980
		call get_code_funct_key ;êîäû âûçîâà êíîïîê
987
		call get_code_funct_key ;ª®¤ë ¢ë§®¢  ª­®¯®ª
Line 981... Line 988...
981
		insert_key_end
988
		insert_key_end
982
 
989
 
983
		insert_nl
990
		insert_nl
Line 993... Line 1000...
993
	.beg_iterat:
1000
	.beg_iterat:
994
		cmp esi,0
1001
		cmp esi,0
995
		je .find_no
1002
		je .find_no
Line 996... Line 1003...
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
Line 1000... Line 1007...
1000
		je .find_no
1007
		je .find_no
1001
 
1008
 
Line 1005... Line 1012...
1005
			stdcall insert_text_prop,ebx,0
1012
			stdcall insert_text_prop,ebx,0
1006
			insert_nl
1013
			insert_nl
1007
		@@:
1014
		@@:
Line 1008... Line 1015...
1008
 
1015
 
1009
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
1016
		stdcall dword[tl_node_poi_get_next_info], esi,tree2
Line 1010... Line 1017...
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
Line 1015... Line 1022...
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
Line 1035... Line 1042...
1035
		insert_nl
1042
		insert_nl
1036
	popad
1043
	popad
1037
	ret
1044
	ret
1038
endp
1045
endp
Line 1039... Line -...
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]
Line 1105... Line 1104...
1105
		stdcall insert_text, txt_i_40
1104
		stdcall insert_text, txt_i_40
1106
		insert_nl
1105
		insert_nl
Line 1107... Line 1106...
1107
 
1106
 
Line 1108... Line 1107...
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
Line 1112... Line 1111...
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
Line 1121... Line 1120...
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
Line 1125... Line 1124...
1125
 
1124
 
1126
		stdcall dword[tl_node_poi_get_data], esi,tree2
1125
		stdcall dword[tl_node_poi_get_data], esi,tree2
Line 1224... Line 1223...
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
Line 1245... Line 1244...
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
Line 1269... Line 1253...
1269
 
1253
 
1270
			insert_tab
1254
			insert_tab
1271
			stdcall insert_text, txt_mov
1255
			stdcall insert_text, txt_mov
Line 1282... Line 1266...
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
			@@:
Line 1290... Line 1274...
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
Line 1294... Line 1278...
1294
		.ob_draw_text:
1278
		.ob_draw_text:
1295
 
1279
 
Line 1296... Line 1280...
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:
Line 1301... Line 1285...
1301
	popad
1285
	popad
1302
	ret
1286
	ret
1303
endp
1287
endp
1304
 
1288
 
1305
;ñîçäàòü êîä îáúÿâëåíèÿ ïåðåìåííîé
1289
;ᮧ¤ âì ª®¤ ®¡ê¥­¨ï ¯¥à¥¬¥­­®©
1306
align 4
1290
align 4
Line 1307... Line 1291...
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
Line 1316... Line 1300...
1316
		cld
1300
		cld
1317
		@@:
1301
		@@:
Line 1318... Line 1302...
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 ;¨¬ï ¯¥à¥¬¥­­®©
Line 1323... Line 1307...
1323
		insert_sp
1307
		insert_sp
Line 1324... Line 1308...
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
Line 1327... Line 1311...
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
 
Line 1348... Line 1332...
1348
	ret
1332
	ret
1349
endp
1333
endp
Line 1350... Line 1334...
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
Line 1394... Line 1378...
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
Line 1458... Line 1438...
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:
Line 1462... Line 1442...
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]
Line 1478... Line 1458...
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
Line 1482... Line 1462...
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]
Line 1494... Line 1474...
1494
	div ecx
1474
	div ecx
1495
	pop edx ecx
1475
	pop edx ecx
1496
	ret
1476
	ret
1497
endp
1477
endp
Line 1498... Line 1478...
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
Line 1499... Line 1507...
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
Line 1564... Line 1572...
1564
	popad
1572
	popad
1565
	ret
1573
	ret
Line 1566... Line 1574...
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