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