Subversion Repositories Kolibri OS

Rev

Rev 595 | Rev 629 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 595 Rev 617
Line 2... Line 2...
2
; project name:      TINYPAD
2
; project name:      TINYPAD
3
; compiler:          flat assembler 1.67.18
3
; compiler:          flat assembler 1.67.18
4
; memory to compile: 3.0/9.0 MBytes (without/with size optimizations)
4
; memory to compile: 3.0/9.0 MBytes (without/with size optimizations)
5
; version:           4.0.4
5
; version:           4.0.4
6
; last update:       2007-02-08 (Feb 08, 2007)
6
; last update:       2007-02-08 (Feb 08, 2007)
7
; minimal kernel:    revision #270 (svn://kolibrios.org/kernel)
7
; minimal kernel:    revision #270 (svn://kolibrios.org/kernel/trunk)
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 (4.1.0):
13
; TODO (4.1.0):
14
;   - optimize drawing (reduce flickering)
-
 
15
;   - add vertical selection, undo, goto position, overwrite mode
14
;   - add vertical selection, undo, goto position, overwrite mode, smart tabulation
16
;   - improve window drawing with small dimensions
15
;   - improve window drawing with small dimensions
17
;   - save settings to ini file, not to executable
16
;   - save/load settings to/from ini file, not executable
18
;   - add prompt to save file before closing/opening
17
;   - path autocompletion for open/save dialogs
19
;   - other bug-fixes and speed/size optimizations
18
;   - other bug-fixes and speed/size optimizations
20
;
-
 
21
; HISTORY:
-
 
22
; 4.0.5 (mike.dld and Rus)
-
 
23
;   bug-fixes:
-
 
24
;     - a new tab is created when opening a file from folder of tinypad
-
 
25
;     - correct call save-dialog for saving new files or files from folder of tinypad
-
 
26
;   new features:
-
 
27
;     - added prompt to save file before closing
-
 
28
;     - added close tab button
-
 
29
; 4.0.4 (mike.dld)
-
 
30
;   bug-fixes:
-
 
31
;     - statusbar contained hint after dialog operation cancelled
-
 
32
;     - small drawing fix for gutter and line saved/modified markers
-
 
33
;       (incorrect calculations)
-
 
34
;     - incorrect lines marking on Ctrl+V
-
 
35
;     - put filename of current tab into open/save dialog (noticed by Maxxxx32)
-
 
36
;   changes:
-
 
37
;     - editor and other modifications to ease parts placement changing,
-
 
38
;       including changes in look
-
 
39
;     - modified/saved colors now match those in MSVS
-
 
40
;     - function 70 for *all* file operations (including diamond's fixes)
-
 
41
;     - use memory manager instead of statically allocated region
-
 
42
;     - case-insensitive filenames input, to be able to open/save files with
19
;-----------------------------------------------------------------------------
43
;       non-latin chars in name (russian etc.)
-
 
44
;     - reduced flickering (changes checker)
-
 
45
;     - overall code cleanup
-
 
46
;   new features:
-
 
47
;     - recode tables between CP866, CP1251 and KOI8-R (suggested by Victor)
-
 
48
;     - tabbed interface, ability to open several files in one app instance
-
 
49
;       (thanks IRC guys for ideas and testing)
-
 
50
;     - make any tab default to compile it disregarding currently active tab
-
 
51
;     - configuration dialog (colors, tabs positioning)
-
 
52
; 4.0.3 (mike.dld)
-
 
53
;   bug-fixes:
-
 
54
;     - 1-char selection if pressing  out of real line length
-
 
55
;     - fault in `writepos`, added call to function 9
-
 
56
;     - main menu items weren't highlighted if popup opened and cursor
-
 
57
;       isn't in main menu item's area
-
 
58
;     - statusbar and textboxes drawing fixes (wrong colors)
-
 
59
;     - perform no redraw while pressing Shift, Ctrl, Alt keys
-
 
60
;     - data length from DOCPAK in string representation (fixed by diamond)
-
 
61
;     - compare file extension case-insensitively (fixed by diamond)
-
 
62
;   changes:
-
 
63
;     - function 70 instead of 58 for files loading/saving
-
 
64
;     - clientarea-relative drawing (less code)
-
 
65
;     - every line's dword is now splitted into 2 words;
-
 
66
;       low word - line block length, so max line length is 65535 now
-
 
67
;       high word - various flags. for now, only 2 of 16 bits are used:
-
 
68
;         if bit #0 is set, line was modified since file open
-
 
69
;         if bit #1 is set, line was saved after last modification
-
 
70
;       high word could also be further used for code collapsing and different
-
 
71
;         line marking features (breakpoints, errors, bookmarks, etc.)
-
 
72
;   new features:
-
 
73
;     - line markers for modified and saved lines
-
 
74
;     - status messages for various actions
-
 
75
; 4.0.2 (mike.dld)
-
 
76
;   bug-fixes:
-
 
77
;     - program terminates if started with parameters (fine for DOCPAK)
-
 
78
; 4.0.1 (mike.dld)
-
 
79
;   bug-fixes:
-
 
80
;     - unable to run program after exiting from main menu (Alt+X)
-
 
81
;   new features:
-
 
82
;     - integration with DOCPAK
-
 
83
; 4.0 (mike.dld)
-
 
84
;   bug-fixes:
-
 
85
;     - main menu popups' "on show" was called only for first shown popup
-
 
86
;     - clear selection on left/right arrow keys
-
 
87
;   new features:
-
 
88
;     - "replace" dialog (w/o "skip", "replace all")
-
 
89
;     - line numbers display
-
 
90
;     - options (except "appearance" and "smart tabulation")
-
 
91
;     - options saving (colors, window position, "Options" popup triggers)
-
 
92
; 4.0 beta 2 (mike.dld)
-
 
93
;   bug-fixes:
-
 
94
;     - unable to start if /rd/1/example.asm is missing (from Halyavin)
-
 
95
;     - clicking on menu items draws main window in popup (from Rohan)
-
 
96
;     - passed parameters aren't taken into account (from Mario79)
-
 
97
;     - background isn't erased if text lines < screen lines after
-
 
98
;       selection deletion (from Rohan)
-
 
99
; 4.0 beta 1 (mike.dld)
-
 
100
;   menu bar and popup menu;
-
 
101
;     removed buttons from the top and input fields from the bottom since
-
 
102
;     now they're accesible through main/popup menu;
-
 
103
;   improved keyboard handling (using 66th function);
-
 
104
;     support for almost all FASMW keyboard shourtcuts;
-
 
105
;   added text selection ability, standard selection operations
-
 
106
;     (copy,cut,paste);
-
 
107
;   new integrated dialogs (open, save, find)
-
 
108
;   fix to collapse SPACEs into TABs only for *.asm and *.inc files
-
 
109
; 3.78a (mike.dld)
-
 
110
;   fixed termination while typing in x positions higher than (line_length+10);
-
 
111
;   improved drawing on small heights
-
 
112
;     don't draw window while its height = 0 (Kolibri "minimize" support)
-
 
113
; 3.78 (mike.dld)
-
 
114
;   now lines may be of ANY length;
-
 
115
;     optimized memory usage (less memory for internal file representation)
-
 
116
;       after loading file, it's internal size equals to its real size
-
 
117
;       plus 14 bytes for each line (4 bytes for line length
-
 
118
;         and 10 spaced to the end - to reduce data relocations count);
-
 
119
;     completely rewritten keyboard handling;
-
 
120
;     added horizontal scrollbar;
-
 
121
;   all line feed formats are supported: WIN(CRLF),*NIX(LF),MAC(CR);
-
 
122
;   etc.
-
 
123
; 3.77 (mike.dld)
-
 
124
;   changed save_string to collapse SPACEs into TABs;
-
 
125
;   rewrote drawfile from scratch (speed++)
-
 
126
;     through some drawing improvements  needed
-
 
127
;     (some checkups to reduce flickering);
-
 
128
;   writepos (size--);
-
 
129
;   fixed drawing window while height < 100px, and for non-asm files;
-
 
130
;   several small fixes; speed/size optimizations
-
 
131
; 3.76 (mike.dld)
-
 
132
;   changed loadfile/loadhdfile to expand TABs into SPACEs;
-
 
133
;   changed TAB,ENTER,DELETE,BSPACE keys behaviour (rewritten from scratch);
-
 
134
;   vertical scrollbar;
-
 
135
;   extra window resizing capabilities (added a couple of constants);
-
 
136
;   completely new text cursor management & moving text cursor with mouse;
-
 
137
;   improved search function, moving cursor to beginning of text found;
-
 
138
;   adjustable max line width (change LINE_WIDTH & recompile) // (obsolet)
-
 
139
; 3.75a
-
 
140
;   fixed converting char to upper case in read_string
-
 
141
; 3.75
-
 
142
;   rewrote save_file from scratch; bugfix in loadfile;
-
 
143
; 3.74
-
 
144
;   optimisation
-
 
145
; 3.73
-
 
146
;   completly new load_file function
-
 
147
; 3.72
-
 
148
;   speed++
-
 
149
; 3.71
-
 
150
;   error beep
-
 
151
; 3.6,3.7:
-
 
152
;   many bugs fixed
-
 
153
;   simple toolbar
-
 
154
;   compile, run applications from TINYPAD, all fasm output is in debug board
-
 
155
;   TAB button
-
 
156
;   auto-indent
-
 
157
;   Ctrl+L - insert comment string
20
; See history.txt for complete changelog
158
;-----------------------------------------------------------------------------
21
;-----------------------------------------------------------------------------
Line 159... Line 22...
159
 
22
 
-
 
23
include 'lang.inc'
160
include 'lang.inc'
24
 
-
 
25
include '../../../macros.inc' ; useful stuff
161
include '..\..\..\macros.inc' ; useful stuff
26
include '../../../struct.inc'
-
 
27
include '../../../proc32.inc'
-
 
28
 
-
 
29
include 'external/libio.inc'
162
;include 'proc32.inc'
30
 
-
 
31
include 'tinypad.inc'
163
include 'tinypad.inc'
32
 
Line 164... Line 33...
164
;purge mov,add,sub            ;  SPEED
33
;purge mov,add,sub            ;  SPEED
Line 165... Line 34...
165
 
34
 
Line -... Line 35...
-
 
35
header '01',1,@CODE,TINYPAD_END,STATIC_MEM_END,MAIN_STACK,@PARAMS,self_path
-
 
36
 
-
 
37
APP_VERSION equ '4.0.4'
166
header '01',1,@CODE,TINYPAD_END,STATIC_MEM_END,MAIN_STACK,@PARAMS,self_path
38
 
167
 
39
TRUE = 1
168
APP_VERSION equ '4.0.4'
40
FALSE = 0
169
 
41
 
Line 239... Line 111...
239
 
111
 
240
	mcall	68,11
112
	mcall	68,11
241
	or	eax,eax
113
	or	eax,eax
Line -... Line 114...
-
 
114
	jz	key.alt_x.close
242
	jz	key.alt_x.close
115
 
-
 
116
	stdcall dll.Load,@IMPORT
-
 
117
	or	eax,eax
243
 
118
	jnz	key.alt_x.close
244
	mov	eax,65536
119
 
Line 245... Line 120...
245
	call	mem.Alloc
120
	stdcall mem.Alloc,65536
Line 246... Line 121...
246
	mov	[temp_buf],eax
121
	mov	[temp_buf],eax
Line 283... Line 158...
283
    @@:
158
    @@:
284
;// diamond ]
159
;// diamond ]
Line 285... Line 160...
285
 
160
 
Line 286... Line -...
286
	add	edx,20
-
 
287
 
161
	add	edx,20
288
	mov	eax,edx
162
 
289
	call	mem.Alloc
163
	stdcall mem.Alloc,edx
Line 290... Line 164...
290
	mov	ebp,eax
164
	mov	ebp,eax
291
	push	eax
165
	push	eax
Line 305... Line 179...
305
	lea	esi,[ebp+16]
179
	lea	esi,[ebp+16]
306
	call	create_tab
180
	call	create_tab
307
	call	load_from_memory
181
	call	load_from_memory
Line 308... Line 182...
308
 
182
 
309
	pop	ebp
-
 
310
	mov	eax,ebp
183
	pop	ebp
Line 311... Line 184...
311
	call	mem.Free
184
	stdcall mem.Free,ebp
312
 
185
 
Line 313... Line 186...
313
	jmp	@f
186
	jmp	@f
Line 359... Line 232...
359
	jz	mouse
232
	jz	mouse
Line 360... Line 233...
360
 
233
 
Line 361... Line 234...
361
	jmp	still.skip_write
234
	jmp	still.skip_write
-
 
235
 
-
 
236
;-----------------------------------------------------------------------------
-
 
237
proc get_event ctx ;//////////////////////////////////////////////////////////
-
 
238
;-----------------------------------------------------------------------------
-
 
239
	mcall	10
-
 
240
	dec	eax	; redraw ?
-
 
241
	jz	.redraw
-
 
242
	dec	eax	; key ?
-
 
243
	jz	.key
-
 
244
	dec	eax	; button ?
-
 
245
	jz	.button
-
 
246
	sub	eax,2	; background ?
-
 
247
	jz	.background
-
 
248
	dec	eax	; mouse ?
-
 
249
	jz	.mouse
-
 
250
	dec	eax	; ipc ?
-
 
251
	jz	.ipc
-
 
252
	dec	eax	; network ?
-
 
253
	jz	.network
-
 
254
	dec	eax	; debug ?
-
 
255
	jz	.debug
-
 
256
	sub	eax,7	; irq ?
-
 
257
	js	.nothing
-
 
258
	cmp	eax,15
-
 
259
	jg	.nothing
-
 
260
	jmp	.irq
-
 
261
 
-
 
262
  .nothing:
-
 
263
	mov	eax,EV_IDLE
-
 
264
	ret
-
 
265
 
-
 
266
  .redraw:
-
 
267
	mov	eax,EV_REDRAW
-
 
268
	ret
-
 
269
 
-
 
270
  .key:
-
 
271
	mov	eax,EV_KEY
-
 
272
	ret
-
 
273
 
-
 
274
  .button:
-
 
275
	mov	eax,EV_BUTTON
-
 
276
	ret
-
 
277
 
-
 
278
  .background:
-
 
279
	mov	eax,EV_BACKGROUND
-
 
280
	ret
-
 
281
 
-
 
282
  .mouse:
-
 
283
	mov	eax,EV_MOUSE
-
 
284
	ret
-
 
285
 
-
 
286
  .ipc:
-
 
287
	mov	eax,EV_IPC
-
 
288
	ret
-
 
289
 
-
 
290
  .network:
-
 
291
	mov	eax,EV_NETWORK
-
 
292
	ret
-
 
293
 
-
 
294
  .debug:
-
 
295
	mov	eax,EV_DEBUG
-
 
296
	ret
-
 
297
endp
362
 
298
 
363
;-----------------------------------------------------------------------------
299
;-----------------------------------------------------------------------------
364
func start_fasm ;/////////////////////////////////////////////////////////////
300
proc start_fasm ;/////////////////////////////////////////////////////////////
365
;-----------------------------------------------------------------------------
301
;-----------------------------------------------------------------------------
366
; BL = run after compile
302
; BL = run after compile
367
;-----------------------------------------------------------------------------
303
;-----------------------------------------------------------------------------
Line 424... Line 360...
424
	mov	[app_start.filename],app_fasm
360
	mov	[app_start.filename],app_fasm
425
	mov	[app_start.params],fasm_parameters
361
	mov	[app_start.params],fasm_parameters
426
start_ret:
362
start_ret:
427
	mcall	70,app_start
363
	mcall	70,app_start
428
	ret
364
	ret
429
endf
365
endp
Line 430... Line 366...
430
 
366
 
431
;-----------------------------------------------------------------------------
367
;-----------------------------------------------------------------------------
432
func open_debug_board ;///////////////////////////////////////////////////////
368
proc open_debug_board ;///////////////////////////////////////////////////////
433
;-----------------------------------------------------------------------------
369
;-----------------------------------------------------------------------------
434
	mov	[app_start.filename],app_board
370
	mov	[app_start.filename],app_board
435
	mov	[app_start.params],0
371
	mov	[app_start.params],0
436
	jmp	start_ret
372
	jmp	start_ret
Line 437... Line 373...
437
endf
373
endp
438
 
374
 
439
;-----------------------------------------------------------------------------
375
;-----------------------------------------------------------------------------
440
func open_sysfuncs_txt ;//////////////////////////////////////////////////////
376
proc open_sysfuncs_txt ;//////////////////////////////////////////////////////
441
;-----------------------------------------------------------------------------
377
;-----------------------------------------------------------------------------
442
	mov	[app_start.filename],app_docpak
378
	mov	[app_start.filename],app_docpak
443
	mov	[app_start.params],sysfuncs_param
379
	mov	[app_start.params],sysfuncs_param
444
	call	start_ret
380
	call	start_ret
445
	cmp	eax,0xfffffff0
381
	cmp	eax,0xfffffff0
446
	jb	@f
382
	jb	@f
447
	mov	[app_start.filename],app_tinypad
383
	mov	[app_start.filename],app_tinypad
448
	mov	[app_start.params],sysfuncs_filename
384
	mov	[app_start.params],sysfuncs_filename
449
	call	start_ret
385
	call	start_ret
Line 450... Line 386...
450
    @@: ret
386
    @@: ret
Line 451... Line 387...
451
endf
387
endp
452
 
388
 
Line 490... Line 426...
490
	xor	[options],al
426
	xor	[options],al
491
	ret
427
	ret
Line 492... Line 428...
492
 
428
 
Line 493... Line 429...
493
;-----------------------------------------------------------------------------
429
;-----------------------------------------------------------------------------
Line 494... Line 430...
494
 
430
 
495
include 'tp-defines.inc'
431
include 'data/tp-defines.inc'
496
 
432
 
497
include 'tp-draw.asm'
433
include 'tp-draw.asm'
Line 505... Line 441...
505
include 'tp-tbox.asm'
441
include 'tp-tbox.asm'
506
include 'tp-tabctl.asm'
442
include 'tp-tabctl.asm'
507
include 'tp-editor.asm'
443
include 'tp-editor.asm'
508
include 'tp-recode.asm'
444
include 'tp-recode.asm'
Line 509... Line 445...
509
 
445
 
Line 510... Line 446...
510
;include 'lib-ini.asm'
446
include 'external/dll.inc'
511
 
447
 
512
;-----------------------------------------------------------------------------
448
;-----------------------------------------------------------------------------
Line 513... Line -...
513
section @DATA ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
 
514
;-----------------------------------------------------------------------------
-
 
515
 
-
 
516
vscrl_capt dd -1
-
 
517
hscrl_capt dd -1
-
 
518
body_capt  dd -1
-
 
519
 
-
 
520
key0 db \
-
 
521
  0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,\
-
 
522
  0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x00,0x00,\
-
 
523
  0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,\
-
 
524
  0x18,0x19,0x1A,0x1B,0x00,0x00,0x1E,0x1F,\
-
 
525
  0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,\
-
 
526
  0x28,0x29,0x00,0x2B,0x2C,0x2D,0x2E,0x2F,\
-
 
527
  0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x00,\
-
 
528
  0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00
-
 
529
  times 12*16 db 0x00
-
 
530
 
-
 
531
accel_table_main dd		    \
-
 
532
  0x0000000E,key.bkspace	   ,\ ; BackSpace
-
 
533
  0x0000000F,key.tab		   ,\ ; Tab
-
 
534
  0x0000001C,key.return 	   ,\ ; Return
-
 
535
  0x0000003D,key.f3		   ,\ ; F3
-
 
536
  0x00000043,key.f9		   ,\ ; F9
-
 
537
  0x00000147,key.home		   ,\ ; Home
-
 
538
  0x00000148,key.up		   ,\ ; Up
-
 
539
  0x00000149,key.pgup		   ,\ ; PageUp
-
 
540
  0x0000014B,key.left		   ,\ ; Left
-
 
541
  0x0000014D,key.right		   ,\ ; Right
-
 
542
  0x0000014F,key.end		   ,\ ; End
-
 
543
  0x00000150,key.down		   ,\ ; Down
-
 
544
  0x00000151,key.pgdn		   ,\ ; PageDown
-
 
545
  0x00000152,key.ins		   ,\ ; Insert
-
 
546
  0x00000153,key.del		   ,\ ; Delete
-
 
547
  0x00010043,key.shift_f9	   ,\ ; Shift+F9
-
 
548
  0x00010147,key.shift_home	   ,\ ; Shift+Home
-
 
549
  0x00010148,key.shift_up	   ,\ ; Shift+Up
-
 
550
  0x00010149,key.shift_pgup	   ,\ ; Shift+PageUp
-
 
551
  0x0001014B,key.shift_left	   ,\ ; Shift+Left
-
 
552
  0x0001014D,key.shift_right	   ,\ ; Shift+Right
-
 
553
  0x0001014F,key.shift_end	   ,\ ; Shift+End
-
 
554
  0x00010150,key.shift_down	   ,\ ; Shift+Down
-
 
555
  0x00010151,key.shift_pgdn	   ,\ ; Shift+PageDown
-
 
556
  0x00010153,key.del		   ,\ ; Shift+Delete
-
 
557
  0x0002000F,key.ctrl_tab	   ,\ ; Ctrl+Tab
-
 
558
  0x00020015,key.ctrl_y 	   ,\ ; Ctrl+Y
-
 
559
  0x00020018,key.ctrl_o 	   ,\ ; Ctrl+O
-
 
560
  0x0002001E,key.ctrl_a 	   ,\ ; Ctrl+A
-
 
561
  0x0002001F,key.ctrl_s 	   ,\ ; Ctrl+S
-
 
562
  0x00020020,key.ctrl_d 	   ,\ ; Ctrl+D
-
 
563
  0x00020021,key.ctrl_f 	   ,\ ; Ctrl+F
-
 
564
  0x00020022,key.ctrl_g 	   ,\ ; Ctrl+G
-
 
565
  0x00020023,key.ctrl_h 	   ,\ ; Ctrl+H
-
 
566
\;0x00020026,key.ctrl_l            ,\ ; Ctrl+L
-
 
567
  0x0002002D,key.ctrl_x 	   ,\ ; Ctrl+X
-
 
568
  0x0002002E,key.ctrl_c 	   ,\ ; Ctrl+C
-
 
569
  0x0002002F,key.ctrl_v 	   ,\ ; Ctrl+V
-
 
570
  0x00020031,key.ctrl_n 	   ,\ ; Ctrl+N
-
 
571
  0x0002003E,key.ctrl_f4	   ,\ ; Ctrl+F4
-
 
572
  0x00020043,key.ctrl_f9	   ,\ ; Ctrl+F9
-
 
573
  0x00020147,key.ctrl_home	   ,\ ; Ctrl+Home
-
 
574
\;0x00020148,key.ctrl_up           ,\ ; Ctrl+Up
-
 
575
  0x00020149,key.ctrl_pgup	   ,\ ; Ctrl+PageUp
-
 
576
  0x0002014B,key.ctrl_left	   ,\ ; Ctrl+Left
-
 
577
  0x0002014D,key.ctrl_right	   ,\ ; Ctrl+Right
-
 
578
  0x0002014F,key.ctrl_end	   ,\ ; Ctrl+End
-
 
579
\;0x00020150,key.ctrl_down         ,\ ; Ctrl+Down
-
 
580
  0x00020151,key.ctrl_pgdn	   ,\ ; Ctrl+PageDown
-
 
581
  0x00020153,key.del		   ,\ ; Ctrl+Del
-
 
582
  0x0003000F,key.shift_ctrl_tab    ,\ ; Shift+Ctrl+Tab
-
 
583
  0x0003001F,key.shift_ctrl_s	   ,\ ; Shift+Ctrl+S
-
 
584
  0x00030147,key.shift_ctrl_home   ,\ ; Shift+Ctrl+Home
-
 
585
\;0x00030148,key.shift_ctrl_up     ,\ ; Shift+Ctrl+Up
-
 
586
  0x00030149,key.shift_ctrl_pgup   ,\ ; Shift+Ctrl+PageUp
-
 
587
  0x0003014B,key.shift_ctrl_left   ,\ ; Shift+Ctrl+Left
-
 
588
  0x0003014D,key.shift_ctrl_right  ,\ ; Shift+Ctrl+Right
-
 
589
  0x0003014F,key.shift_ctrl_end    ,\ ; Shift+Ctrl+End
-
 
590
\;0x00030150,key.shift_ctrl_down   ,\ ; Shift+Ctrl+Down
-
 
591
  0x00030151,key.shift_ctrl_pgdn   ,\ ; Shift+Ctrl+PageDown
-
 
592
  0x0004002D,key.alt_x		   ,\ ; Alt+X
-
 
593
  0
-
 
594
 
-
 
595
accel_table_textbox dd		    \
-
 
596
\;0x00000001,key.tb.escape         ,\ ; Escape
-
 
597
  0x0000000E,key.tb.bkspace	   ,\ ; BackSpace
-
 
598
\;0x0000000F,key.tb.tab            ,\ ; Tab
-
 
599
\;0x0000001C,key.tb.return         ,\ ; Return
-
 
600
  0x00000147,key.tb.home	   ,\ ; Home
-
 
601
  0x0000014B,key.tb.left	   ,\ ; Left
-
 
602
  0x0000014D,key.tb.right	   ,\ ; Right
-
 
603
  0x0000014F,key.tb.end 	   ,\ ; End
-
 
604
  0x00000153,key.tb.del 	   ,\ ; Delete
-
 
605
  0x00010147,key.tb.shift_home	   ,\ ; Shift+Home
-
 
606
  0x0001014B,key.tb.shift_left	   ,\ ; Shift+Left
-
 
607
  0x0001014D,key.tb.shift_right    ,\ ; Shift+Right
-
 
608
  0x0001014F,key.tb.shift_end	   ,\ ; Shift+End
-
 
609
  0x00010153,key.tb.del 	   ,\ ; Shift+Del
-
 
610
  0
-
 
611
 
-
 
612
accel_table2 dd 	  \
-
 
613
  1    ,key.alt_x	 ,\
-
 
614
  'VSL',btn.vscroll_up	 ,\
-
 
615
  'VSG',btn.vscroll_down ,\
-
 
616
  'HSL',btn.hscroll_up	 ,\
-
 
617
  'HSG',btn.hscroll_down ,\
-
 
618
  'TBL',btn.tabctl_right ,\
-
 
619
  'TBG',btn.tabctl_left  ,\
-
 
620
  177  , key.ctrl_f4	 ,\ ; close current tab button
-
 
621
  0
-
 
622
 
-
 
623
accel_table2_botdlg dd	   \
-
 
624
  1    ,key.alt_x	  ,\
-
 
625
  20001,btn.bot.cancel	  ,\
-
 
626
  20002,btn.bot.opensave  ,\
-
 
627
  20003,btn.bot.find	  ,\
-
 
628
  20004,btn.bot.appearance,\
-
 
629
  20007, btn.bot.no	  ,\
-
 
630
  21001,btn.bot.tabpos	  ,\
-
 
631
  0
-
 
632
 
-
 
633
add_table:
-
 
634
  times $1A db -$20
-
 
635
  times $25 db -$00
-
 
636
  times $10 db -$20
-
 
637
  times $30 db -$00
-
 
638
  times $10 db -$50
-
 
639
  times $04 db -$00,-$01
-
 
640
  times $08 db -$00
-
 
641
 
-
 
642
s_status dd 0
-
 
643
 
-
 
644
@^
-
 
645
fasm_start:
-
 
646
	dd	7
-
 
647
	dd	0
-
 
648
	dd	fasm_parameters
-
 
649
	dd	0
-
 
650
	dd	0
-
 
651
	db	'/sys/DEVELOP/FASM',0
-
 
652
board_start:
-
 
653
	dd	7
-
 
654
	dd	0
-
 
655
	dd	0
-
 
656
	dd	0
-
 
657
	dd	0
-
 
658
	db	'/sys/DEVELOP/BOARD',0
-
 
659
tinypad_start:
-
 
660
	dd	7
-
 
661
	dd	0
-
 
662
	dd	?
-
 
663
	dd	0
-
 
664
	dd	0
-
 
665
	db	'/sys/TINYPAD',0
-
 
666
docpak_start:
-
 
667
	dd	7
-
 
668
	dd	0
-
 
669
	dd	sysfuncs_param
-
 
670
	dd	0
-
 
671
	dd	0
-
 
672
	db	'/sys/DOCPAK',0
-
 
673
^@
-
 
674
 
-
 
675
sz app_fasm    ,'/sys/DEVELOP/FASM',0
-
 
676
sz app_board   ,'/sys/DEVELOP/BOARD',0
-
 
677
sz app_tinypad ,'/sys/TINYPAD',0
-
 
678
sz app_docpak  ,'/sys/DOCPAK',0
-
 
679
 
449
section @DATA ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
680
sz sysfuncs_param,'g',0
-
 
681
 
-
 
682
include 'tp-locale.inc'
-
 
683
 
-
 
684
;// options dialog data [
-
 
685
label optsdlg_editor at $-EDITOR.Bounds
-
 
686
; rb PATHL     ; FilePath       db PATHL dup(?)
-
 
687
; dd 0         ; FileName       dd ?
-
 
688
  dd ?,?,?,?   ; Bounds         RECT
-
 
689
  dd @f        ; Lines          dd ?
-
 
690
  dd ?	       ; Lines.Size     dd ?
-
 
691
  dd 9	       ; Lines.Count    dd ?
-
 
692
  dd 21        ; Columns.Count  dd ?
-
 
693
  dd 0,4       ; Caret          POINT
-
 
694
  dd 100,4     ; SelStart       POINT
-
 
695
  dd 0,0       ; TopLeft        POINT
-
 
696
  dd 0,0       ; VScroll        SCROLLBAR
-
 
697
  dd 0,0       ; HScroll        SCROLLBAR
-
 
698
  dd 0	       ; Gutter.Width   dd ?
-
 
Line 699... Line -...
699
  db 0	       ; Gutter.Visible db ?
-
 
700
  db 1	       ; AsmMode        db ?
-
 
701
  db 0	       ; Modified       db ?
-
 
702
 
-
 
703
@@:
-
 
704
  dd 0x00000000+1
-
 
705
  db ' '
-
 
706
  dd 0x00010000+9
-
 
707
  db ' org 100h'
450
;-----------------------------------------------------------------------------
708
  dd 0x00000000+1
-
 
709
  db ' '
-
 
710
  dd 0x00000000+20
-
 
711
  db ' mov ah,09h  ; write'
-
 
712
  dd 0x00000000+12
-
 
713
  db ' mov dx,text'
-
 
714
  dd 0x00000000+8
-
 
715
  db ' int 21h'
-
 
716
  dd 0x00030000+8
-
 
717
  db ' int 20h'
451
 
718
  dd 0x00000000+1
-
 
719
  db ' '
-
 
720
  dd 0x00000000+21
452
include 'data/tp-idata.inc'
721
  db ' text db "Hello!",24h'
-
 
722
  dd 0
-
 
723
 
-
 
724
optsdlg_editor_parts:	; left,top,right,bottom,type
-
 
725
  db 0, 12, 13, 29, 22
-
 
726
  db 0, 12, 33, 47, 42
-
 
727
  db 0, 12, 53, 29, 72
-
 
728
  db 0, 12, 83, 53, 92
-
 
729
  db 2, 12, 43, 77, 52
-
 
730
  db 3,  4, 43,148, 52
-
 
731
  db 4, 48, 33, 53, 42
-
 
732
  db 4,108, 83,113, 92
-
 
733
  db 5, 36, 13, 59, 22
-
 
734
  db 5, 54, 33, 71, 42
-
 
735
  db 5, 36, 53, 53, 72
-
 
736
  db 5,114, 83,131, 92
-
 
737
  db 6, 60, 83,107, 92
-
 
738
  db 7, 84, 33,125, 42
453
 
739
  db 8,  1, 13,  5, 22
454
;-----------------------------------------------------------------------------
740
  db 9,  1, 63,  5, 72
-
 
741
  db 1,  1,  1,148,105
-
 
742
  db -1
-
 
743
;// ]
-
 
744
 
-
 
745
sz symbols_ex,';?.%"',"'"
-
 
746
sz symbols   ,'#&*\:/<>|{}()[]=+-, '
-
 
747
 
-
 
748
sz ini_sec_window   ,'Window',0
-
 
Line -... Line 455...
-
 
455
section @IMPORT ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
 
456
;-----------------------------------------------------------------------------
-
 
457
;align 16
-
 
458
;@IMPORT:
-
 
459
 
-
 
460
library \
-
 
461
	libini,'libini.obj',\
-
 
462
	libio,'libio.obj',\
-
 
463
	libgfx,'libgfx.obj'
-
 
464
 
-
 
465
import	libini, \
-
 
466
	ini.get_str,'ini.get_str',\
-
 
467
	ini.set_str,'ini.set_str',\
-
 
468
	ini.get_int,'ini.get_int',\
-
 
469
	ini.set_int,'ini.set_int'
749
sz ini_window_top   ,'Top',0
470
 
-
 
471
import	libio, \
-
 
472
	file.find_first,'file.find_first',\
-
 
473
	file.find_next ,'file.find_next',\
-
 
474
	file.find_close,'file.find_close',\
-
 
475
	file.size      ,'file.size',\
-
 
476
	file.open      ,'file.open',\
-
 
477
	file.read      ,'file.read',\
-
 
478
	file.write     ,'file.write',\
-
 
479
	file.seek      ,'file.seek',\
-
 
480
	file.tell      ,'file.tell',\
-
 
481
	file.eof?      ,'file.eof?',\
-
 
482
	file.truncate  ,'file.truncate',\
-
 
483
	file.close     ,'file.close'
-
 
484
 
-
 
485
import	libgfx, \
-
 
486
	gfx.open	,'gfx.open',\
-
 
487
	gfx.close	,'gfx.close',\
-
 
488
	gfx.pen.color	,'gfx.pen.color',\
-
 
489
	gfx.brush.color ,'gfx.brush.color',\
-
 
490
	gfx.pixel	,'gfx.pixel',\
-
 
491
	gfx.move.to	,'gfx.move.to',\
-
 
492
	gfx.line.to	,'gfx.line.to',\
-
 
493
	gfx.line	,'gfx.line',\
-
 
494
	gfx.polyline	,'gfx.polyline',\
-
 
495
	gfx.polyline.to ,'gfx.polyline.to',\
-
 
496
	gfx.fillrect	,'gfx.fillrect',\
Line 750... Line 497...
750
sz ini_window_left  ,'Left',0
497
	gfx.fillrect.ex ,'gfx.fillrect.ex',\
Line 751... Line 498...
751
sz ini_window_right ,'Right',0
498
	gfx.framerect	,'gfx.framerect',\
752
sz ini_window_bottom,'Bottom',0
499
	gfx.framerect.ex,'gfx.framerect.ex',\
753
 
500
	gfx.rectangle	,'gfx.rectangle',\
Line 754... Line -...
754
TINYPAD_END:	 ; end of file
-
 
755
 
-
 
756
self_path rb PATHL
-
 
757
 
-
 
758
;-----------------------------------------------------------------------------
-
 
759
section @UDATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
 
760
;-----------------------------------------------------------------------------
-
 
761
 
-
 
762
app_start:
-
 
763
	   dd ?,?
-
 
764
 .params   dd ?
-
 
765
	   dd ?,?
-
 
766
	   db ?
-
 
767
 .filename dd ?
-
 
768
 
-
 
769
f_info.length dd ?
-
 
770
f_info.path:
-
 
771
    times PATHL+1 db ?
-
 
772
f_info70 rd 7
501
	gfx.rectangle.ex,'gfx.rectangle.ex'
773
 
-
 
774
file_info FILEINFO
-
 
775
 
-
 
776
checker_ed    EDITOR
-
 
777
checker_ed_ll dd ?
-
 
778
 
-
 
779
tab_bar      TABCTL
-
 
780
virtual at tab_bar.Current
-
 
781
  cur_tab      TABITEM
-
 
782
end virtual
-
 
783
virtual at tab_bar.Current.Editor
-
 
784
  cur_editor   EDITOR
-
 
785
end virtual
-
 
786
 
-
 
787
lines.scr     dd ?    ; number of lines on the screen
-
 
788
columns.scr   dd ?    ; number of columns on the screen
-
 
789
top_ofs       dd ?    ; height occupied by top buttons
-
 
790
bot_ofs       dd ?    ; height occupied by bottom buttons
-
 
791
	      dw ?
-
 
792
left_ofs      dd ?    ;
-
 
793
__rc	      dd ?,?,?,?
-
 
794
copy_count    dd ?    ; number of lines for copying (Ctrl+E)
-
 
795
copy_size     dd ?    ; size of data to copy
-
 
796
s_title.size  dd ?    ; caption length
-
 
797
 
-
 
798
cur_line_len  dd ?
-
 
799
h_popup       dd ?
-
 
800
bot_dlg_handler dd ?
-
 
801
 
-
 
802
sel.begin.x   dd ?
-
 
803
sel.begin.y   dd ?
-
 
804
sel.end.x     dd ?
-
 
805
sel.end.y     dd ?
-
 
806
sel.selected  db ?
-
 
807
 
-
 
808
in_sel	      db ?
-
 
809
 
-
 
810
do_not_draw   db ?    ; draw top and bottom buttons?
-
 
811
main_closed   db ?    ; main window closed?
-
 
812
tb_casesen    db ?    ; focused textbox is case-sensitive?
-
 
813
 
-
 
814
draw_blines   db ?
-
 
815
 
-
 
816
align 4
-
 
817
s_fname.size  dd ?
-
 
818
s_fname       rb PATHL+1
-
 
819
align 4
-
 
820
s_search.size dd ?
-
 
821
s_search      rb PATHL+1
-
 
822
 
-
 
823
s_title       rb PATHL+11  ; window caption
-
 
824
 
-
 
825
chr db ?
-
 
826
ext db ?
-
 
827
shi dd ?
-
 
828
 
-
 
829
align 4
-
 
830
cl_3d_normal dd ?
-
 
831
cl_3d_pushed dd ?
-
 
832
cl_3d_outset dd ?
-
 
833
cl_3d_inset  dd ?
-
 
834
cl_3d_grayed dd ?
-
 
835
 
-
 
836
tb_color     TBOX
-
 
837
tb_opensave  TBOX
-
 
838
tb_find      TBOX
-
 
839
tb_replace   TBOX
-
 
840
tb_gotorow   TBOX
-
 
841
tb_gotocol   TBOX
-
 
842
 
-
 
843
focused_tb   dd ?
-
 
844
 
-
 
845
key1 rb 256
-
 
846
 
-
 
847
mst  db ?
-
 
848
mst2 db ?
-
 
849
mev  db ?
-
 
850
mouse_captured	db ?
-
 
851
just_from_popup db ?
-
 
852
 
-
 
853
bot_mode db ?
-
 
Line 854... Line 502...
854
 
502
 
855
align 4
503
TINYPAD_END:	 ; end of file
856
 
504