Subversion Repositories Kolibri OS

Rev

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