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