Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
178 heavyiron 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
;       test    eax,eax
320
;       je      .close
321
;       cmp     eax,6
322
;       je      .close
323
;       ret
324
 
325
  .close:
326
	mov	[main_closed],1
327
	mcall	-1
328
 
329
; SAVE_FILE {
330
;  yessave:
331
;  btn.save_file:
332
;  key.ctrl_s:
333
;        mov     [bot_mode],1
334
;        mov     [bot_save_mode],1
335
;        mov     [bot_dlg_height],16*2+4*2-1
336
;        mov     [bot_dlg_handler],osdlg_handler
337
;        call    drawwindow
338
;        call    save_file
339
;        ret;jmp     still
340
; SAVE_FILE }
341
 
342
;  nosave:
343
;  btn.save_enter_name:
344
;        inc     al
345
;        call    read_string
346
;        ret;jmp     still