Rev 258 | Rev 267 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 258 | Rev 259 | ||
---|---|---|---|
Line 20... | Line 20... | ||
20 | cmp byte[esi],0 |
20 | cmp byte[esi],0 |
21 | jne .acc |
21 | jne .acc |
Line 22... | Line 22... | ||
22 | 22 | ||
Line 23... | Line -... | ||
23 | jmp still.skip_write |
- | |
24 | - | ||
25 | ; cmp eax,BUTTON_SCRLUP |
23 | jmp still.skip_write |
26 | ; jne not_up |
24 | |
27 | btn.scroll_up: |
25 | btn.scroll_up: |
28 | dec [top_line] |
26 | dec [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
29 | jns @f |
27 | jns @f |
30 | inc [top_line] |
28 | inc [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
31 | ret;jmp still.skip_write |
29 | ret |
32 | @@: call check_inv_all.skip_check |
- | |
Line 33... | Line -... | ||
33 | ret |
- | |
34 | ; not_up: |
- | |
35 | 30 | @@: call check_inv_all.skip_check |
|
36 | ; cmp eax,BUTTON_SCRLDN |
31 | ret |
37 | ; jne not_down |
32 | |
38 | btn.scroll_down: |
33 | btn.scroll_down: |
39 | inc [top_line] |
34 | inc [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
40 | mov eax,[lines] |
35 | mov eax,[cur_tab.Editor.Lines] ;! eax,[lines] |
41 | sub eax,[lines.scr] |
36 | sub eax,[lines.scr] |
42 | cmp eax,[top_line] |
37 | cmp eax,[cur_tab.Editor.TopLeft.Y] ;! eax,[top_line] |
43 | jge @f |
- | |
44 | dec [top_line] |
- | |
45 | ;dec eax |
38 | jge @f |
46 | ;mov [top_line],eax |
39 | dec [cur_tab.Editor.TopLeft.Y] ;! [top_line] |
47 | ret;jmp still.skip_write |
- | |
Line 48... | Line -... | ||
48 | @@: call check_inv_all.skip_check |
- | |
49 | ret |
- | |
50 | ; not_down: |
40 | ret |
51 | 41 | @@: call check_inv_all.skip_check |
|
52 | ; cmp eax,BUTTON_SCRLLT |
42 | ret |
53 | ; jne not_left |
43 | |
54 | btn.scroll_left: |
44 | btn.scroll_left: |
55 | dec [left_col] |
45 | dec [cur_tab.Editor.TopLeft.X] ;! [left_col] |
56 | jns @f |
46 | jns @f |
57 | inc [left_col] |
- | |
Line 58... | Line -... | ||
58 | ret;jmp still.skip_write |
- | |
59 | @@: call check_inv_all.skip_check |
- | |
60 | ret |
47 | inc [cur_tab.Editor.TopLeft.X] ;! [left_col] |
61 | ; not_left: |
48 | ret;jmp still.skip_write |
62 | 49 | @@: call check_inv_all.skip_check |
|
63 | ; cmp eax,BUTTON_SCRLRT |
50 | ret |
64 | ; jne not_right |
51 | |
65 | btn.scroll_right: |
52 | btn.scroll_right: |
66 | inc [left_col] |
53 | inc [cur_tab.Editor.TopLeft.X] ;! [left_col] |
67 | mov eax,[columns] |
54 | mov eax,[cur_tab.Editor.Columns] ;! eax,[columns] |
68 | sub eax,[columns.scr] |
- | |
69 | cmp eax,[left_col] |
- | |
70 | jge @f |
55 | sub eax,[columns.scr] |
71 | dec [left_col] |
56 | cmp eax,[cur_tab.Editor.TopLeft.X] ;! eax,[left_col] |
72 | ;dec eax |
- | |
Line 73... | Line -... | ||
73 | ;mov [left_col],eax |
- | |
74 | ret;jmp still.skip_write |
- | |
75 | @@: call check_inv_all.skip_check |
- | |
76 | ret |
- | |
77 | ; not_right: |
57 | jge @f |
78 | 58 | dec [cur_tab.Editor.TopLeft.X] ;! [left_col] |
|
79 | ; SEARCH { |
59 | ret |
80 | ; search: |
60 | @@: call check_inv_all.skip_check |
81 | ; cmp al,BUTTON_SEARCH |
61 | ret |
82 | ; jne no_search |
62 | |
Line 83... | Line 63... | ||
83 | btn.search: |
63 | btn.search: |
84 | key.f3: |
64 | key.f3: |
85 | call search |
65 | call search |
86 | jc @f |
66 | jc @f |
87 | call check_inv_all |
67 | call check_inv_all |
88 | @@: ret |
68 | @@: ret |
89 | 69 | ||
90 | 70 | ||
91 | func search |
71 | func search |
92 | cld |
72 | cld |
93 | mov ecx,[pos.y] |
73 | mov ecx,[cur_tab.Editor.Caret.Y] ;! ecx,[pos.y] |
94 | mov edx,ecx |
74 | mov edx,ecx |
95 | call get_line_offset |
75 | call get_line_offset |
96 | cmp word[esi],0 |
76 | cmp word[esi],0 |
97 | je .exit |
77 | je .exit |
98 | call get_real_length |
- | |
99 | add esi,4 |
- | |
100 | or eax,eax |
78 | call get_real_length |
Line 101... | Line 79... | ||
101 | jz .end_line.2 |
79 | add esi,4 |
102 | mov ecx,eax |
80 | or eax,eax |
103 | sub ecx,[pos.x] |
81 | jz .end_line.2 |
Line 138... | Line 116... | ||
138 | cmp edi,[s_search.size] |
116 | cmp edi,[s_search.size] |
139 | jne .next_ok |
117 | jne .next_ok |
Line 140... | Line 118... | ||
140 | 118 | ||
141 | .found: |
119 | .found: |
142 | add esp,4 |
120 | add esp,4 |
143 | mov [pos.y],edx |
121 | mov [cur_tab.Editor.Caret.Y],edx ;! [pos.y],edx |
144 | mov [sel.y],edx |
122 | mov [cur_tab.Editor.SelStart.Y],edx ;! [sel.y],edx |
145 | mov ecx,edx |
123 | mov ecx,edx |
146 | lea eax,[esi-4] |
124 | lea eax,[esi-4] |
147 | call get_line_offset |
125 | call get_line_offset |
148 | sub eax,esi |
126 | sub eax,esi |
149 | mov [sel.x],eax |
127 | mov [cur_tab.Editor.SelStart.X],eax ;! [sel.x],eax |
150 | add eax,[s_search.size] |
128 | add eax,[s_search.size] |
151 | mov [pos.x],eax |
129 | mov [cur_tab.Editor.Caret.X],eax ;! [pos.x],eax |
152 | mov [s_status],0 |
130 | mov [s_status],0 |
153 | clc |
131 | clc |
Line 154... | Line 132... | ||
154 | ret |
132 | ret |
Line 168... | Line 146... | ||
168 | mov [s_status],s_text_not_found |
146 | mov [s_status],s_text_not_found |
169 | stc |
147 | stc |
170 | ret |
148 | ret |
171 | endf |
149 | endf |
Line 172... | Line -... | ||
172 | - | ||
173 | ; SEARCH } |
- | |
174 | - | ||
175 | ; no_search: |
- | |
176 | - | ||
177 | ; TOOLBAR { |
- | |
178 | ; cmp eax,10000 |
- | |
179 | ; jb no_toolbar |
- | |
180 | - | ||
181 | ; add eax,-10000 |
- | |
182 | ; jnz @f |
150 | |
183 | btn.compile: |
151 | btn.compile: |
184 | key.ctrl_f9: |
152 | key.ctrl_f9: |
185 | mov bl,0;[run_outfile],0 |
153 | mov bl,0 |
186 | call start_fasm |
154 | call start_fasm |
187 | ret;jmp still |
- | |
188 | ; @@: dec eax |
- | |
189 | ; jnz @f |
155 | ret |
190 | btn.compile_run: |
156 | btn.compile_run: |
191 | key.f9: |
157 | key.f9: |
192 | mov bl,1;[run_outfile],1 |
158 | mov bl,1 |
193 | call start_fasm |
159 | call start_fasm |
194 | ret;jmp still |
- | |
195 | ; @@: dec eax |
- | |
196 | ; jnz @f |
160 | ret |
197 | btn.debug_board: |
161 | btn.debug_board: |
198 | call open_debug_board |
162 | call open_debug_board |
199 | ret;jmp still |
- | |
200 | ; @@: dec eax |
- | |
201 | ; jnz still |
163 | ret |
202 | btn.sysfuncs_txt: |
164 | btn.sysfuncs_txt: |
203 | call open_sysfuncs_txt |
- | |
204 | ret;jmp still |
- | |
205 | ; TOOLBAR } |
- | |
206 | - | ||
207 | ; no_toolbar: |
165 | call open_sysfuncs_txt |
208 | - | ||
209 | ; cmp al,4 |
- | |
Line 210... | Line -... | ||
210 | ; jne noid4 |
- | |
211 | - | ||
212 | ; LOAD_FILE { |
166 | ret |
213 | ; do_load_file: |
167 | |
214 | btn.load_file: |
- | |
215 | key.ctrl_l: |
- | |
216 | ; cmp [s_fname],'/' |
- | |
217 | ; jne @f |
- | |
218 | ; call load_hd_file |
- | |
219 | ; jmp .restorecursor |
168 | btn.load_file: |
220 | ; @@: call load_file |
169 | key.ctrl_l: |
221 | call load_file |
170 | call load_file |
222 | jnc @f |
- | |
223 | ret |
171 | jnc @f |
- | 172 | ret |
|
224 | ; .restorecursor: |
173 | @@: |
225 | @@: |
174 | |
226 | xor eax,eax |
175 | xor eax,eax |
227 | mov [top_line],eax |
176 | mov [cur_tab.Editor.TopLeft.Y],eax ;! [top_line],eax |
228 | mov [left_col],eax |
177 | mov [cur_tab.Editor.TopLeft.X],eax ;! [left_col],eax |
229 | mov [pos.x],eax |
178 | mov [cur_tab.Editor.Caret.X],eax ;! [pos.x],eax |
230 | mov [pos.y],eax |
179 | mov [cur_tab.Editor.Caret.Y],eax ;! [pos.y],eax |
Line 231... | Line 180... | ||
231 | mov [sel.x],eax |
180 | mov [cur_tab.Editor.SelStart.X],eax ;! [sel.x],eax |
Line 232... | Line 181... | ||
232 | mov [sel.y],eax |
181 | mov [cur_tab.Editor.SelStart.Y],eax ;! [sel.y],eax |
233 | 182 | ||
Line 234... | Line 183... | ||
234 | mov [modified],al |
183 | mov [cur_tab.Editor.Modified],al ;! [modified],al |
235 | 184 | ||
236 | ; enable color syntax for ASM and INC files: |
185 | ; enable color syntax for ASM and INC files: |
237 | mov [asm_mode],al |
186 | mov [cur_tab.Editor.AsmMode],al ;! [asm_mode],al |
238 | 187 | ||
239 | mov eax,[f_info.length] ; [s_fname.size] |
188 | mov eax,[f_info.length] |
240 | add eax,f_info.path ; s_fname |
189 | add eax,f_info.path |
241 | mov byte[eax],0 |
190 | mov byte[eax],0 |
242 | mov ecx, dword [eax-3] |
191 | mov ecx, dword [eax-3] |
243 | or ecx, 0x202020 |
192 | or ecx, 0x202020 |
244 | cmp ecx, 'asm' |
193 | cmp ecx, 'asm' |
245 | jne @f |
194 | jne @f |
246 | inc [asm_mode] |
195 | inc [cur_tab.Editor.AsmMode] ;! [asm_mode] |
Line 247... | Line 196... | ||
247 | jmp .nocol |
196 | jmp .nocol |
248 | @@: cmp ecx, 'inc' |
- | |
249 | jne .nocol |
- | |
250 | inc [asm_mode] |
- | |
251 | .nocol: |
- | |
252 | - | ||
253 | update_caption: |
- | |
254 | macro unused { |
197 | @@: cmp ecx, 'inc' |
255 | movzx ecx,[f_info.length] ; [s_fname.size] |
- | |
256 | add ecx,10 ; strlen(" - TINYPAD"); |
- | |
257 | cmp ecx,[s_title.size] |
- | |
258 | jne @f |
- | |
259 | add ecx,-10 |
- | |
260 | mov esi,f_info.path ; s_fname ; strcmp(s_fname,header); |
- | |
261 | mov edi,s_title |
- | |
262 | repe cmpsb |
- | |
263 | jne @f |
- | |
264 | ; call draw_file |
- | |
265 | clc |
198 | jne .nocol |
Line -... | Line 199... | ||
- | 199 | inc [cur_tab.Editor.AsmMode] ;! [asm_mode] |
|
266 | ret;jmp still |
200 | .nocol: |
267 | @@: |
- | |
268 | } |
201 | |
- | 202 | update_caption: |
|
269 | ; set window title: |
203 | lea esi,[cur_tab.Editor.FilePath] ;! mov esi,f_info.path |
270 | mov esi,f_info.path ; s_fname |
204 | mov edi,s_title |
271 | mov edi,s_title |
205 | |
- | 206 | @@: lodsb |
|
- | 207 | cmp al,0 |
|
272 | 208 | je @f |
|
Line 273... | Line 209... | ||
273 | cld |
209 | stosb |
274 | mov ecx,[f_info.length] ; [s_fname.size] |
210 | jmp @b |
275 | jecxz @f |
211 | @@: |
276 | ;lea eax,[ecx+10] |
212 | ;cld |
- | 213 | ;mov ecx,[f_info.length] |
|
277 | ;mov [s_title.size],eax |
214 | ;jecxz @f |
Line 278... | Line 215... | ||
278 | ;cld |
215 | ;rep movsb |
279 | rep movsb |
216 | |
Line 280... | Line -... | ||
280 | - | ||
281 | mov dword[edi],' - ' |
- | |
282 | add edi,3 |
217 | mov dword[edi],' - ' |
283 | @@: mov esi,htext |
- | |
284 | mov ecx,htext.size |
- | |
285 | rep movsb |
- | |
Line 286... | Line 218... | ||
286 | 218 | add edi,3 |
|
287 | mov al,0 |
219 | @@: mov esi,htext |
Line 288... | Line -... | ||
288 | stosb |
- | |
289 | - | ||
290 | ; call drawwindow |
- | |
291 | clc |
220 | mov ecx,htext.size |
292 | ret;jmp still |
221 | cld |
293 | ; LOAD_FILE } |
222 | rep movsb |
294 | 223 | ||
295 | ; noid4: |
224 | mov al,0 |
296 | 225 | stosb |
|
297 | ; cmp al, 2 |
226 | |
298 | ; jz yessave |
227 | mcall 71,1,s_title |
299 | 228 | ||
300 | ; dec al ; close if butid == 1 |
229 | clc |
301 | ; jnz nosave |
- | |
302 | ; EXIT: |
- | |
303 | btn.close_main_window: |
- | |
304 | key.alt_x: |
- | |
305 | mov esi,self_path |
- | |
Line 306... | Line 230... | ||
306 | mov byte[esi+PATHL-1],0 |
230 | ret |
307 | mov edi,f_info.path |
231 | |
308 | cld |
232 | btn.close_main_window: |
309 | @@: lodsb |
233 | key.alt_x: |
310 | stosb |
234 | mov esi,self_path |
311 | or al,al |
235 | mov byte[esi+PATHL-1],0 |
312 | jnz @b |
236 | mov edi,f_info.path |
313 | ; mov ebx,f_info |
237 | cld |
Line 314... | Line -... | ||
314 | ; mov dword[ebx+0],1 |
- | |
315 | ; mov dword[ebx+8],self_path |
- | |
316 | ; mov dword[ebx+12],0 |
- | |
317 | ; mcall 58 |
- | |
318 | - | ||
319 | mov [f_info70+0],2 |
- | |
320 | mov [f_info70+4],0 |
238 | @@: lodsb |
321 | mov [f_info70+8],0 |
239 | stosb |
322 | mov [f_info70+12],TINYPAD_END |
240 | or al,al |
323 | mov [f_info70+16],0 |
- | |
324 | mov byte[f_info70+20],0 |
- | |
325 | mov [f_info70+21],f_info.path |
- | |
326 | mcall 70,f_info70 |
- | |
327 | - | ||
328 | ; test eax,eax |
- | |
329 | ; je .close |
- | |
330 | ; cmp eax,6 |
- | |
331 | ; je .close |
- | |
332 | ; ret |
- | |
333 | - | ||
334 | .close: |
- | |
335 | mov [main_closed],1 |
- | |
336 | mcall -1 |
- | |
337 | - | ||
338 | ; SAVE_FILE { |
- | |
339 | ; yessave: |
- | |
340 | ; btn.save_file: |
- | |
341 | ; key.ctrl_s: |
- | |
342 | ; mov [bot_mode],1 |
241 | jnz @b |