Rev 259 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
258 | mikedld | 1 | button: |
2 | mcall 17 |
||
3 | cmp al,0 |
||
4 | jne still |
||
5 | shr eax,8 |
||
6 | |||
7 | cmp [bot_mode],0 |
||
8 | je @f |
||
9 | mov ebx,eax |
||
10 | mov al,3 |
||
11 | call [bot_dlg_handler] |
||
12 | jmp still |
||
13 | |||
14 | @@: mov esi,accel_table2 |
||
15 | .acc: cmp eax,[esi] |
||
16 | jne @f |
||
17 | call dword[esi+4] |
||
18 | jmp still.skip_write |
||
19 | @@: add esi,8 |
||
20 | cmp byte[esi],0 |
||
21 | jne .acc |
||
22 | |||
23 | jmp still.skip_write |
||
24 | |||
25 | ; cmp eax,BUTTON_SCRLUP |
||
26 | ; jne not_up |
||
27 | btn.scroll_up: |
||
28 | dec [top_line] |
||
29 | jns @f |
||
30 | inc [top_line] |
||
31 | ret;jmp still.skip_write |
||
32 | @@: call check_inv_all.skip_check |
||
33 | ret |
||
34 | ; not_up: |
||
35 | |||
36 | ; cmp eax,BUTTON_SCRLDN |
||
37 | ; jne not_down |
||
38 | btn.scroll_down: |
||
39 | inc [top_line] |
||
40 | mov eax,[lines] |
||
41 | sub eax,[lines.scr] |
||
42 | cmp eax,[top_line] |
||
43 | jge @f |
||
44 | dec [top_line] |
||
45 | ;dec eax |
||
46 | ;mov [top_line],eax |
||
47 | ret;jmp still.skip_write |
||
48 | @@: call check_inv_all.skip_check |
||
49 | ret |
||
50 | ; not_down: |
||
51 | |||
52 | ; cmp eax,BUTTON_SCRLLT |
||
53 | ; jne not_left |
||
54 | btn.scroll_left: |
||
55 | dec [left_col] |
||
56 | jns @f |
||
57 | inc [left_col] |
||
58 | ret;jmp still.skip_write |
||
59 | @@: call check_inv_all.skip_check |
||
60 | ret |
||
61 | ; not_left: |
||
62 | |||
63 | ; cmp eax,BUTTON_SCRLRT |
||
64 | ; jne not_right |
||
65 | btn.scroll_right: |
||
66 | inc [left_col] |
||
67 | mov eax,[columns] |
||
68 | sub eax,[columns.scr] |
||
69 | cmp eax,[left_col] |
||
70 | jge @f |
||
71 | dec [left_col] |
||
72 | ;dec eax |
||
73 | ;mov [left_col],eax |
||
74 | ret;jmp still.skip_write |
||
75 | @@: call check_inv_all.skip_check |
||
76 | ret |
||
77 | ; not_right: |
||
78 | |||
79 | ; SEARCH { |
||
80 | ; search: |
||
81 | ; cmp al,BUTTON_SEARCH |
||
82 | ; jne no_search |
||
83 | btn.search: |
||
84 | key.f3: |
||
85 | call search |
||
86 | jc @f |
||
87 | call check_inv_all |
||
88 | @@: ret |
||
89 | |||
90 | |||
91 | func search |
||
92 | cld |
||
93 | mov ecx,[pos.y] |
||
94 | mov edx,ecx |
||
95 | call get_line_offset |
||
96 | cmp word[esi],0 |
||
97 | je .exit |
||
98 | call get_real_length |
||
99 | add esi,4 |
||
100 | or eax,eax |
||
101 | jz .end_line.2 |
||
102 | mov ecx,eax |
||
103 | sub ecx,[pos.x] |
||
104 | push esi |
||
105 | add esi,[pos.x] |
||
106 | ;dec ecx |
||
107 | ;inc esi |
||
108 | jmp @f |
||
109 | |||
110 | .next_line: |
||
111 | push esi |
||
112 | @@: sub ecx,[s_search.size] |
||
113 | inc ecx |
||
114 | |||
115 | .next_char: |
||
116 | dec ecx |
||
117 | js .end_line |
||
118 | xor edi,edi |
||
119 | |||
120 | .next_ok: |
||
121 | movzx eax,byte[edi+esi] |
||
122 | movzx ebx,byte[edi+s_search] |
||
123 | |||
124 | cmp al,$61 |
||
125 | jb @f |
||
126 | add al,[eax+add_table-$61] |
||
127 | @@: cmp bl,$61 |
||
128 | jb @f |
||
129 | add bl,[ebx+add_table-$61] |
||
130 | @@: |
||
131 | cmp al,bl |
||
132 | je @f |
||
133 | |||
134 | inc esi |
||
135 | jmp .next_char |
||
136 | @@: |
||
137 | inc edi |
||
138 | cmp edi,[s_search.size] |
||
139 | jne .next_ok |
||
140 | |||
141 | .found: |
||
142 | add esp,4 |
||
143 | mov [pos.y],edx |
||
144 | mov [sel.y],edx |
||
145 | mov ecx,edx |
||
146 | lea eax,[esi-4] |
||
147 | call get_line_offset |
||
148 | sub eax,esi |
||
149 | mov [sel.x],eax |
||
150 | add eax,[s_search.size] |
||
151 | mov [pos.x],eax |
||
152 | mov [s_status],0 |
||
153 | clc |
||
154 | ret |
||
155 | |||
156 | .end_line: |
||
157 | pop esi |
||
158 | .end_line.2: |
||
159 | movzx eax,word[esi-4] |
||
160 | add esi,eax;[esi-4] |
||
161 | inc edx |
||
162 | call get_real_length |
||
163 | mov ecx,eax |
||
164 | lodsd |
||
165 | or eax,eax |
||
166 | jnz .next_line |
||
167 | .exit: |
||
168 | mov [s_status],s_text_not_found |
||
169 | stc |
||
170 | ret |
||
171 | endf |
||
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 |
||
183 | btn.compile: |
||
184 | key.ctrl_f9: |
||
185 | mov bl,0;[run_outfile],0 |
||
186 | call start_fasm |
||
187 | ret;jmp still |
||
188 | ; @@: dec eax |
||
189 | ; jnz @f |
||
190 | btn.compile_run: |
||
191 | key.f9: |
||
192 | mov bl,1;[run_outfile],1 |
||
193 | call start_fasm |
||
194 | ret;jmp still |
||
195 | ; @@: dec eax |
||
196 | ; jnz @f |
||
197 | btn.debug_board: |
||
198 | call open_debug_board |
||
199 | ret;jmp still |
||
200 | ; @@: dec eax |
||
201 | ; jnz still |
||
202 | btn.sysfuncs_txt: |
||
203 | call open_sysfuncs_txt |
||
204 | ret;jmp still |
||
205 | ; TOOLBAR } |
||
206 | |||
207 | ; no_toolbar: |
||
208 | |||
209 | ; cmp al,4 |
||
210 | ; jne noid4 |
||
211 | |||
212 | ; LOAD_FILE { |
||
213 | ; do_load_file: |
||
214 | btn.load_file: |
||
215 | key.ctrl_l: |
||
216 | ; cmp [s_fname],'/' |
||
217 | ; jne @f |
||
218 | ; call load_hd_file |
||
219 | ; jmp .restorecursor |
||
220 | ; @@: call load_file |
||
221 | call load_file |
||
222 | jnc @f |
||
223 | ret |
||
224 | ; .restorecursor: |
||
225 | @@: |
||
226 | xor eax,eax |
||
227 | mov [top_line],eax |
||
228 | mov [left_col],eax |
||
229 | mov [pos.x],eax |
||
230 | mov [pos.y],eax |
||
231 | mov [sel.x],eax |
||
232 | mov [sel.y],eax |
||
233 | |||
234 | mov [modified],al |
||
235 | |||
236 | ; enable color syntax for ASM and INC files: |
||
237 | mov [asm_mode],al |
||
238 | |||
239 | mov eax,[f_info.length] ; [s_fname.size] |
||
240 | add eax,f_info.path ; s_fname |
||
241 | mov byte[eax],0 |
||
242 | mov ecx, dword [eax-3] |
||
243 | or ecx, 0x202020 |
||
244 | cmp ecx, 'asm' |
||
245 | jne @f |
||
246 | inc [asm_mode] |
||
247 | jmp .nocol |
||
248 | @@: cmp ecx, 'inc' |
||
249 | jne .nocol |
||
250 | inc [asm_mode] |
||
251 | .nocol: |
||
252 | |||
253 | update_caption: |
||
254 | macro unused { |
||
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 |
||
266 | ret;jmp still |
||
267 | @@: |
||
268 | } |
||
269 | ; set window title: |
||
270 | mov esi,f_info.path ; s_fname |
||
271 | mov edi,s_title |
||
272 | |||
273 | cld |
||
274 | mov ecx,[f_info.length] ; [s_fname.size] |
||
275 | jecxz @f |
||
276 | ;lea eax,[ecx+10] |
||
277 | ;mov [s_title.size],eax |
||
278 | ;cld |
||
279 | rep movsb |
||
280 | |||
281 | mov dword[edi],' - ' |
||
282 | add edi,3 |
||
283 | @@: mov esi,htext |
||
284 | mov ecx,htext.size |
||
285 | rep movsb |
||
286 | |||
287 | mov al,0 |
||
288 | stosb |
||
289 | |||
290 | ; call drawwindow |
||
291 | clc |
||
292 | ret;jmp still |
||
293 | ; LOAD_FILE } |
||
294 | |||
295 | ; noid4: |
||
296 | |||
297 | ; cmp al, 2 |
||
298 | ; jz yessave |
||
299 | |||
300 | ; dec al ; close if butid == 1 |
||
301 | ; jnz nosave |
||
302 | ; EXIT: |
||
303 | btn.close_main_window: |
||
304 | key.alt_x: |
||
305 | mov esi,self_path |
||
306 | mov byte[esi+PATHL-1],0 |
||
307 | mov edi,f_info.path |
||
308 | cld |
||
309 | @@: lodsb |
||
310 | stosb |
||
311 | or al,al |
||
312 | jnz @b |
||
313 | ; mov ebx,f_info |
||
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 |
||
321 | mov [f_info70+8],0 |
||
322 | mov [f_info70+12],TINYPAD_END |
||
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 |
||
343 | ; mov [bot_save_mode],1 |
||
344 | ; mov [bot_dlg_height],16*2+4*2-1 |
||
345 | ; mov [bot_dlg_handler],osdlg_handler |
||
346 | ; call drawwindow |
||
347 | ; call save_file |
||
348 | ; ret;jmp still |
||
349 | ; SAVE_FILE } |
||
350 | |||
351 | ; nosave: |
||
352 | ; btn.save_enter_name: |
||
353 | ; inc al |
||
354 | ; call read_string |
||
355 | ; ret;jmp still |