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 |