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 1... Line 1...
1
;-----------------------------------------------------------------------------
1
;-----------------------------------------------------------------------------
2
; project name:      TINYPAD
2
; project name:      TINYPAD
3
; compiler:          flat assembler 1.67.1
3
; compiler:          flat assembler 1.67.15
4
; memory to compile: 2.0/7.0 MBytes (without/with size optimizations)
4
; memory to compile: 2.0/7.0 MBytes (without/with size optimizations)
5
; version:           4.0.4 pre
5
; version:           4.0.4 pre
6
; last update:       2006-12-30 (Dec 30, 2006)
6
; last update:       2007-01-03 (Jan 3, 2007)
7
; minimal kernel:    revision #138 (svn://kolibrios.org/kernel)
7
; minimal kernel:    revision #138 (svn://kolibrios.org/kernel)
8
;-----------------------------------------------------------------------------
8
;-----------------------------------------------------------------------------
9
; originally by:     Ville Michael Turjanmaa >> villemt@aton.co.jyu.fi
9
; originally by:     Ville Michael Turjanmaa >> villemt@aton.co.jyu.fi
10
; maintained by:     Mike Semenyako          >> mike.dld@gmail.com
10
; maintained by:     Mike Semenyako          >> mike.dld@gmail.com
11
;                    Ivan Poddubny           >> ivan-yar@bk.ru
11
;                    Ivan Poddubny           >> ivan-yar@bk.ru
12
;-----------------------------------------------------------------------------
12
;-----------------------------------------------------------------------------
13
; TODO:
13
; TODO (FOR 4.1.0):
14
;   - optimize drawing (reduce flickering)
14
;   - optimize drawing (reduce flickering)
15
;   - optimize memory usage (allocate only needed amount, not static 3 Mbytes)
-
 
16
;   - add block selection ability, undo action, goto position
15
;   - add vertical selection, undo, goto position, overwrite mode
17
;   - working with multiple files (add tabs)
-
 
18
;   - improve window drawing with small dimensions
16
;   - improve window drawing with small dimensions
19
;   - other bugfixes and speed/size optimizations
17
;   - other bug-fixes and speed/size optimizations
-
 
18
;
-
 
19
; TODO (FOR 4.0.4, PLANNED FOR 2007-01-21):
-
 
20
;   - finish tabbed interface [critical]
-
 
21
;   - add memory reallocation to keys handler [critical]
-
 
22
;   - rework save_file (memory manager) [critical]
-
 
23
;   - reduce flickering (changes checker) [average]
-
 
24
;   - incorrect saved/modified lines flags on copy/paste [normal]
-
 
25
;   - case-insensitive file extensions comparison (.asm/.inc) [normal]
-
 
26
;   - prompt to save file before closing/opening [low]
20
;
27
;
21
; HISTORY:
28
; HISTORY:
22
; 4.0.4 pre (mike.dld)
29
; 4.0.4 pre (mike.dld)
23
;   bug-fixes:
30
;   bug-fixes:
24
;     - clear statusbar text if dialog operation cancelled
31
;     - statusbar contained hint after dialog operation cancelled
-
 
32
;     - small drawing fix for gutter and line saved/modified markers
25
;   changes:
33
;   changes:
26
;     - modified/saved colors now match those in MSVS
34
;     - modified/saved colors now match those in MSVS
-
 
35
;     - function 70 for *all* file operations (including diamond's fixes)
-
 
36
;     - use memory manager instead of statically allocated region
27
;   new features:
37
;   new features:
28
;     - recode tables between CP866, CP1251 and KOI8-R (suggested by Victor)
38
;     - recode tables between CP866, CP1251 and KOI8-R (suggested by Victor)
-
 
39
;     - tabbed interface, ability to open several files in one app instance
29
; 4.0.3 (mike.dld)
40
; 4.0.3 (mike.dld)
30
;   bug-fixes:
41
;   bug-fixes:
31
;     - 1-char selection if pressing  out of real line length
42
;     - 1-char selection if pressing  out of real line length
32
;     - fault in `writepos`, added call to function 9
43
;     - fault in `writepos`, added call to function 9
33
;     - main menu items weren't highlighted if popup opened and cursor
44
;     - main menu items weren't highlighted if popup opened and cursor
Line 130... Line 141...
130
;   compile, run applications from TINYPAD, all fasm output is in debug board
141
;   compile, run applications from TINYPAD, all fasm output is in debug board
131
;   TAB button
142
;   TAB button
132
;   auto-indent
143
;   auto-indent
133
;   Ctrl+L - insert comment string
144
;   Ctrl+L - insert comment string
134
;-----------------------------------------------------------------------------
145
;-----------------------------------------------------------------------------
135
; Memory 0x300000:
-
 
136
;   stack for popup  0x00dff0 -
-
 
137
;   stack for help   0x00eff0 -
-
 
138
;   stack            0x00fff0 -
-
 
139
;   load position    0x010000 +
-
 
140
;   edit area        0x080000 +
-
 
141
;   copy/paste area  0x2f0000 +
-
 
142
;-----------------------------------------------------------------------------
-
 
Line 143... Line 146...
143
 
146
 
144
include 'lang.inc'
147
include 'lang.inc'
145
include 'macros.inc' ; useful stuff
148
include 'macros.inc' ; useful stuff
146
;include 'proc32.inc'
149
;include 'proc32.inc'
147
include 'tinypad.inc'
150
include 'tinypad.inc'
Line 148... Line 151...
148
;purge mov,add,sub            ;  SPEED
151
purge mov,add,sub	     ;  SPEED
Line 149... Line 152...
149
 
152
 
Line 150... Line 153...
150
header '01',1,@CODE,TINYPAD_END,AREA_ENDMEM,MAIN_STACK,@PARAMS,self_path
153
header '01',1,@CODE,TINYPAD_END,STATIC_MEM_END,MAIN_STACK,@PARAMS,self_path
Line 151... Line 154...
151
 
154
 
152
APP_VERSION equ '4.0.4 pre'
155
APP_VERSION equ '4.0.4 pre'
153
 
-
 
154
;include 'debug.inc'
156
 
155
 
157
;include 'debug.inc'
156
ASEPC	  = '-' 	  ; separator character (char)
158
 
157
ATOPH	  = POP_IHEIGHT+2 ; menu bar height (pixels)
159
ASEPC	  = '-' 	  ; separator character (char)
158
;OLEFT    = 50+1          ; left offset (pixels)        !!! don't change !!!
160
ATOPH	  = POP_IHEIGHT+2 ; menu bar height (pixels)
159
SCRLW	  = 16		  ; scrollbar widht/height (pixels)
161
SCRLW	  = 16		  ; scrollbar widht/height (pixels)
Line 160... Line 162...
160
ATABW	  = 8		  ; tab width (chars)
162
ATABW	  = 8		  ; tab width (chars)
-
 
163
LINEH	  = 10		  ; line height (pixels)
Line 161... Line 164...
161
LINEH	  = 10		  ; line height (pixels)
164
PATHL	  = 256 	  ; maximum path length (chars) !!! don't change !!!
162
PATHL	  = 255 	  ; maximum path length (chars) !!! don't change !!!
165
AMINS	  = 8		  ; minimal scroll thumb size (pixels)
163
AMINS	  = 8		  ; minimal scroll thumb size (pixels)
166
LCHGW	  = 3		  ; changed/saved marker width
164
LCHGW	  = 2		  ; changed/saved marker width
167
 
Line 182... Line 185...
182
  RGB(128,128,128) ; RGB(144,144,144) ; RGB(160,160,160) ; comments
185
  RGB(128,128,128) ; RGB(144,144,144) ; RGB(160,160,160) ; comments
183
  RGB( 48, 48,240) ; RGB( 48, 48,240) ; RGB(255,  0,  0) ; symbols
186
  RGB( 48, 48,240) ; RGB( 48, 48,240) ; RGB(255,  0,  0) ; symbols
184
  RGB(255,255,255) ; RGB(224,224,224) ; RGB(255,255,255) ; background
187
  RGB(255,255,255) ; RGB(224,224,224) ; RGB(255,255,255) ; background
185
  RGB(255,255,255) ; RGB(255,255,255) ; RGB(255,255,255) ; selection text
188
  RGB(255,255,255) ; RGB(255,255,255) ; RGB(255,255,255) ; selection text
186
  RGB( 10, 36,106) ; RGB(  0,  0,128) ; RGB(  0, 64,128) ; selection background
189
  RGB( 10, 36,106) ; RGB(  0,  0,128) ; RGB(  0, 64,128) ; selection background
187
  RGB(255,255,	0) ; modified line marker
190
  RGB(255,238, 98) ; modified line marker
188
  RGB(  0,255,	0) ; saved line marker
191
  RGB(108,226,108) ; saved line marker
Line 189... Line 192...
189
 
192
 
Line 190... Line 193...
190
ins_mode db 1
193
ins_mode db 1
Line 218... Line 221...
218
	mov	edi,@UDATA
221
	mov	edi,@UDATA
219
	mov	ecx,@PARAMS-@UDATA
222
	mov	ecx,@PARAMS-@UDATA
220
	mov	al,0
223
	mov	al,0
221
	rep	stosb
224
	rep	stosb
Line -... Line 225...
-
 
225
 
-
 
226
	mov	[tab_bar.Style],2
-
 
227
 
-
 
228
	mcall	68,11
-
 
229
	or	eax,eax
-
 
230
	jz	key.alt_x.close
-
 
231
 
-
 
232
	mov	eax,65536
-
 
233
	call	mem.Alloc
-
 
234
	mov	[temp_buf],eax
-
 
235
 
-
 
236
	mov	eax,65536
-
 
237
	call	mem.Alloc
-
 
238
	mov	[cur_tab.Editor.Data],eax
222
 
239
 
Line 223... Line 240...
223
	inc	[do_not_draw]
240
	inc	[do_not_draw]
224
 
241
 
225
	mov	[left_ofs],40+1
242
	mov	[left_ofs],40+1
226
	mov	[f_info+4],0
243
;       mov     [f_info+4],0
Line 227... Line 244...
227
	mov	[f_info+12],AREA_TEMP
244
;       mov     [f_info+12],AREA_TEMP
228
	mov	[f_info+16],AREA_EDIT-AREA_TEMP
245
;       mov     [f_info+16],AREA_EDIT-AREA_TEMP
229
 
246
 
230
	mov	esi,s_example
247
	mov	esi,s_example
Line 260... Line 277...
260
	jmp	@b
277
	jmp	@b
261
    @@:
278
    @@:
262
;// diamond ]
279
;// diamond ]
Line 263... Line 280...
263
 
280
 
-
 
281
	add	edx,20
-
 
282
 
-
 
283
	mov	eax,edx
-
 
284
	call	mem.Alloc
-
 
285
	mov	ebp,eax
264
	add	edx,20
286
 
265
	mcall	60,1,AREA_TEMP-16 ; 0x10000-16
287
;!      mcall   60,1,AREA_TEMP-16 ; 0x10000-16
-
 
288
;!      mov     dword[AREA_TEMP-16+4],8 ; [0x10000-16+4],8
-
 
289
	mcall	60,1,ebp
266
	mov	dword[AREA_TEMP-16+4],8 ; [0x10000-16+4],8
290
	mov	dword[ebp+4],8
267
	mcall	40,1000000b
291
	mcall	40,1000000b
268
	mcall	23,200
292
	mcall	23,200
269
	cmp	eax,7
293
	cmp	eax,7
270
	jne	key.alt_x.close  ; ýòî íà mcall -1 ìåòêà
294
	jne	key.alt_x.close
-
 
295
;!      mov     esi,AREA_TEMP-16 ; 0x10000-16
-
 
296
;!      mov     byte[esi],1
271
	mov	esi,AREA_TEMP-16 ; 0x10000-16
297
;!      mov     eax,[esi+12]
-
 
298
	mov	byte[ebp],1
-
 
299
;!      mov     eax,[ebp+12]
-
 
300
;!      inc     eax
-
 
301
;!      call    load_file.file_found
272
	mov	byte[esi],1
302
 
273
	mov	eax,[esi+12]
303
	mov	ecx,[ebp+12]
-
 
304
	mov	esi,ebp
274
	inc	eax
305
	call	create_tab
-
 
306
	call	load_from_memory
-
 
307
 
-
 
308
	mov	eax,ebp
-
 
309
	call	mem.Free
275
	call	load_file.file_found
310
 
276
	jmp	@f
311
	jmp	@f
Line 277... Line 312...
277
  .noipc:
312
  .noipc:
Line 290... Line 325...
290
	jne	key.alt_x.close
325
	jne	key.alt_x.close
291
	lea	eax,[edi-tb_opensave.text-1]
326
	lea	eax,[edi-tb_opensave.text-1]
292
	mov	[tb_opensave.length],al
327
	mov	[tb_opensave.length],al
Line 293... Line 328...
293
 
328
 
294
  no_params:
329
  no_params:
295
	call	btn.load_file;do_load_file
330
	;call    btn.load_file;do_load_file
296
	jnc	@f
331
	;jnc     @f
Line 297... Line 332...
297
	call	new_file
332
	call	create_tab
298
 
333
 
299
    @@:
334
    @@:
300
	dec	[do_not_draw]
335
	dec	[do_not_draw]
Line 305... Line 340...
305
	call	check_inv_all.skip_check
340
	call	check_inv_all.skip_check
Line 306... Line 341...
306
 
341
 
Line 307... Line 342...
307
;-----------------------------------------------------------------------------
342
;-----------------------------------------------------------------------------
308
 
343
 
Line 309... Line 344...
309
still:
344
still:
310
       call    writepos ; write current position & number of strings
345
       call    draw_statusbar ; write current position & number of strings
311
 
346
 
312
  .skip_write:
347
  .skip_write:
Line 327... Line 362...
327
;-----------------------------------------------------------------------------
362
;-----------------------------------------------------------------------------
328
func start_fasm ;/////////////////////////////////////////////////////////////
363
func start_fasm ;/////////////////////////////////////////////////////////////
329
;-----------------------------------------------------------------------------
364
;-----------------------------------------------------------------------------
330
; BL = run after compile
365
; BL = run after compile
331
;-----------------------------------------------------------------------------
366
;-----------------------------------------------------------------------------
332
	cmp	[asm_mode],0
367
	cmp	[cur_tab.Editor.AsmMode],0 ;! [asm_mode],0
333
	jne	@f
368
	jne	@f
334
	ret
369
	ret
335
    @@: mov	esi,f_info.path ; s_fname
370
    @@: mov	esi,f_info.path ; s_fname
336
	mov	edi,fasm_parameters
371
	mov	edi,fasm_parameters
Line 456... Line 491...
456
;        mcall   18,3
491
;        mcall   18,3
457
;        mcall   5,eax
492
;        mcall   5,eax
458
;    @@: ret
493
;    @@: ret
459
;endf
494
;endf
Line 460... Line 495...
460
 
495
 
461
func set_opt
-
 
462
	test	[options],al
-
 
463
	je	@f
-
 
464
	not	al
-
 
465
	and	[options],al
-
 
466
	ret
-
 
467
    @@: or	[options],al
-
 
468
	ret
-
 
Line 469... Line 496...
469
endf
496
set_opt:
470
 
497
 
471
func set_line_numbers
498
  .line_numbers:
472
	mov	al,OPTS_LINENUMS
-
 
473
	call	set_opt
-
 
474
	ret
-
 
475
endf
499
	mov	al,OPTS_LINENUMS
476
 
500
	jmp	.main
477
func set_optimal_fill
501
  .optimal_fill:
478
	mov	al,OPTS_OPTIMSAVE
-
 
479
	call	set_opt
-
 
480
	ret
-
 
481
endf
502
	mov	al,OPTS_OPTIMSAVE
482
 
503
	jmp	.main
483
func set_auto_indents
504
  .auto_indents:
484
	mov	al,OPTS_AUTOINDENT
-
 
485
	call	set_opt
-
 
486
	ret
-
 
487
endf
505
	mov	al,OPTS_AUTOINDENT
488
 
506
	jmp	.main
489
func set_auto_braces
507
  .auto_braces:
490
	mov	al,OPTS_AUTOBRACES
-
 
491
	call	set_opt
-
 
492
	ret
-
 
493
endf
508
	mov	al,OPTS_AUTOBRACES
494
 
509
	jmp	.main
-
 
510
  .secure_sel:
-
 
511
	mov	al,OPTS_SECURESEL
495
func set_secure_sel
512
 
-
 
513
  .main:
-
 
514
	xor	[options],al
-
 
515
;       test    [options],al
-
 
516
;       je      @f
-
 
517
;       not     al
-
 
518
;       and     [options],al
496
	mov	al,OPTS_SECURESEL
519
;       ret
497
	call	set_opt
-
 
Line 498... Line 520...
498
	ret
520
;   @@: or      [options],al
Line -... Line 521...
-
 
521
	ret
-
 
522
 
499
endf
523
;-----------------------------------------------------------------------------
500
 
524
 
501
;-----------------------------------------------------------------------------
525
include 'tp-defines.inc'
502
 
526
 
503
include 'tp-draw.asm'
527
include 'tp-draw.asm'
504
include 'tp-key.asm'
528
include 'tp-key.asm'
505
include 'tp-button.asm'
529
include 'tp-button.asm'
506
include 'tp-mouse.asm'
530
include 'tp-mouse.asm'
507
include 'tp-files.asm'
531
include 'tp-files.asm'
-
 
532
include 'tp-common.asm'
-
 
533
include 'tp-dialog.asm'
508
include 'tp-common.asm'
534
include 'tp-popup.asm'
Line 509... Line 535...
509
include 'tp-dialog.asm'
535
include 'tp-tbox.asm'
Line 510... Line 536...
510
include 'tp-popup.asm'
536
include 'tp-tabctl.asm'
Line 557... Line 583...
557
  0x0001014D,key.shift_right	   ,\ ; Shift+Right
583
  0x0001014D,key.shift_right	   ,\ ; Shift+Right
558
  0x0001014F,key.shift_end	   ,\ ; Shift+End
584
  0x0001014F,key.shift_end	   ,\ ; Shift+End
559
  0x00010150,key.shift_down	   ,\ ; Shift+Down
585
  0x00010150,key.shift_down	   ,\ ; Shift+Down
560
  0x00010151,key.shift_pgdn	   ,\ ; Shift+PageDown
586
  0x00010151,key.shift_pgdn	   ,\ ; Shift+PageDown
561
  0x00010153,key.del		   ,\ ; Shift+Delete
587
  0x00010153,key.del		   ,\ ; Shift+Delete
-
 
588
  0x0002000F,key.ctrl_tab	   ,\ ; Ctrl+Tab
562
  0x00020015,key.ctrl_y 	   ,\ ; Ctrl+Y
589
  0x00020015,key.ctrl_y 	   ,\ ; Ctrl+Y
563
  0x00020018,key.ctrl_o 	   ,\ ; Ctrl+O
590
  0x00020018,key.ctrl_o 	   ,\ ; Ctrl+O
564
  0x0002001E,key.ctrl_a 	   ,\ ; Ctrl+A
591
  0x0002001E,key.ctrl_a 	   ,\ ; Ctrl+A
565
  0x0002001F,key.ctrl_s 	   ,\ ; Ctrl+S
592
  0x0002001F,key.ctrl_s 	   ,\ ; Ctrl+S
566
  0x00020020,key.ctrl_d 	   ,\ ; Ctrl+D
593
  0x00020020,key.ctrl_d 	   ,\ ; Ctrl+D
Line 580... Line 607...
580
  0x0002014D,key.ctrl_right	   ,\ ; Ctrl+Right
607
  0x0002014D,key.ctrl_right	   ,\ ; Ctrl+Right
581
  0x0002014F,key.ctrl_end	   ,\ ; Ctrl+End
608
  0x0002014F,key.ctrl_end	   ,\ ; Ctrl+End
582
\;0x00020150,key.ctrl_down         ,\ ; Ctrl+Down
609
\;0x00020150,key.ctrl_down         ,\ ; Ctrl+Down
583
  0x00020151,key.ctrl_pgdn	   ,\ ; Ctrl+PageDown
610
  0x00020151,key.ctrl_pgdn	   ,\ ; Ctrl+PageDown
584
  0x00020153,key.del		   ,\ ; Ctrl+Del
611
  0x00020153,key.del		   ,\ ; Ctrl+Del
-
 
612
  0x0003000F,key.shift_ctrl_tab    ,\ ; Shift+Ctrl+Tab
585
  0x0003001F,key.shift_ctrl_s	   ,\ ; Shift+Ctrl+S
613
  0x0003001F,key.shift_ctrl_s	   ,\ ; Shift+Ctrl+S
586
  0x00030147,key.shift_ctrl_home   ,\ ; Shift+Ctrl+Home
614
  0x00030147,key.shift_ctrl_home   ,\ ; Shift+Ctrl+Home
587
\;0x00030148,key.shift_ctrl_up     ,\ ; Shift+Ctrl+Up
615
\;0x00030148,key.shift_ctrl_up     ,\ ; Shift+Ctrl+Up
588
  0x00030149,key.shift_ctrl_pgup   ,\ ; Shift+Ctrl+PageUp
616
  0x00030149,key.shift_ctrl_pgup   ,\ ; Shift+Ctrl+PageUp
589
  0x0003014B,key.shift_ctrl_left   ,\ ; Shift+Ctrl+Left
617
  0x0003014B,key.shift_ctrl_left   ,\ ; Shift+Ctrl+Left
Line 611... Line 639...
611
  0x00010153,key.tb.del 	   ,\ ; Shift+Del
639
  0x00010153,key.tb.del 	   ,\ ; Shift+Del
612
  0
640
  0
Line 613... Line 641...
613
 
641
 
614
accel_table2 dd 	   \
642
accel_table2 dd 	   \
615
  1,btn.close_main_window ,\
-
 
616
\;10000,btn.compile       ,\
-
 
617
\;10001,btn.compile_run   ,\
-
 
618
\;10002,btn.debug_board   ,\
-
 
619
\;10003,btn.sysfuncs_txt  ,\
643
  1,btn.close_main_window ,\
620
  'UP',btn.scroll_up	  ,\
644
  'UP',btn.scroll_up	  ,\
621
  'DN',btn.scroll_down	  ,\
645
  'DN',btn.scroll_down	  ,\
622
  'LT',btn.scroll_left	  ,\
646
  'LT',btn.scroll_left	  ,\
623
  'RT',btn.scroll_right   ,\
-
 
624
\;5,key.ctrl_o            ,\
647
  'RT',btn.scroll_right   ,\
Line 625... Line 648...
625
  0
648
  0
626
 
649
 
627
accel_table2_botdlg dd	   \
650
accel_table2_botdlg dd	   \
628
  1,btn.close_main_window ,\
651
  1,btn.close_main_window ,\
629
  20001,btn.bot.cancel	  ,\
652
  20001,btn.bot.cancel	  ,\
630
  20002,btn.bot.opensave  ,\
653
  20002,btn.bot.opensave  ,\
Line 631... Line 654...
631
  20003,btn.bot.find	  ,\
654
  20003,btn.bot.find	  ,\
632
  0
-
 
633
 
655
  0
634
add_table:
656
 
635
; times $61 db -$00
657
add_table:
636
  times $1A db -$20
658
  times $1A db -$20
637
  times $25 db -$00
659
  times $25 db -$00
638
  times $10 db -$20
660
  times $10 db -$20
639
  times $30 db -$00
661
  times $30 db -$00
Line 640... Line -...
640
  times $10 db -$50
-
 
641
  times $04 db -$00,-$01
-
 
642
  times $08 db -$00
662
  times $10 db -$50
Line 643... Line -...
643
 
-
 
644
;error_beep      db 0xA0,0x30,0
-
 
645
 
-
 
646
s_status dd 0
-
 
647
 
-
 
648
sz s_example,'EXAMPLE.ASM'
663
  times $04 db -$00,-$01
649
sz s_still  ,'still'
664
  times $08 db -$00
650
 
665
 
651
;sz param_setup,'LANG',0 ; parameter for SETUP
666
s_status dd 0
652
 
667
 
Line 677... Line 692...
677
	dd	sysfuncs_param
692
	dd	sysfuncs_param
678
	dd	0
693
	dd	0
679
	dd	0
694
	dd	0
680
	db	'/RD/1/DOCPAK',0
695
	db	'/RD/1/DOCPAK',0
Line 681... Line -...
681
 
-
 
682
;sz setup           ,'SETUP      ' ; to change keyboard layout
-
 
683
 
696
 
Line 684... Line -...
684
sz sysfuncs_param,'g',0
-
 
685
 
-
 
686
lsz sysfuncs_filename,\
-
 
687
  ru,<'SYSFUNCR.TXT',0>,\
-
 
688
  en,<'SYSFUNCS.TXT',0>
-
 
689
 
-
 
690
sz htext,'TINYPAD ',APP_VERSION
-
 
691
 
-
 
692
lszc help_text,b,\
-
 
693
  ru,'ŠŽŒ€„›:',\
-
 
694
  ru,' ',\
-
 
695
  ru,'  CTRL+F1 : â® ®ª­®',\
-
 
696
  ru,'  CTRL+S  : ¥à¢ ï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
-
 
697
  ru,'  CTRL+E  : ®á«¥¤­ïï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
-
 
698
  ru,'  CTRL+P  : ‚áâ ¢¨âì ¢ë¡à ­­®¥ ­  ⥪ãéãî ¯®§¨æ¨î',\
-
 
699
  ru,'  CTRL+D  : “¤ «¨âì áâபã',\
-
 
700
  ru,'  CTRL+L  : ‚áâ ¢¨âì áâபã-à §¤¥«¨â¥«ì',\
-
 
701
  ru,'  CTRL+[  : ¥à¥©â¨ ¢ ­ ç «® ä ©« ',\
-
 
702
  ru,'  CTRL+]  : ¥à¥©â¨ ¢ ª®­¥æ ä ©« ',\
-
 
703
  ru,'  CTRL+F2 : ‡ £à㧨âì ä ©«',\
-
 
704
  ru,'  CTRL+F3 : ®¨áª',\
-
 
705
  ru,'  CTRL+F4 : ‘®åà ­¨âì ä ©«',\
-
 
706
  ru,'  CTRL+F5 : ‚¢¥á⨠¨¬ï ä ©« ',\
-
 
707
  ru,'  CTRL+F6 : ‚¢¥á⨠áâப㠤«ï ¯®¨áª ',\
-
 
708
  ru,'  CTRL+F8 : ‘¬¥­¨âì à áª« ¤ªã ª« ¢¨ âãàë',\
-
 
709
\
-
 
710
  en,'COMMANDS:',\
-
 
711
  en,' ',\
-
 
712
  en,'  CTRL+F1 : SHOW THIS WINDOW',\
-
 
713
  en,'  CTRL+S  : SELECT FIRST STRING TO COPY',\
-
 
714
  en,'  CTRL+E  : SELECT LAST STRING TO COPY',\
-
 
715
  en,'  CTRL+P  : PASTE SELECTED TO CURRENT POSITION',\
-
 
716
  en,'  CTRL+D  : DELETE CURRENT LINE',\
-
 
717
  en,'  CTRL+L  : INSERT SEPARATOR LINE',\
-
 
718
  en,'  CTRL+[  : GO TO THE BEGINNING OF FILE',\
-
 
719
  en,'  CTRL+]  : GO TO THE END OF FILE',\
-
 
720
  en,'  CTRL+F2 : LOAD FILE',\
-
 
721
  en,'  CTRL+F3 : SEARCH',\
-
 
722
  en,'  CTRL+F4 : SAVE FILE',\
-
 
723
  en,'  CTRL+F5 : ENTER FILENAME',\
-
 
724
  en,'  CTRL+F6 : ENTER SEARCH STRING',\
-
 
725
  en,'  CTRL+F8 : CHANGE KEYBOARD LAYOUT'
-
 
726
db 0
-
 
727
 
-
 
728
menubar_res main_menu,\
-
 
729
  ru,'” ©«'     ,popup_file   ,onshow.file   ,\
-
 
730
  ru,'à ¢ª '   ,popup_edit   ,onshow.edit   ,\
-
 
731
  ru,'®¨áª'    ,popup_search ,onshow.search ,\
-
 
732
  ru,'‡ ¯ãáª'   ,popup_run    ,onshow.run    ,\
-
 
733
  ru,'Š®¤¨à®¢ª ',popup_recode ,onshow.recode ,\
-
 
734
  ru,'Ž¯æ¨¨'    ,popup_options,onshow.options,\
-
 
735
\
-
 
736
  en,'File'    ,popup_file   ,onshow.file   ,\
-
 
737
  en,'Edit'    ,popup_edit   ,onshow.edit   ,\
-
 
738
  en,'Search'  ,popup_search ,onshow.search ,\
-
 
739
  en,'Run'     ,popup_run    ,onshow.run    ,\
-
 
740
  en,'Encoding',popup_recode ,onshow.recode ,\
-
 
741
  en,'Options' ,popup_options,onshow.options
-
 
742
 
-
 
743
popup_res popup_file,\
-
 
744
  ru,'®¢ë©'	       ,'Ctrl+N'      ,key.ctrl_n      ,\
-
 
745
  ru,'Žâªàëâì...'      ,'Ctrl+O'      ,key.ctrl_o      ,\
-
 
746
  ru,'‘®åà ­¨âì'       ,'Ctrl+S'      ,key.ctrl_s      ,\
-
 
747
  ru,'‘®åà ­¨âì ª ª...','Ctrl+Shift+S',key.shift_ctrl_s,\
-
 
748
  ru,'-'	       ,''	      ,0	       ,\
-
 
749
  ru,'‚ë室'	       ,'Alt+X'       ,key.alt_x       ,\
-
 
750
\
-
 
751
  en,'New'	 ,'Ctrl+N'	,key.ctrl_n	 ,\
-
 
752
  en,'Open...'	 ,'Ctrl+O'	,key.ctrl_o	 ,\
-
 
753
  en,'Save'	 ,'Ctrl+S'	,key.ctrl_s	 ,\
-
 
754
  en,'Save as...','Ctrl+Shift+S',key.shift_ctrl_s,\
-
 
755
  en,'-'	 ,''		,0		 ,\
-
 
756
  en,'Exit'	 ,'Alt+X'	,key.alt_x
697
sz sysfuncs_param,'g',0
757
 
-
 
758
popup_res popup_edit,\
-
 
759
  ru,'‚ë१ âì'    ,'Ctrl+X',key.ctrl_x,\
-
 
760
  ru,'Š®¯¨à®¢ âì'  ,'Ctrl+C',key.ctrl_c,\
-
 
761
  ru,'‚áâ ¢¨âì'    ,'Ctrl+V',key.ctrl_v,\
-
 
762
  ru,'“¤ «¨âì'	   ,''	    ,key.del   ,\
-
 
763
  ru,'-'	   ,''	    ,0	       ,\
-
 
764
  ru,'‚뤥«¨âì ¢áñ','Ctrl+A',key.ctrl_a,\
-
 
765
\;  ru,'-'           ,''      ,0         ,\
-
 
766
\;  ru,'‚¥à⨪ «ì­®¥ ¢ë¤¥«¥­¨¥','Alt+Ins',0         ,\
-
 
767
\
-
 
768
  en,'Cut'	 ,'Ctrl+X',key.ctrl_x,\
-
 
769
  en,'Copy'	 ,'Ctrl+C',key.ctrl_c,\
-
 
770
  en,'Paste'	 ,'Ctrl+V',key.ctrl_v,\
-
 
771
  en,'Delete'	 ,''	  ,key.del   ,\
-
 
772
  en,'-'	 ,''	  ,0	     ,\
-
 
773
  en,'Select all','Ctrl+A',key.ctrl_a;,\
-
 
774
;  en,'-'         ,''      ,0         ,\
-
 
775
;  en,'Vertical selection','Alt+Ins',0
-
 
776
 
-
 
777
popup_res popup_search,\
-
 
778
  ru,'¥à¥©â¨...' ,'Ctrl+G',key.ctrl_g,\
-
 
779
  ru,'-'	  ,''	   ,0	      ,\
-
 
780
  ru,' ©â¨...'   ,'Ctrl+F',key.ctrl_f,\
-
 
781
  ru,' ©â¨ ¤ «¥¥','F3'    ,key.f3    ,\
-
 
782
  ru,'‡ ¬¥­¨âì...','Ctrl+H',key.ctrl_h,\
-
 
783
\
-
 
784
  en,'Position...','Ctrl+G',key.ctrl_g,\
-
 
785
  en,'-'	  ,''	   ,0	      ,\
-
 
786
  en,'Find...'	  ,'Ctrl+F',key.ctrl_f,\
-
 
787
  en,'Find next'  ,'F3'    ,key.f3    ,\
-
 
788
  en,'Replace...' ,'Ctrl+H',key.ctrl_h
-
 
789
 
-
 
790
popup_res popup_run,\
-
 
791
  ru,'‡ ¯ãáâ¨âì'	,'F9'	  ,key.f9	    ,\
-
 
792
  ru,'Š®¬¯¨«¨à®¢ âì'	,'Ctrl+F9',key.ctrl_f9	    ,\
-
 
793
  ru,'-'		,''	  ,0		    ,\
-
 
794
  ru,'„®áª  ®â« ¤ª¨'	,''	  ,open_debug_board ,\
-
 
795
  ru,'‘¨á⥬­ë¥ ä㭪樨',''	  ,open_sysfuncs_txt,\
-
 
796
\
-
 
797
  en,'Run'		,'F9'	  ,key.f9	    ,\
-
 
798
  en,'Compile'		,'Ctrl+F9',key.ctrl_f9	    ,\
-
 
799
  en,'-'		,''	  ,0		    ,\
-
 
800
  en,'Debug board'	,''	  ,open_debug_board ,\
-
 
801
  en,'System functions' ,''	  ,open_sysfuncs_txt
-
 
802
 
-
 
803
popup_res popup_recode,\
-
 
804
  ru,'CP866  -> CP1251' ,'',recode.866.1251,\
-
 
805
  ru,'CP1251 -> CP866'	,'',recode.1251.866,\
-
 
806
  ru,'-'		,'',0,\
-
 
807
  ru,'CP866  -> KOI8-R' ,'',recode.866.koi,\
-
 
808
  ru,'KOI8-R -> CP866'	,'',recode.koi.866,\
-
 
809
  ru,'-'		,'',0,\
-
 
810
  ru,'CP1251 -> KOI8-R' ,'',recode.1251.koi,\
-
 
811
  ru,'KOI8-R -> CP1251' ,'',recode.koi.1251,\
-
 
812
\
-
 
813
  en,'CP866  -> CP1251' ,'',recode.866.1251,\
-
 
814
  en,'CP1251 -> CP866'	,'',recode.1251.866,\
-
 
815
  en,'-'		,'',0,\
-
 
816
  en,'CP866  -> KOI8-R' ,'',recode.866.koi,\
-
 
817
  en,'KOI8-R -> CP866'	,'',recode.koi.866,\
-
 
818
  en,'-'		,'',0,\
-
 
819
  en,'CP1251 -> KOI8-R' ,'',recode.1251.koi,\
-
 
820
  en,'KOI8-R -> CP1251' ,'',recode.koi.1251
-
 
821
 
-
 
822
popup_res popup_options,\
-
 
823
  ru,'‚­¥è­¨© ¢¨¤...'	     ,'',0,\
-
 
824
  ru,'-'		     ,'',0,\
-
 
825
  ru,'¥§®¯ á­®¥ ¢ë¤¥«¥­¨¥'  ,'',set_secure_sel,\
-
 
826
  ru,'€¢â®¬ â¨ç¥áª¨¥ ᪮¡ª¨' ,'',set_auto_braces,\
-
 
827
  ru,'€¢â®¬ â¨ç¥áª¨© ®âáâã¯' ,'',set_auto_indents,\
-
 
828
  ru,'“¬­ ï â ¡ã«ïæ¨ï'	     ,'',0,\
-
 
829
  ru,'Ž¯â¨¬ «ì­®¥ á®åà ­¥­¨¥','',set_optimal_fill,\
-
 
830
  ru,'-'		     ,'',0,\
-
 
831
  ru,'®¬¥à  áâப'	     ,'',set_line_numbers,\
-
 
832
\
-
 
833
  en,'Appearance...'	     ,'',0,\
-
 
834
  en,'-'		     ,'',0,\
-
 
835
  en,'Secure selection'      ,'',set_secure_sel,\
-
 
836
  en,'Automatic brackets'    ,'',set_auto_braces,\
-
 
837
  en,'Automatic indents'     ,'',set_auto_indents,\
-
 
838
  en,'Smart tabulation'      ,'',0,\
-
 
839
  en,'Optimal fill on saving','',set_optimal_fill,\
-
 
840
  en,'-'		     ,'',0,\
-
 
841
  en,'Line numbers'	     ,'',set_line_numbers
-
 
842
 
-
 
843
lsz s_modified,\
-
 
844
  ru,'ˆ§¬¥­¥­®',\
-
 
845
  en,'Modified'
-
 
846
 
-
 
847
lsz s_2filename,\
-
 
848
  ru,'ˆ¬ï ä ©« :',\
-
 
849
  en,'Filename:'
-
 
850
lsz s_2open,\
-
 
851
  ru,'Žâªàëâì',\
-
 
852
  en,'Open'
-
 
853
lsz s_2save,\
-
 
854
  ru,'‘®åà ­¨âì',\
-
 
855
  en,'Save'
-
 
856
lsz s_2find,\
-
 
857
  ru,' ©â¨',\
-
 
858
  en,'Find'
-
 
859
db ':'
-
 
860
lsz s_2replace,\
-
 
861
  ru,'‡ ¬¥­¨âì',\
-
 
862
  en,'Replace'
-
 
863
db ':'
-
 
864
lsz s_2cancel,\
-
 
865
  ru,'Žâ¬¥­ ',\
-
 
866
  en,'Cancel'
-
 
867
 
-
 
868
lsz s_enter_filename,\
-
 
869
  ru,<'‚¢¥¤¨â¥ ¨¬ï ä ©« ',0>,\
-
 
870
  en,<'Enter filename',0>
-
 
871
 
-
 
872
lsz s_enter_text_to_find,\
-
 
873
  ru,<'‚¢¥¤¨â¥ ⥪áâ ¤«ï ¯®¨áª ',0>,\
-
 
874
  en,<'Enter text to find',0>
-
 
875
 
-
 
876
lsz s_enter_text_to_replace,\
-
 
877
  ru,<'‚¢¥¤¨â¥ ⥪áâ ¤«ï § ¬¥­ë',0>,\
-
 
878
  en,<'Enter text to replace',0>
-
 
879
 
-
 
880
lsz s_text_not_found,\
-
 
881
  ru,<'„®á⨣­ãâ ª®­¥æ ä ©« , ⥪áâ ­¥ ­ ©¤¥­',0>,\
-
 
882
  en,<'Reached end of file, text not found',0>
-
 
883
 
-
 
884
lszc s_fs_error,b,\
-
 
885
  ru,<'Ž¯¥à æ¨ï § ¢¥à襭  ãᯥ譮 (0)',0>,\
-
 
886
  ru,<'',0>,\
-
 
887
  ru,<'”ã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë (2)',0>,\
-
 
888
  ru,<'¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬  (3)',0>,\
-
 
889
  ru,<'',0>,\
-
 
890
  ru,<'¥¢®§¬®¦­® ®âªàëâì ä ©« (5)',0>,\
-
 
891
  ru,<'Ž¯¥à æ¨ï § ¢¥à襭  ãᯥ譮 (6)',0>,\
-
 
892
  ru,<'€¤à¥á ­ å®¤¨âáï §  £à ­¨æ ¬¨ ¯ ¬ï⨠¯à®£à ¬¬ë (7)',0>,\
-
 
893
  ru,<'  ¤¨áª¥ ­¥â ᢮¡®¤­®£® ¬¥áâ  (8)',0>,\
-
 
894
  ru,<'’ ¡«¨æ  FAT ã­¨ç⮦¥­  (9)',0>,\
-
 
895
  ru,<'„®áâ㯠§ ¯à¥éñ­ (10)',0>,\
-
 
896
  ru,<'Žè¨¡ª  ãáâனá⢠ (11)',0>,\
-
 
897
\
-
 
898
  en,<'Operation executed successfully (0)',0>,\
-
 
899
  en,<'',0>,\
-
 
900
  en,<'Function is not supported for the given filesystem (2)',0>,\
-
 
901
  en,<'Unknown filesystem (3)',0>,\
-
 
902
  en,<'',0>,\
-
 
903
  en,<'Unable to open file (5)',0>,\
-
 
904
  en,<'Operation executed successfully (6)',0>,\
-
 
905
  en,<'Pointer lies outside of application memory (7)',0>,\
-
 
906
  en,<'Disk is full (8)',0>,\
-
 
907
  en,<'FAT table is destroyed (9)',0>,\
-
 
Line 908... Line 698...
908
  en,<'Access denied (10)',0>,\
698
 
909
  en,<'Device error (11)',0>
699
include 'tp-locale.inc'
Line 910... Line 700...
910
 
700
 
911
sz symbols_ex,';?.%"',"'"
701
sz symbols_ex,';?.%"',"'"
912
sz symbols   ,'#&*\:/<>|{}()[]=+-, '
702
sz symbols   ,'#&*\:/<>|{}()[]=+-, '
913
 
703
 
914
ini_sec_window	  db 'Window',0
704
sz ini_sec_window   ,'Window',0
915
ini_window_top	  db 'Top',0
-
 
916
ini_window_left   db 'Left',0
-
 
917
ini_window_right  db 'Right',0
-
 
Line 918... Line 705...
918
ini_window_bottom db 'Bottom',0
705
sz ini_window_top   ,'Top',0
Line 919... Line 706...
919
 
706
sz ini_window_left  ,'Left',0
Line 920... Line 707...
920
finfo_ini dd ?,?,?,AREA_TEMP,AREA_EDIT-AREA_TEMP
707
sz ini_window_right ,'Right',0
921
	  db '/rd/1/tinypad.ini',0
708
sz ini_window_bottom,'Bottom',0
922
 
709
 
Line 923... Line -...
923
TINYPAD_END:	 ; end of file
-
 
924
 
-
 
925
self_path rb PATHL
710
TINYPAD_END:	 ; end of file
926
 
-
 
927
;-----------------------------------------------------------------------------
-
 
928
section @UDATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
711
 
929
;-----------------------------------------------------------------------------
712
self_path rb PATHL
-
 
713
 
-
 
714
;-----------------------------------------------------------------------------
-
 
715
section @UDATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
 
716
;-----------------------------------------------------------------------------
-
 
717
 
-
 
718
f_info.length dd ?
-
 
719
f_info.path:
-
 
720
    times PATHL+1 db ?
-
 
721
f_info70 rd 7
Line 930... Line -...
930
 
-
 
931
f_info70 rd 7
-
 
932
 
-
 
933
f_info.length dd ?
-
 
934
f_info dd ?,?,?,?,?;?,0,?,AREA_TEMP,AREA_EDIT-AREA_TEMP
-
 
935
 
722
 
936
f_info.path:
-
 
937
    times PATHL+1 db ?
723
file_info FILEINFO
938
 
724
 
939
pos.x	      dd ?    ; global X position (cursor)
725
tab_bar      TABCTL
940
pos.y	      dd ?    ; global Y position (cursor)
726
virtual at tab_bar.Current
941
sel.x	      dd ?    ; global X position (selection start)
727
  cur_tab      TABITEM
942
sel.y	      dd ?    ; global Y position (selection start)
-
 
943
lines	      dd ?    ; number of lines in file
-
 
944
lines.scr     dd ?    ; number of lines on the screen
-
 
945
columns       dd ?    ; number of columns in file
-
 
946
columns.scr   dd ?    ; number of columns on the screen
-
 
947
top_ofs       dd ?    ; height occupied by top buttons
-
 
948
bot_ofs       dd ?    ; height occupied by bottom buttons
-
 
949
	      dw ?
728
  ;cur_tab_addr dd ?
950
left_ofs      dd ?    ;
-
 
951
top_line      dd ?    ; topmost visible line on screen
-
 
952
left_col      dd ?    ; leftmost visible char on line
-
 
953
vscrl_top     dd ?
-
 
954
vscrl_size    dd ?
729
end virtual
955
hscrl_top     dd ?
730
 
956
hscrl_size    dd ?
731
lines.scr     dd ?    ; number of lines on the screen
Line 957... Line 732...
957
;skinh         dd ?    ; skin height
732
columns.scr   dd ?    ; number of columns on the screen
Line 976... Line 751...
976
sel.end.y     dd ?
751
sel.end.y     dd ?
977
sel.selected  db ?
752
sel.selected  db ?
Line 978... Line 753...
978
 
753
 
Line 979... Line -...
979
in_sel	      db ?
-
 
980
 
754
in_sel	      db ?
981
asm_mode      db ?    ; ASM highlight?
755
 
982
do_not_draw   db ?    ; draw top and bottom buttons?
756
do_not_draw   db ?    ; draw top and bottom buttons?
Line 983... Line 757...
983
main_closed   db ?    ; main window closed?
757
main_closed   db ?    ; main window closed?
Line 1019... Line 793...
1019
mouse_captured	db ?
793
mouse_captured	db ?
1020
just_from_popup db ?
794
just_from_popup db ?
Line 1021... Line 795...
1021
 
795
 
Line 1022... Line -...
1022
bot_mode db ?
-
 
1023
 
-
 
1024
modified db ?
796
bot_mode db ?
Line 1025... Line 797...
1025
 
797
 
1026
align 4
798
align 4
Line -... Line 799...
-
 
799
 
-
 
800
bot_dlg_height dd ?
-
 
801
bot_dlg_mode2  db ?
1027
 
802
 
1028
bot_dlg_height dd ?
803
temp_buf dd ?
1029
bot_dlg_mode2  db ?
804
copy_buf dd ?
Line 1030... Line 805...
1030
 
805
 
Line 1031... Line 806...
1031
;-----------------------------------------------------------------------------
806
;-----------------------------------------------------------------------------
1032
section @PARAMS ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
807
section @PARAMS ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1033
;-----------------------------------------------------------------------------
808
;-----------------------------------------------------------------------------
Line 1034... Line -...
1034
 
-
 
1035
fasm_parameters:
-
 
1036
 
-
 
1037
p_info	process_information
-
 
1038
p_info2 process_information
-
 
1039
sc	system_colors
-
 
1040
 
-
 
1041
diff16 'Main memory size',0,$
-
 
1042
 
-
 
1043
MAIN_STACK  = 0x0000FFF0
-
 
1044
POPUP_STACK = 0x0000EFF0
-
 
1045
 
-
 
1046
AREA_TEMP   = 0x00010000 ; 0x00010000
-
 
1047
AREA_EDIT   = 0x000C0000 ; 0x00080000
-
 
1048
AREA_TEMP2  = 0x00190000 ; 0x002E0000
-
 
1049
AREA_CBUF   = 0x001A0000 ; 0x002F0000
-
 
1050
AREA_ENDMEM = 0x001B0000 ; 0x00300000
809
 
1051
 
810
fasm_parameters:
1052
diff10 'Header+options size',0,@CODE
811
 
1053
diff10 'Load area size',AREA_TEMP,AREA_EDIT
812
p_info	process_information
1054
diff10 'Edit area size',AREA_EDIT,AREA_TEMP2
813
p_info2 process_information
1055
diff10 'Total memory usage',0,AREA_ENDMEM
814
sc	system_colors
1056
 
815
 
-
 
816
;store dword '/hd/' at tb_opensave.text+4*0
-
 
817
;store dword '1/tp' at tb_opensave.text+4*1
-
 
818
;store dword 'ad4/' at tb_opensave.text+4*2
-
 
819
;store dword 'tiny' at tb_opensave.text+4*3
-
 
820
;store dword 'pad.' at tb_opensave.text+4*4
-
 
821
;store dword 'asm'  at tb_opensave.text+4*5
-
 
822
;store byte  23     at tb_opensave.length
-
 
823
 
-
 
824
;rb 1024*36
-
 
825
rb 1024*4