Subversion Repositories Kolibri OS

Rev

Rev 122 | Rev 242 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 122 Rev 178
1
;-----------------------------------------------------------------------------
1
;-----------------------------------------------------------------------------
2
; project name:      TINYPAD
2
; project name:      TINYPAD
3
; compiler:          flat assembler 1.64
3
; compiler:          flat assembler 1.67.1
4
; memory to compile: 3.0/11.5 MBytes (without/with size optimizations)
4
; memory to compile: 2.0/7.0 MBytes (without/with size optimizations)
5
; version:           4.0
5
; version:           4.0.3
6
; last update:       2006-04-13 (Apr 13, 2006)
6
; last update:       2006-08-28 (Aug 28, 2006)
-
 
7
; minimal kernel:    revision #138 (svn://kolibrios.org/kernel)
7
;-----------------------------------------------------------------------------
8
;-----------------------------------------------------------------------------
8
; originally by:     Ville Michael Turjanmaa >> villemt@aton.co.jyu.fi
9
; originally by:     Ville Michael Turjanmaa >> villemt@aton.co.jyu.fi
9
; maintained by:     Ivan Poddubny           >> ivan-yar@bk.ru
10
; maintained by:     Ivan Poddubny           >> ivan-yar@bk.ru
10
;                    Mike Semenyako          >> mike.dld@gmail.com
11
;                    Mike Semenyako          >> mike.dld@gmail.com
11
;-----------------------------------------------------------------------------
12
;-----------------------------------------------------------------------------
12
; TODO:
13
; TODO:
13
;   optimize drawing (reduce flickering);
14
;   - optimize drawing (reduce flickering)
14
;   optimize memory usage (allocate only needed amount, not static 3 Mbytes);
15
;   - optimize memory usage (allocate only needed amount, not static 3 Mbytes)
15
;   add block selection ability, undo action;
16
;   - add block selection ability, undo action, goto position
16
;   working with multiple files (add tabs);
17
;   - working with multiple files (add tabs)
-
 
18
;   - improve window drawing with small dimensions
17
;   other bugfixes and speed/size optimizations
19
;   - other bugfixes and speed/size optimizations
18
;
20
;
19
; HISTORY:
21
; HISTORY:
-
 
22
; 4.0.3 (mike.dld)
-
 
23
;   bug-fixes:
-
 
24
;     - 1-char selection if pressing  out of real line length
-
 
25
;     - fault in `writepos`, added call to function 9
-
 
26
;     - main menu items weren't highlighted if popup opened and cursor
-
 
27
;       isn't in menu item's area
-
 
28
;     - statusbar and textboxes drawing fixes (wrong colors)
-
 
29
;     - perform no redraw while pressing Shift, Ctrl, Alt keys
-
 
30
;     - data length from DOCPAK in string representation (fix by diamond)
-
 
31
;   changes:
-
 
32
;     - function 70 instead of 58 for files loading/saving
-
 
33
;     - clientarea-relative drawing (less code)
-
 
34
;     - every line's dword is now splitted into 2 words;
-
 
35
;       low word - line block length, so max line length is 65535 now
-
 
36
;       high word - various flags. for now, only 2 of 16 bits are used:
-
 
37
;         if bit #0 is set, line was modified since file open
-
 
38
;         if bit #1 is set, line was saved after last modification
-
 
39
;       high word could also be further used for code collapsing and different
-
 
40
;         line marking features (breakpoints, errors, bookmarks, etc.)
-
 
41
;   new features:
-
 
42
;     - line markers for modified and saved lines
-
 
43
;     - status messages for various actions
20
; 4.0.2 (mike.dld)
44
; 4.0.2 (mike.dld)
21
;   bug-fixes:
45
;   bug-fixes:
22
;     - program terminates if started with parameters (fine for DOCPAK)
46
;     - program terminates if started with parameters (fine for DOCPAK)
23
; 4.0.1 (mike.dld)
47
; 4.0.1 (mike.dld)
24
;   bug-fixes:
48
;   bug-fixes:
25
;     - unable to run program after exiting from main menu (Alt+X)
49
;     - unable to run program after exiting from main menu (Alt+X)
26
;   new features:
50
;   new features:
27
;     - integration with DOCPAK
51
;     - integration with DOCPAK
28
; 4.0 (mike.dld)
52
; 4.0 (mike.dld)
29
;   bug-fixes:
53
;   bug-fixes:
30
;     - main menu popups' "on show" was called only for first shown popup
54
;     - main menu popups' "on show" was called only for first shown popup
31
;     - clear selection on left/right arrow keys
55
;     - clear selection on left/right arrow keys
32
;   new features:
56
;   new features:
33
;     - "replace" dialog (w/o "skip", "replace all")
57
;     - "replace" dialog (w/o "skip", "replace all")
34
;     - line numbers display
58
;     - line numbers display
35
;     - options (except "appearance" and "smart tabulation")
59
;     - options (except "appearance" and "smart tabulation")
36
;     - options saving (colors, window position, "Options" popup triggers)
60
;     - options saving (colors, window position, "Options" popup triggers)
37
; 4.0 beta 2 (mike.dld)
61
; 4.0 beta 2 (mike.dld)
38
;   bug-fixes:
62
;   bug-fixes:
39
;     - unable to start if /rd/1/example.asm is missing (from Halyavin)
63
;     - unable to start if /rd/1/example.asm is missing (from Halyavin)
40
;     - clicking on menu items draws main window in popup (from Rohan)
64
;     - clicking on menu items draws main window in popup (from Rohan)
41
;     - passed parameters aren't taken into account (from Mario79)
65
;     - passed parameters aren't taken into account (from Mario79)
42
;     - background isn't erased if text lines < screen lines after
66
;     - background isn't erased if text lines < screen lines after
43
;       selection deletion (from Rohan)
67
;       selection deletion (from Rohan)
44
; 4.0 beta 1 (mike.dld)
68
; 4.0 beta 1 (mike.dld)
45
;   menu bar and popup menu;
69
;   menu bar and popup menu;
46
;     removed buttons from the top and input fields from the bottom since
70
;     removed buttons from the top and input fields from the bottom since
47
;     now they're accesible through main/popup menu;
71
;     now they're accesible through main/popup menu;
48
;   improved keyboard handling (using 66th function);
72
;   improved keyboard handling (using 66th function);
49
;     support for almost all FASMW keyboard shourtcuts;
73
;     support for almost all FASMW keyboard shourtcuts;
50
;   added text selection ability, standard selection operations
74
;   added text selection ability, standard selection operations
51
;     (copy,cut,paste);
75
;     (copy,cut,paste);
52
;   new integrated dialogs (open, save, find)
76
;   new integrated dialogs (open, save, find)
53
;   fix to collapse SPACEs into TABs only for *.asm and *.inc files
77
;   fix to collapse SPACEs into TABs only for *.asm and *.inc files
54
; 3.78a (mike.dld)
78
; 3.78a (mike.dld)
55
;   fixed termination while typing in x positions higher than (line_length+10);
79
;   fixed termination while typing in x positions higher than (line_length+10);
56
;   improved drawing on small heights
80
;   improved drawing on small heights
57
;     don't draw window while its height = 0 (Kolibri "minimize" support)
81
;     don't draw window while its height = 0 (Kolibri "minimize" support)
58
; 3.78 (mike.dld)
82
; 3.78 (mike.dld)
59
;   now lines may be of ANY length;
83
;   now lines may be of ANY length;
60
;     optimized memory usage (less memory for internal file representation)
84
;     optimized memory usage (less memory for internal file representation)
61
;       after loading file, it's internal size equals to its real size
85
;       after loading file, it's internal size equals to its real size
62
;       plus 14 bytes for each line (4 bytes for line length
86
;       plus 14 bytes for each line (4 bytes for line length
63
;         and 10 spaced to the end - to reduce data relocations count);
87
;         and 10 spaced to the end - to reduce data relocations count);
64
;     completely rewritten keyboard handling;
88
;     completely rewritten keyboard handling;
65
;     added horizontal scrollbar;
89
;     added horizontal scrollbar;
66
;   all line feed formats are supported: WIN(CRLF),*NIX(LF),MAC(CR);
90
;   all line feed formats are supported: WIN(CRLF),*NIX(LF),MAC(CR);
67
;   etc.
91
;   etc.
68
; 3.77 (mike.dld)
92
; 3.77 (mike.dld)
69
;   changed save_string to collapse SPACEs into TABs;
93
;   changed save_string to collapse SPACEs into TABs;
70
;   rewrote drawfile from scratch (speed++)
94
;   rewrote drawfile from scratch (speed++)
71
;     through some drawing improvements still needed
95
;     through some drawing improvements  needed
72
;     (some checkups to reduce flickering);
96
;     (some checkups to reduce flickering);
73
;   writepos (size--);
97
;   writepos (size--);
74
;   fixed drawing window while height < 100px, and for non-asm files;
98
;   fixed drawing window while height < 100px, and for non-asm files;
75
;   several small fixes; speed/size optimizations
99
;   several small fixes; speed/size optimizations
76
; 3.76 (mike.dld)
100
; 3.76 (mike.dld)
77
;   changed loadfile/loadhdfile to expand TABs into SPACEs;
101
;   changed loadfile/loadhdfile to expand TABs into SPACEs;
78
;   changed TAB,ENTER,DELETE,BSPACE keys behaviour (rewritten from scratch);
102
;   changed TAB,ENTER,DELETE,BSPACE keys behaviour (rewritten from scratch);
79
;   vertical scrollbar;
103
;   vertical scrollbar;
80
;   extra window resizing capabilities (added a couple of constants);
104
;   extra window resizing capabilities (added a couple of constants);
81
;   completely new text cursor management & moving text cursor with mouse;
105
;   completely new text cursor management & moving text cursor with mouse;
82
;   improved search function, moving cursor to beginning of text found;
106
;   improved search function, moving cursor to beginning of text found;
83
;   adjustable max line width (change LINE_WIDTH & recompile) // (obsolet)
107
;   adjustable max line width (change LINE_WIDTH & recompile) // (obsolet)
84
; 3.75a
108
; 3.75a
85
;   fixed converting char to upper case in read_string
109
;   fixed converting char to upper case in read_string
86
; 3.75
110
; 3.75
87
;   rewrote save_file from scratch; bugfix in loadfile;
111
;   rewrote save_file from scratch; bugfix in loadfile;
88
; 3.74
112
; 3.74
89
;   optimisation
113
;   optimisation
90
; 3.73
114
; 3.73
91
;   completly new load_file function
115
;   completly new load_file function
92
; 3.72
116
; 3.72
93
;   speed++
117
;   speed++
94
; 3.71
118
; 3.71
95
;   error beep
119
;   error beep
96
; 3.6,3.7:
120
; 3.6,3.7:
97
;   many bugs fixed
121
;   many bugs fixed
98
;   simple toolbar
122
;   simple toolbar
99
;   compile, run applications from TINYPAD, all fasm output is in debug board
123
;   compile, run applications from TINYPAD, all fasm output is in debug board
100
;   TAB button
124
;   TAB button
101
;   auto-indent
125
;   auto-indent
102
;   Ctrl+L - insert comment string
126
;   Ctrl+L - insert comment string
103
;-----------------------------------------------------------------------------
127
;-----------------------------------------------------------------------------
104
; Memory 0x300000:
128
; Memory 0x300000:
105
;   stack for popup  0x00dff0 -
129
;   stack for popup  0x00dff0 -
106
;   stack for help   0x00eff0 -
130
;   stack for help   0x00eff0 -
107
;   stack            0x00fff0 -
131
;   stack            0x00fff0 -
108
;   load position    0x010000 +
132
;   load position    0x010000 +
109
;   edit area        0x080000 +
133
;   edit area        0x080000 +
110
;   copy/paste area  0x2f0000 +
134
;   copy/paste area  0x2f0000 +
111
;-----------------------------------------------------------------------------
135
;-----------------------------------------------------------------------------
-
 
136
 
112
 
137
include 'lang.inc'
-
 
138
include 'macros.inc' ; useful stuff
113
include 'macros.inc' ; useful stuff
139
;include 'proc32.inc'
114
include 'tinypad.inc'
140
include 'tinypad.inc'
115
purge mov,add,sub            ;  SPEED
141
;purge mov,add,sub            ;  SPEED
116
 
142
 
117
header '01',1,@CODE,TINYPAD_END,AREA_ENDMEM,MAIN_STACK,@PARAMS,self_path
143
header '01',1,@CODE,TINYPAD_END,AREA_ENDMEM,MAIN_STACK,@PARAMS,self_path
118
 
144
 
119
;include 'debug.inc'
145
;include 'debug.inc'
120
 
146
 
121
ASEPC     = '-'           ; separator character (char)
147
ASEPC     = '-'           ; separator character (char)
122
ATOPH     = POP_IHEIGHT+2 ; menu bar height (pixels)
148
ATOPH     = POP_IHEIGHT+2 ; menu bar height (pixels)
123
;OLEFT    = 50+1          ; left offset (pixels)        !!! don't change !!!
149
;OLEFT    = 50+1          ; left offset (pixels)        !!! don't change !!!
124
SCRLW     = 16            ; scrollbar widht/height (pixels)
150
SCRLW     = 16            ; scrollbar widht/height (pixels)
125
ATABW     = 8             ; tab width (chars)
151
ATABW     = 8             ; tab width (chars)
126
LINEH     = 10            ; line height (pixels)
152
LINEH     = 10            ; line height (pixels)
127
PATHL     = 255           ; maximum path length (chars) !!! don't change !!!
153
PATHL     = 255           ; maximum path length (chars) !!! don't change !!!
128
AMINS     = 8             ; minimal scroll thumb size (pixels)
154
AMINS     = 8             ; minimal scroll thumb size (pixels)
-
 
155
LCHGW     = 2             ; changed/saved marker width
129
 
156
 
130
STATH     = 14            ; status bar height
157
STATH     = 14            ; status bar height
131
 
158
 
132
MEV_LDOWN = 1
159
MEV_LDOWN = 1
133
MEV_LUP   = 2
160
MEV_LUP   = 2
134
MEV_RDOWN = 3
161
MEV_RDOWN = 3
135
MEV_RUP   = 4
162
MEV_RUP   = 4
136
MEV_MOVE  = 5
163
MEV_MOVE  = 5
137
 
164
 
138
;-----------------------------------------------------------------------------
165
;-----------------------------------------------------------------------------
139
section @OPTIONS ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
166
section @OPTIONS ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
140
;-----------------------------------------------------------------------------
167
;-----------------------------------------------------------------------------
141
 
168
 
142
label color_tbl dword
169
label color_tbl dword
143
  RGB(  0,  0,  0) ; RGB(  0,  0,  0) ; RGB(  0,  0,  0) ; text
170
  RGB(  0,  0,  0) ; RGB(  0,  0,  0) ; RGB(  0,  0,  0) ; text
144
  RGB(  0,144,  0) ; RGB(  0,144,  0) ; RGB(  0,160,  0) ; numbers
171
  RGB(  0,144,  0) ; RGB(  0,144,  0) ; RGB(  0,160,  0) ; numbers
145
  RGB(176,  0,  0) ; RGB(160,  0,  0) ; RGB(  0,128,255) ; strings
172
  RGB(176,  0,  0) ; RGB(160,  0,  0) ; RGB(  0,128,255) ; strings
146
  RGB(128,128,128) ; RGB(144,144,144) ; RGB(160,160,160) ; comments
173
  RGB(128,128,128) ; RGB(144,144,144) ; RGB(160,160,160) ; comments
147
  RGB( 48, 48,240) ; RGB( 48, 48,240) ; RGB(255,  0,  0) ; symbols
174
  RGB( 48, 48,240) ; RGB( 48, 48,240) ; RGB(255,  0,  0) ; symbols
148
  RGB(255,255,255) ; RGB(224,224,224) ; RGB(255,255,255) ; background
175
  RGB(255,255,255) ; RGB(224,224,224) ; RGB(255,255,255) ; background
149
  RGB(255,255,255) ; RGB(255,255,255) ; RGB(255,255,255) ; selection text
176
  RGB(255,255,255) ; RGB(255,255,255) ; RGB(255,255,255) ; selection text
150
  RGB( 10, 36,106) ; RGB(  0,  0,128) ; RGB(  0, 64,128) ; selection background
177
  RGB( 10, 36,106) ; RGB(  0,  0,128) ; RGB(  0, 64,128) ; selection background
-
 
178
  RGB(  0,255,  0) ; modified line marker
-
 
179
  RGB(255,255,  0) ; saved line marker
151
 
180
 
152
ins_mode db 1
181
ins_mode db 1
153
 
182
 
154
options  db OPTS_AUTOINDENT+OPTS_OPTIMSAVE+OPTS_SMARTTAB
183
options  db OPTS_AUTOINDENT+OPTS_OPTIMSAVE+OPTS_SMARTTAB
155
 
184
 
156
mainwnd_pos:
185
mainwnd_pos:
157
  .x dd 100
186
  .x dd 100
158
  .y dd 75
187
  .y dd 75
159
  .w dd 6*80+6+SCRLW+5
188
  .w dd 6*80+6+SCRLW+5
160
  .h dd 402
189
  .h dd 402
161
 
190
 
162
;-----------------------------------------------------------------------------
191
;-----------------------------------------------------------------------------
163
section @CODE ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
192
section @CODE ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
164
;-----------------------------------------------------------------------------
193
;-----------------------------------------------------------------------------
165
 
194
 
166
;       fninit
195
;       fninit
-
 
196
 
-
 
197
;        stdcall ini.get_int,finfo_ini,ini_sec_window,ini_window_left,50
-
 
198
;        mov     [mainwnd_pos.x],eax
-
 
199
;        stdcall ini.get_int,finfo_ini,ini_sec_window,ini_window_top,50
-
 
200
;        mov     [mainwnd_pos.y],eax
-
 
201
;        stdcall ini.get_int,finfo_ini,ini_sec_window,ini_window_right,350
-
 
202
;        sub     eax,[mainwnd_pos.x]
-
 
203
;        mov     [mainwnd_pos.w],eax
-
 
204
;        stdcall ini.get_int,finfo_ini,ini_sec_window,ini_window_bottom,450
-
 
205
;        sub     eax,[mainwnd_pos.y]
-
 
206
;        mov     [mainwnd_pos.h],eax
167
 
207
 
168
        cld
208
        cld
169
        mov     edi,@UDATA
209
        mov     edi,@UDATA
170
        mov     ecx,@PARAMS-@UDATA
210
        mov     ecx,@PARAMS-@UDATA
171
        mov     al,0
211
        mov     al,0
172
        rep     stosb
212
        rep     stosb
-
 
213
 
-
 
214
	inc	[do_not_draw]
173
 
215
 
174
        mov     [left_ofs],40+1
216
        mov     [left_ofs],40+1
175
        mov     [f_info+4],0
217
        mov     [f_info+4],0
176
        mov     [f_info+12],AREA_TEMP
218
        mov     [f_info+12],AREA_TEMP
177
        mov     [f_info+16],AREA_EDIT-AREA_TEMP
219
        mov     [f_info+16],AREA_EDIT-AREA_TEMP
178
 
-
 
179
;        mov     esi,s_example
-
 
180
;        mov     edi,s_fname
-
 
181
;        mov     ecx,s_example.size
-
 
182
;        mov     [s_fname.size],ecx
-
 
183
;        rep     movsb
220
 
184
        mov     esi,s_example
221
        mov     esi,s_example
185
        mov     edi,tb_opensave.text
222
        mov     edi,tb_opensave.text
186
        mov     ecx,s_example.size
223
        mov     ecx,s_example.size
187
        mov     [tb_opensave.length],cl
224
        mov     [tb_opensave.length],cl
188
        rep     movsb
225
        rep     movsb
189
 
226
 
190
        mov     esi,s_still
227
        mov     esi,s_still
191
        mov     edi,s_search
228
        mov     edi,s_search
192
        mov     ecx,s_still.size
229
        mov     ecx,s_still.size
193
        mov     [s_search.size],ecx
230
        mov     [s_search.size],ecx
194
        rep     movsb
231
        rep     movsb
195
 
232
 
196
        cmp     byte[@PARAMS],0
233
        cmp     byte[@PARAMS],0
197
        jz      no_params
234
        jz      no_params
198
 
235
 
199
;// Willow's code to support DOCPAK [
236
;// Willow's code to support DOCPAK [
200
 
237
 
201
        cmp     byte[@PARAMS],'*'
238
        cmp     byte[@PARAMS],'*'
202
        jne     .noipc
239
        jne     .noipc
-
 
240
 
203
; convert size from decimal representation to dword
241
;// diamond [ (convert size from decimal representation to dword)
-
 
242
;--     mov     edx,dword[@PARAMS+1]
204
        mov     esi, @PARAMS+1
243
        mov     esi,@PARAMS+1
205
        xor     edx, edx
244
        xor     edx,edx
206
        xor     eax, eax
245
        xor     eax,eax
207
@@:
-
 
208
        lodsb
246
    @@: lodsb
209
        test    al, al
247
        test    al,al
210
        jz      @f
248
        jz      @f
211
        lea     edx, [edx*4+edx]
249
        lea     edx,[edx*4+edx]
212
        lea     edx, [edx*2+eax]
250
        lea     edx,[edx*2+eax-'0']
213
        jmp     @b
251
        jmp     @b
214
@@:
252
    @@:
-
 
253
;// diamond ]
-
 
254
 
215
        add     edx,20
255
        add     edx,20
216
        mcall   60,1,AREA_TEMP-16 ; 0x10000-16
256
        mcall   60,1,AREA_TEMP-16 ; 0x10000-16
217
        mov     dword[AREA_TEMP-16+4],8 ; [0x10000-16+4],8
257
        mov     dword[AREA_TEMP-16+4],8 ; [0x10000-16+4],8
218
        mcall   40,1000000b
258
        mcall   40,1000000b
219
        mcall   23,200
259
        mcall   23,200
220
        cmp     eax,7
260
        cmp     eax,7
221
        jne     key.alt_x.close  ; ýòî íà mcall -1 ìåòêà
261
        jne     key.alt_x.close  ; ýòî íà mcall -1 ìåòêà
222
        mov     esi,AREA_TEMP-16 ; 0x10000-16
262
        mov     esi,AREA_TEMP-16 ; 0x10000-16
223
        mov     byte[esi],1
263
        mov     byte[esi],1
224
        mov     eax,[esi+12]
264
        mov     eax,[esi+12]
225
        inc     eax
265
        inc     eax
226
        call    load_file.file_found
266
        call    load_file.file_found
227
        jmp     @f
267
        jmp     @f
228
;       call    file_found  ; çàãðóçêà ôàéëà
-
 
229
;       jmp     do_load_file.restorecursor ; îòîáðàæåíèå
-
 
230
  .noipc:
268
  .noipc:
231
 
269
 
232
;// Willow's code to support DOCPAK ]
270
;// Willow's code to support DOCPAK ]
233
 
271
 
234
    ; parameters are at @PARAMS
272
    ; parameters are at @PARAMS
235
        mov     esi,@PARAMS
273
        mov     esi,@PARAMS
236
        mov     edi,tb_opensave.text
274
        mov     edi,tb_opensave.text
237
        mov     ecx,PATHL
275
        mov     ecx,PATHL
238
        rep     movsb
276
        rep     movsb
239
        mov     edi,tb_opensave.text
277
        mov     edi,tb_opensave.text
240
        mov     ecx,PATHL
278
        mov     ecx,PATHL
241
        xor     al,al
279
        xor     al,al
242
        repne   scasb
280
        repne   scasb
243
        jne     key.alt_x.close
281
        jne     key.alt_x.close
244
        lea     eax,[edi-tb_opensave.text-1]
282
        lea     eax,[edi-tb_opensave.text-1]
245
        mov     [tb_opensave.length],al
283
        mov     [tb_opensave.length],al
246
 
284
 
247
  no_params:
285
  no_params:
248
        call    btn.load_file;do_load_file
286
        call    btn.load_file;do_load_file
249
        jnc     @f
287
        jnc     @f
250
        call    new_file
288
        call    new_file
251
 
289
 
252
    @@:
290
    @@:
253
        call    drawwindow
291
	dec	[do_not_draw]
254
        mcall   66,1,1
292
        mcall   66,1,1
255
        mcall   40,00100111b
293
        mcall   40,00100111b
-
 
294
red:
-
 
295
	call    drawwindow
-
 
296
	call	check_inv_all.skip_check
256
 
297
 
257
;-----------------------------------------------------------------------------
298
;-----------------------------------------------------------------------------
258
 
299
 
259
still:
300
still:
260
       call    writepos ; write current position & number of strings
301
       call    writepos ; write current position & number of strings
261
 
302
 
262
  .skip_write:
303
  .skip_write:
263
        mcall   10;23,50; wait here until event
304
        mcall   10;23,50; wait here until event
264
        cmp     [main_closed],0
305
        cmp     [main_closed],0
265
        jne     key.alt_x
306
        jne     key.alt_x
266
        dec     eax     ; redraw ?
307
        dec     eax     ; redraw ?
267
        jz      red
308
        jz      red
268
        dec     eax     ; key ?
309
        dec     eax     ; key ?
269
        jz      key
310
        jz      key
270
        dec     eax     ; button ?
311
        dec     eax     ; button ?
271
        jz      button
312
        jz      button
272
        sub     eax,3   ; mouse ?
313
        sub     eax,3   ; mouse ?
273
        jz      mouse
314
        jz      mouse
274
 
315
 
275
        jmp     still.skip_write
316
        jmp     still.skip_write
276
 
317
 
277
;-----------------------------------------------------------------------------
318
;-----------------------------------------------------------------------------
278
func red ;///// window redraw ////////////////////////////////////////////////
-
 
279
;-----------------------------------------------------------------------------
-
 
280
        call    drawwindow
-
 
281
        call    check_inv_all.skip_check
-
 
282
        jmp     still
-
 
283
endf
-
 
284
 
-
 
285
;-----------------------------------------------------------------------------
-
 
286
func start_fasm ;/////////////////////////////////////////////////////////////
319
func start_fasm ;/////////////////////////////////////////////////////////////
287
;-----------------------------------------------------------------------------
320
;-----------------------------------------------------------------------------
288
; BL = run after compile
321
; BL = run after compile
289
;-----------------------------------------------------------------------------
322
;-----------------------------------------------------------------------------
290
        cmp     [asm_mode],0
323
        cmp     [asm_mode],0
291
        jne     @f
324
        jne     @f
292
        ret
325
        ret
293
    @@: mov     esi,f_info.path ; s_fname
326
    @@: mov     esi,f_info.path ; s_fname
294
        mov     edi,fasm_parameters
327
        mov     edi,fasm_parameters
295
 
328
 
296
        cmp     byte[esi],'/'
329
        cmp     byte[esi],'/'
297
        je      .yes_systree
330
        je      .yes_systree
298
 
331
 
299
        mov     ecx,[f_info.length] ; [s_fname.size]
332
        mov     ecx,[f_info.length] ; [s_fname.size]
300
        rep     movsb
333
        rep     movsb
301
 
334
 
302
        mov     al,','
335
        mov     al,','
303
        stosb
336
        stosb
304
 
337
 
305
        mov     ecx,[f_info.length] ; [s_fname.size]
338
        mov     ecx,[f_info.length] ; [s_fname.size]
306
        add     ecx,-4
339
        add     ecx,-4
307
        mov     esi,f_info.path ; s_fname
340
        mov     esi,f_info.path ; s_fname
308
        rep     movsb
341
        rep     movsb
309
 
342
 
310
        mov     al,','
343
        mov     al,','
311
        stosb
344
        stosb
312
 
345
 
313
        mov     dword[edi],'/RD/'
346
        mov     dword[edi],'/RD/'
314
        mov     word[edi+4],'1/'
347
        mov     word[edi+4],'1/'
315
        add     edi,6
348
        add     edi,6
316
 
349
 
317
        mov     al,0
350
        mov     al,0
318
        stosb
351
        stosb
319
 
352
 
320
        jmp     .run
353
        jmp     .run
321
 
354
 
322
 .yes_systree:
355
 .yes_systree:
323
        mov     eax,[f_info.length]
356
        mov     eax,[f_info.length]
324
        add     esi,eax ; [s_fname.size]
357
        add     esi,eax ; [s_fname.size]
325
        dec     esi
358
        dec     esi
326
 
359
 
327
        xor     ecx,ecx
360
        xor     ecx,ecx
328
        mov     al,'/'
361
        mov     al,'/'
329
    @@: cmp     [esi],al
362
    @@: cmp     [esi],al
330
        je      @f
363
        je      @f
331
        dec     esi
364
        dec     esi
332
        inc     ecx
365
        inc     ecx
333
        jmp     @b
366
        jmp     @b
334
    @@: inc     esi
367
    @@: inc     esi
335
 
368
 
336
        push    esi esi ecx
369
        push    esi esi ecx
337
 
370
 
338
        rep     movsb
371
        rep     movsb
339
 
372
 
340
        mov     al,','
373
        mov     al,','
341
        stosb
374
        stosb
342
 
375
 
343
        pop     ecx esi
376
        pop     ecx esi
344
 
377
 
345
        add     ecx,-4
378
        add     ecx,-4
346
        rep     movsb
379
        rep     movsb
347
 
380
 
348
        mov     al,','
381
        mov     al,','
349
        stosb
382
        stosb
350
 
383
 
351
        pop     ecx
384
        pop     ecx
352
        sub     ecx,f_info.path ; s_fname
385
        sub     ecx,f_info.path ; s_fname
353
        mov     esi,f_info.path ; s_fname
386
        mov     esi,f_info.path ; s_fname
354
 
387
 
355
        rep     movsb
388
        rep     movsb
356
 
389
 
357
        mov     al,0
390
        mov     al,0
358
        stosb
391
        stosb
359
 
392
 
360
 .run:
393
 .run:
361
        cmp     bl,0 ; run outfile ?
394
        cmp     bl,0 ; run outfile ?
362
        je      @f
395
        je      @f
363
        mov     dword[edi-1],',run'
396
        mov     dword[edi-1],',run'
364
        mov     byte[edi+3],0
397
        mov     byte[edi+3],0
-
 
398
    @@:
365
    @@: mcall   19,fasm_filename,fasm_parameters
399
        mov     ebx, fasm_start
-
 
400
start_ret:
-
 
401
        mov     eax, 70
-
 
402
        int     0x40
366
        ret
403
        ret
367
endf
404
endf
368
 
405
 
369
;-----------------------------------------------------------------------------
406
;-----------------------------------------------------------------------------
370
func open_debug_board ;///////////////////////////////////////////////////////
407
func open_debug_board ;///////////////////////////////////////////////////////
371
;-----------------------------------------------------------------------------
408
;-----------------------------------------------------------------------------
372
        mcall   19,debug_filename,0
409
        mov     ebx, board_start
373
        ret
410
        jmp     start_ret
374
endf
411
endf
375
 
412
 
376
;-----------------------------------------------------------------------------
413
;-----------------------------------------------------------------------------
377
func open_sysfuncs_txt ;//////////////////////////////////////////////////////
414
func open_sysfuncs_txt ;//////////////////////////////////////////////////////
378
;-----------------------------------------------------------------------------
415
;-----------------------------------------------------------------------------
379
        mcall   19,docpak_filename,sysfuncs_param
416
        mov     ebx, docpak_start
-
 
417
        call    start_ret
380
        cmp     eax,0xfffffff0
418
        cmp     eax,0xfffffff0
381
        jb      @f
419
        jb      @f
-
 
420
        mov     ebx, tinypad_start
382
        mcall   19,tinypad_filename,sysfuncs_filename
421
        mov     dword [ebx+8], sysfuncs_filename
-
 
422
        call    start_ret
383
    @@: ret
423
    @@: ret
384
endf
424
endf
385
 
425
 
386
;-----------------------------------------------------------------------------
426
;-----------------------------------------------------------------------------
387
func layout  ;///// change keyboard layout ///////////////////////////////////
427
;func layout  ;///// change keyboard layout ///////////////////////////////////
388
;-----------------------------------------------------------------------------
428
;-----------------------------------------------------------------------------
389
        mcall   19,setup,param_setup
429
;        mcall   19,setup,param_setup
390
        mcall   5,eax
430
;        mcall   5,eax
391
;       call    activate_me
431
;;       call    activate_me
392
;       ret
432
;;       ret
-
 
433
;;endf
-
 
434
 
-
 
435
;;func activate_me
-
 
436
;        mcall   9,p_info,-1
-
 
437
;        inc     eax
-
 
438
;        inc     eax
-
 
439
;        mov     ecx,eax
-
 
440
;        mov     edi,[p_info.PID]
-
 
441
;        mov     ebx,p_info
-
 
442
;    @@: dec     ecx
-
 
443
;        jz      @f    ; counter=0 => not found? => return
-
 
444
;        mcall   9
-
 
445
;        cmp     edi,[p_info.PID]
-
 
446
;        jne     @b
-
 
447
;        mcall   18,3
-
 
448
;        mcall   5,eax
-
 
449
;    @@: ret
393
;endf
450
;endf
394
 
-
 
395
;func activate_me
-
 
396
        mcall   9,p_info,-1
-
 
397
        inc     eax
-
 
398
        inc     eax
-
 
399
        mov     ecx,eax
-
 
400
        mov     edi,[p_info.PID]
-
 
401
        mov     ebx,p_info
-
 
402
    @@: dec     ecx
-
 
403
        jz      @f    ; counter=0 => not found? => return
-
 
404
        mcall   9
-
 
405
        cmp     edi,[p_info.PID]
-
 
406
        jne     @b
-
 
407
        mcall   18,3
-
 
408
        mcall   5,eax
-
 
409
    @@: ret
-
 
410
endf
-
 
411
 
451
 
412
func set_opt
452
func set_opt
413
        test    [options],al
453
        test    [options],al
414
        je      @f
454
        je      @f
415
        not     al
455
        not     al
416
        and     [options],al
456
        and     [options],al
417
        ret
457
        ret
418
    @@: or      [options],al
458
    @@: or      [options],al
419
        ret
459
        ret
420
endf
460
endf
421
 
461
 
422
func set_line_numbers
462
func set_line_numbers
423
        mov     al,OPTS_LINENUMS
463
        mov     al,OPTS_LINENUMS
424
        call    set_opt
464
        call    set_opt
425
        ret
465
        ret
426
endf
466
endf
427
 
467
 
428
func set_optimal_fill
468
func set_optimal_fill
429
        mov     al,OPTS_OPTIMSAVE
469
        mov     al,OPTS_OPTIMSAVE
430
        call    set_opt
470
        call    set_opt
431
        ret
471
        ret
432
endf
472
endf
433
 
473
 
434
func set_auto_indents
474
func set_auto_indents
435
        mov     al,OPTS_AUTOINDENT
475
        mov     al,OPTS_AUTOINDENT
436
        call    set_opt
476
        call    set_opt
437
        ret
477
        ret
438
endf
478
endf
439
 
479
 
440
func set_auto_braces
480
func set_auto_braces
441
        mov     al,OPTS_AUTOBRACES
481
        mov     al,OPTS_AUTOBRACES
442
        call    set_opt
482
        call    set_opt
443
        ret
483
        ret
444
endf
484
endf
445
 
485
 
446
func set_secure_sel
486
func set_secure_sel
447
        mov     al,OPTS_SECURESEL
487
        mov     al,OPTS_SECURESEL
448
        call    set_opt
488
        call    set_opt
449
        ret
489
        ret
450
endf
490
endf
451
 
491
 
452
;-----------------------------------------------------------------------------
492
;-----------------------------------------------------------------------------
453
 
493
 
454
include 'tp-draw.asm'
494
include 'tp-draw.asm'
455
include 'tp-key.asm'
495
include 'tp-key.asm'
456
;include 'tp-key2.asm'
-
 
457
include 'tp-butto.asm'
496
include 'tp-butto.asm'
458
include 'tp-mouse.asm'
497
include 'tp-mouse.asm'
459
include 'tp-files.asm'
498
include 'tp-files.asm'
460
include 'tp-commo.asm'
499
include 'tp-commo.asm'
461
include 'tp-dialo.asm'
500
include 'tp-dialo.asm'
462
;include 'tp-find.asm'
-
 
463
include 'tp-popup.asm'
501
include 'tp-popup.asm'
464
include 'tp-tbox.asm'
502
include 'tp-tbox.asm'
-
 
503
 
-
 
504
;include 'lib-ini.asm'
465
 
505
 
466
;-----------------------------------------------------------------------------
506
;-----------------------------------------------------------------------------
467
section @DATA ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
507
section @DATA ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
468
;-----------------------------------------------------------------------------
508
;-----------------------------------------------------------------------------
469
 
509
 
470
;addr       dd s_fname  ; address of input string
510
;addr       dd s_fname  ; address of input string
471
;temp       dd 0xABCD   ; used in read_string
511
;temp       dd 0xABCD   ; used in read_string
472
vscrl_capt dd -1
512
vscrl_capt dd -1
473
hscrl_capt dd -1
513
hscrl_capt dd -1
474
body_capt  dd -1
514
body_capt  dd -1
475
 
515
 
476
key0 db \
516
key0 db \
477
  0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,\
517
  0x00,0x00,0x02,0x03,0x04,0x05,0x06,0x07,\
478
  0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x00,0x00,\
518
  0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x00,0x00,\
479
  0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,\
519
  0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,\
480
  0x18,0x19,0x1A,0x1B,0x00,0x00,0x1E,0x1F,\
520
  0x18,0x19,0x1A,0x1B,0x00,0x00,0x1E,0x1F,\
481
  0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,\
521
  0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,\
482
  0x28,0x29,0x00,0x2B,0x2C,0x2D,0x2E,0x2F,\
522
  0x28,0x29,0x00,0x2B,0x2C,0x2D,0x2E,0x2F,\
483
  0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x00,\
523
  0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x00,\
484
  0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00
524
  0x00,0x39,0x00,0x00,0x00,0x00,0x00,0x00
485
  times 12*16 db 0x00
525
  times 12*16 db 0x00
486
 
526
 
487
accel_table dd                      \
527
accel_table dd                      \
488
  0x0000000E,key.bkspace           ,\ ; BackSpace
528
  0x0000000E,key.bkspace           ,\ ; BackSpace
489
  0x0000000F,key.tab               ,\ ; Tab
529
  0x0000000F,key.tab               ,\ ; Tab
490
  0x0000001C,key.return            ,\ ; Return
530
  0x0000001C,key.return            ,\ ; Return
491
  0x0000003D,key.f3                ,\ ; F3
531
  0x0000003D,key.f3                ,\ ; F3
492
  0x00000043,key.f9                ,\ ; F9
532
  0x00000043,key.f9                ,\ ; F9
493
  0x00000147,key.home              ,\ ; Home
533
  0x00000147,key.home              ,\ ; Home
494
  0x00000148,key.up                ,\ ; Up
534
  0x00000148,key.up                ,\ ; Up
495
  0x00000149,key.pgup              ,\ ; PageUp
535
  0x00000149,key.pgup              ,\ ; PageUp
496
  0x0000014B,key.left              ,\ ; Left
536
  0x0000014B,key.left              ,\ ; Left
497
  0x0000014D,key.right             ,\ ; Right
537
  0x0000014D,key.right             ,\ ; Right
498
  0x0000014F,key.end               ,\ ; End
538
  0x0000014F,key.end               ,\ ; End
499
  0x00000150,key.down              ,\ ; Down
539
  0x00000150,key.down              ,\ ; Down
500
  0x00000151,key.pgdn              ,\ ; PageDown
540
  0x00000151,key.pgdn              ,\ ; PageDown
501
  0x00000152,key.ins               ,\ ; Insert
541
  0x00000152,key.ins               ,\ ; Insert
502
  0x00000153,key.del               ,\ ; Delete
542
  0x00000153,key.del               ,\ ; Delete
503
  0x00010147,key.shift_home        ,\ ; Shift+Home
543
  0x00010147,key.shift_home        ,\ ; Shift+Home
504
  0x00010148,key.shift_up          ,\ ; Shift+Up
544
  0x00010148,key.shift_up          ,\ ; Shift+Up
505
  0x00010149,key.shift_pgup        ,\ ; Shift+PageUp
545
  0x00010149,key.shift_pgup        ,\ ; Shift+PageUp
506
  0x0001014B,key.shift_left        ,\ ; Shift+Left
546
  0x0001014B,key.shift_left        ,\ ; Shift+Left
507
  0x0001014D,key.shift_right       ,\ ; Shift+Right
547
  0x0001014D,key.shift_right       ,\ ; Shift+Right
508
  0x0001014F,key.shift_end         ,\ ; Shift+End
548
  0x0001014F,key.shift_end         ,\ ; Shift+End
509
  0x00010150,key.shift_down        ,\ ; Shift+Down
549
  0x00010150,key.shift_down        ,\ ; Shift+Down
510
  0x00010151,key.shift_pgdn        ,\ ; Shift+PageDown
550
  0x00010151,key.shift_pgdn        ,\ ; Shift+PageDown
511
  0x00010153,key.del               ,\ ; Shift+Delete
551
  0x00010153,key.del               ,\ ; Shift+Delete
512
  0x00020015,key.ctrl_y            ,\ ; Ctrl+Y
552
  0x00020015,key.ctrl_y            ,\ ; Ctrl+Y
513
  0x00020018,key.ctrl_o            ,\ ; Ctrl+O
553
  0x00020018,key.ctrl_o            ,\ ; Ctrl+O
514
  0x0002001E,key.ctrl_a            ,\ ; Ctrl+A
554
  0x0002001E,key.ctrl_a            ,\ ; Ctrl+A
515
  0x0002001F,key.ctrl_s            ,\ ; Ctrl+S
555
  0x0002001F,key.ctrl_s            ,\ ; Ctrl+S
516
  0x00020020,key.ctrl_d            ,\ ; Ctrl+D
556
  0x00020020,key.ctrl_d            ,\ ; Ctrl+D
517
  0x00020021,key.ctrl_f            ,\ ; Ctrl+F
557
  0x00020021,key.ctrl_f            ,\ ; Ctrl+F
518
  0x00020022,key.ctrl_g            ,\ ; Ctrl+G
558
  0x00020022,key.ctrl_g            ,\ ; Ctrl+G
519
  0x00020023,key.ctrl_h            ,\ ; Ctrl+H
559
  0x00020023,key.ctrl_h            ,\ ; Ctrl+H
520
\;0x00020026,key.ctrl_l            ,\ ; Ctrl+L
560
\;0x00020026,key.ctrl_l            ,\ ; Ctrl+L
521
  0x0002002D,key.ctrl_x            ,\ ; Ctrl+X
561
  0x0002002D,key.ctrl_x            ,\ ; Ctrl+X
522
  0x0002002E,key.ctrl_c            ,\ ; Ctrl+C
562
  0x0002002E,key.ctrl_c            ,\ ; Ctrl+C
523
  0x0002002F,key.ctrl_v            ,\ ; Ctrl+V
563
  0x0002002F,key.ctrl_v            ,\ ; Ctrl+V
524
  0x00020031,key.ctrl_n            ,\ ; Ctrl+N
564
  0x00020031,key.ctrl_n            ,\ ; Ctrl+N
525
  0x00020043,key.ctrl_f9           ,\ ; Ctrl+F9
565
  0x00020043,key.ctrl_f9           ,\ ; Ctrl+F9
526
  0x00020147,key.ctrl_home         ,\ ; Ctrl+Home
566
  0x00020147,key.ctrl_home         ,\ ; Ctrl+Home
527
\;0x00020148,key.ctrl_up           ,\ ; Ctrl+Up
567
\;0x00020148,key.ctrl_up           ,\ ; Ctrl+Up
528
  0x00020149,key.ctrl_pgup         ,\ ; Ctrl+PageUp
568
  0x00020149,key.ctrl_pgup         ,\ ; Ctrl+PageUp
529
  0x0002014B,key.ctrl_left         ,\ ; Ctrl+Left
569
  0x0002014B,key.ctrl_left         ,\ ; Ctrl+Left
530
  0x0002014D,key.ctrl_right        ,\ ; Ctrl+Right
570
  0x0002014D,key.ctrl_right        ,\ ; Ctrl+Right
531
  0x0002014F,key.ctrl_end          ,\ ; Ctrl+End
571
  0x0002014F,key.ctrl_end          ,\ ; Ctrl+End
532
\;0x00020150,key.ctrl_down         ,\ ; Ctrl+Down
572
\;0x00020150,key.ctrl_down         ,\ ; Ctrl+Down
533
  0x00020151,key.ctrl_pgdn         ,\ ; Ctrl+PageDown
573
  0x00020151,key.ctrl_pgdn         ,\ ; Ctrl+PageDown
534
  0x00020153,key.del               ,\ ; Ctrl+Del
574
  0x00020153,key.del               ,\ ; Ctrl+Del
535
  0x0003001F,key.shift_ctrl_s      ,\ ; Shift+Ctrl+S
575
  0x0003001F,key.shift_ctrl_s      ,\ ; Shift+Ctrl+S
536
  0x00030147,key.shift_ctrl_home   ,\ ; Shift+Ctrl+Home
576
  0x00030147,key.shift_ctrl_home   ,\ ; Shift+Ctrl+Home
537
\;0x00030148,key.shift_ctrl_up     ,\ ; Shift+Ctrl+Up
577
\;0x00030148,key.shift_ctrl_up     ,\ ; Shift+Ctrl+Up
538
  0x00030149,key.shift_ctrl_pgup   ,\ ; Shift+Ctrl+PageUp
578
  0x00030149,key.shift_ctrl_pgup   ,\ ; Shift+Ctrl+PageUp
539
  0x0003014B,key.shift_ctrl_left   ,\ ; Shift+Ctrl+Left
579
  0x0003014B,key.shift_ctrl_left   ,\ ; Shift+Ctrl+Left
540
  0x0003014D,key.shift_ctrl_right  ,\ ; Shift+Ctrl+Right
580
  0x0003014D,key.shift_ctrl_right  ,\ ; Shift+Ctrl+Right
541
  0x0003014F,key.shift_ctrl_end    ,\ ; Shift+Ctrl+End
581
  0x0003014F,key.shift_ctrl_end    ,\ ; Shift+Ctrl+End
542
\;0x00030150,key.shift_ctrl_down   ,\ ; Shift+Ctrl+Down
582
\;0x00030150,key.shift_ctrl_down   ,\ ; Shift+Ctrl+Down
543
  0x00030151,key.shift_ctrl_pgdn   ,\ ; Shift+Ctrl+PageDown
583
  0x00030151,key.shift_ctrl_pgdn   ,\ ; Shift+Ctrl+PageDown
544
  0x0004002D,key.alt_x             ,\ ; Alt+X
584
  0x0004002D,key.alt_x             ,\ ; Alt+X
545
  0
585
  0
546
 
586
 
547
accel_table_textbox dd              \
587
accel_table_textbox dd              \
548
\;0x00000001,key.tb.escape         ,\ ; Escape
588
\;0x00000001,key.tb.escape         ,\ ; Escape
549
  0x0000000E,key.tb.bkspace        ,\ ; BackSpace
589
  0x0000000E,key.tb.bkspace        ,\ ; BackSpace
550
\;0x0000000F,key.tb.tab            ,\ ; Tab
590
\;0x0000000F,key.tb.tab            ,\ ; Tab
551
\;0x0000001C,key.tb.return         ,\ ; Return
591
\;0x0000001C,key.tb.return         ,\ ; Return
552
  0x00000147,key.tb.home           ,\ ; Home
592
  0x00000147,key.tb.home           ,\ ; Home
553
  0x0000014B,key.tb.left           ,\ ; Left
593
  0x0000014B,key.tb.left           ,\ ; Left
554
  0x0000014D,key.tb.right          ,\ ; Right
594
  0x0000014D,key.tb.right          ,\ ; Right
555
  0x0000014F,key.tb.end            ,\ ; End
595
  0x0000014F,key.tb.end            ,\ ; End
556
  0x00000153,key.tb.del            ,\ ; Delete
596
  0x00000153,key.tb.del            ,\ ; Delete
557
  0x00010147,key.tb.shift_home     ,\ ; Shift+Home
597
  0x00010147,key.tb.shift_home     ,\ ; Shift+Home
558
  0x0001014B,key.tb.shift_left     ,\ ; Shift+Left
598
  0x0001014B,key.tb.shift_left     ,\ ; Shift+Left
559
  0x0001014D,key.tb.shift_right    ,\ ; Shift+Right
599
  0x0001014D,key.tb.shift_right    ,\ ; Shift+Right
560
  0x0001014F,key.tb.shift_end      ,\ ; Shift+End
600
  0x0001014F,key.tb.shift_end      ,\ ; Shift+End
561
  0x00010153,key.tb.del            ,\ ; Shift+Del
601
  0x00010153,key.tb.del            ,\ ; Shift+Del
562
  0
602
  0
563
 
603
 
564
accel_table2 dd            \
604
accel_table2 dd            \
565
  1,btn.close_main_window ,\
605
  1,btn.close_main_window ,\
566
\;10000,btn.compile       ,\
606
\;10000,btn.compile       ,\
567
\;10001,btn.compile_run   ,\
607
\;10001,btn.compile_run   ,\
568
\;10002,btn.debug_board   ,\
608
\;10002,btn.debug_board   ,\
569
\;10003,btn.sysfuncs_txt  ,\
609
\;10003,btn.sysfuncs_txt  ,\
570
  'UP',btn.scroll_up      ,\
610
  'UP',btn.scroll_up      ,\
571
  'DN',btn.scroll_down    ,\
611
  'DN',btn.scroll_down    ,\
572
  'LT',btn.scroll_left    ,\
612
  'LT',btn.scroll_left    ,\
573
  'RT',btn.scroll_right   ,\
613
  'RT',btn.scroll_right   ,\
574
\;5,key.ctrl_o            ,\
614
\;5,key.ctrl_o            ,\
575
  0
615
  0
576
 
616
 
577
accel_table2_botdlg dd     \
617
accel_table2_botdlg dd     \
578
  1,btn.close_main_window ,\
618
  1,btn.close_main_window ,\
579
  20001,btn.bot.cancel    ,\
619
  20001,btn.bot.cancel    ,\
580
  20002,btn.bot.opensave  ,\
620
  20002,btn.bot.opensave  ,\
581
  20003,btn.bot.find      ,\
621
  20003,btn.bot.find      ,\
582
  0
622
  0
583
 
623
 
584
add_table:
624
add_table:
585
; times $61 db -$00
625
; times $61 db -$00
586
  times $1A db -$20
626
  times $1A db -$20
587
  times $25 db -$00
627
  times $25 db -$00
588
  times $10 db -$20
628
  times $10 db -$20
589
  times $30 db -$00
629
  times $30 db -$00
590
  times $10 db -$50
630
  times $10 db -$50
591
  times $04 db -$00,-$01
631
  times $04 db -$00,-$01
592
  times $08 db -$00
632
  times $08 db -$00
593
 
633
 
594
;error_beep      db 0xA0,0x30,0
634
;error_beep      db 0xA0,0x30,0
-
 
635
 
-
 
636
s_status dd 0
595
 
637
 
596
sz s_example,'EXAMPLE.ASM'
638
sz s_example,'EXAMPLE.ASM'
597
sz s_still  ,'still'
639
sz s_still  ,'still'
598
 
640
 
599
;sz param_setup,'LANG',0 ; parameter for SETUP
641
;sz param_setup,'LANG',0 ; parameter for SETUP
-
 
642
 
-
 
643
fasm_start:
-
 
644
        dd      7
-
 
645
        dd      0
600
 
646
        dd      fasm_parameters
-
 
647
        dd      0
-
 
648
        dd      0
-
 
649
        db      '/RD/1/FASM',0
-
 
650
board_start:
-
 
651
        dd      7
-
 
652
        dd      0
-
 
653
        dd      0
-
 
654
        dd      0
601
sz fasm_filename   ,'FASM       '
655
        dd      0
-
 
656
        db      '/RD/1/BOARD',0
-
 
657
tinypad_start:
-
 
658
        dd      7
-
 
659
        dd      0
-
 
660
        dd      ?
-
 
661
        dd      0
602
sz debug_filename  ,'BOARD      '
662
        dd      0
-
 
663
        db      '/RD/1/TINYPAD',0
-
 
664
docpak_start:
-
 
665
        dd      7
-
 
666
        dd      0
-
 
667
        dd      sysfuncs_param
-
 
668
        dd      0
603
sz tinypad_filename,'TINYPAD    '
669
        dd      0
-
 
670
        db      '/RD/1/DOCPAK',0
604
sz docpak_filename ,'DOCPAK     '
671
 
605
;sz setup           ,'SETUP      ' ; to change keyboard layout
672
;sz setup           ,'SETUP      ' ; to change keyboard layout
606
 
673
 
607
sz sysfuncs_param,'g',0
674
sz sysfuncs_param,'g',0
608
 
675
 
609
lsz sysfuncs_filename,\
676
lsz sysfuncs_filename,\
610
  ru,<'SYSFUNCR.TXT',0>,\
677
  ru,<'SYSFUNCR.TXT',0>,\
611
  en,<'SYSFUNCS.TXT',0>
678
  en,<'SYSFUNCS.TXT',0>
612
 
679
 
613
sz htext,'TINYPAD'
680
sz htext,'TINYPAD 4.0.3'
614
 
681
 
615
lszc help_text,b,\
682
lszc help_text,b,\
616
  ru,'ŠŽŒ€„›:',\
683
  ru,'ŠŽŒ€„›:',\
617
  ru,' ',\
684
  ru,' ',\
618
  ru,'  CTRL+F1 : â® ®ª­®',\
685
  ru,'  CTRL+F1 : â® ®ª­®',\
619
  ru,'  CTRL+S  : ¥à¢ ï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
686
  ru,'  CTRL+S  : ¥à¢ ï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
620
  ru,'  CTRL+E  : ®á«¥¤­ïï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
687
  ru,'  CTRL+E  : ®á«¥¤­ïï áâப  ¤«ï ª®¯¨à®¢ ­¨ï',\
621
  ru,'  CTRL+P  : ‚áâ ¢¨âì ¢ë¡à ­­®¥ ­  ⥪ãéãî ¯®§¨æ¨î',\
688
  ru,'  CTRL+P  : ‚áâ ¢¨âì ¢ë¡à ­­®¥ ­  ⥪ãéãî ¯®§¨æ¨î',\
622
  ru,'  CTRL+D  : “¤ «¨âì áâபã',\
689
  ru,'  CTRL+D  : “¤ «¨âì áâபã',\
623
  ru,'  CTRL+L  : ‚áâ ¢¨âì áâபã-à §¤¥«¨â¥«ì',\
690
  ru,'  CTRL+L  : ‚áâ ¢¨âì áâபã-à §¤¥«¨â¥«ì',\
624
  ru,'  CTRL+[  : ¥à¥©â¨ ¢ ­ ç «® ä ©« ',\
691
  ru,'  CTRL+[  : ¥à¥©â¨ ¢ ­ ç «® ä ©« ',\
625
  ru,'  CTRL+]  : ¥à¥©â¨ ¢ ª®­¥æ ä ©« ',\
692
  ru,'  CTRL+]  : ¥à¥©â¨ ¢ ª®­¥æ ä ©« ',\
626
  ru,'  CTRL+F2 : ‡ £à㧨âì ä ©«',\
693
  ru,'  CTRL+F2 : ‡ £à㧨âì ä ©«',\
627
  ru,'  CTRL+F3 : ®¨áª',\
694
  ru,'  CTRL+F3 : ®¨áª',\
628
  ru,'  CTRL+F4 : ‘®åà ­¨âì ä ©«',\
695
  ru,'  CTRL+F4 : ‘®åà ­¨âì ä ©«',\
629
  ru,'  CTRL+F5 : ‚¢¥á⨠¨¬ï ä ©« ',\
696
  ru,'  CTRL+F5 : ‚¢¥á⨠¨¬ï ä ©« ',\
630
  ru,'  CTRL+F6 : ‚¢¥á⨠áâப㠤«ï ¯®¨áª ',\
697
  ru,'  CTRL+F6 : ‚¢¥á⨠áâப㠤«ï ¯®¨áª ',\
631
  ru,'  CTRL+F8 : ‘¬¥­¨âì à áª« ¤ªã ª« ¢¨ âãàë',\
698
  ru,'  CTRL+F8 : ‘¬¥­¨âì à áª« ¤ªã ª« ¢¨ âãàë',\
632
\
699
\
633
  en,'COMMANDS:',\
700
  en,'COMMANDS:',\
634
  en,' ',\
701
  en,' ',\
635
  en,'  CTRL+F1 : SHOW THIS WINDOW',\
702
  en,'  CTRL+F1 : SHOW THIS WINDOW',\
636
  en,'  CTRL+S  : SELECT FIRST STRING TO COPY',\
703
  en,'  CTRL+S  : SELECT FIRST STRING TO COPY',\
637
  en,'  CTRL+E  : SELECT LAST STRING TO COPY',\
704
  en,'  CTRL+E  : SELECT LAST STRING TO COPY',\
638
  en,'  CTRL+P  : PASTE SELECTED TO CURRENT POSITION',\
705
  en,'  CTRL+P  : PASTE SELECTED TO CURRENT POSITION',\
639
  en,'  CTRL+D  : DELETE CURRENT LINE',\
706
  en,'  CTRL+D  : DELETE CURRENT LINE',\
640
  en,'  CTRL+L  : INSERT SEPARATOR LINE',\
707
  en,'  CTRL+L  : INSERT SEPARATOR LINE',\
641
  en,'  CTRL+[  : GO TO THE BEGINNING OF FILE',\
708
  en,'  CTRL+[  : GO TO THE BEGINNING OF FILE',\
642
  en,'  CTRL+]  : GO TO THE END OF FILE',\
709
  en,'  CTRL+]  : GO TO THE END OF FILE',\
643
  en,'  CTRL+F2 : LOAD FILE',\
710
  en,'  CTRL+F2 : LOAD FILE',\
644
  en,'  CTRL+F3 : SEARCH',\
711
  en,'  CTRL+F3 : SEARCH',\
645
  en,'  CTRL+F4 : SAVE FILE',\
712
  en,'  CTRL+F4 : SAVE FILE',\
646
  en,'  CTRL+F5 : ENTER FILENAME',\
713
  en,'  CTRL+F5 : ENTER FILENAME',\
647
  en,'  CTRL+F6 : ENTER SEARCH STRING',\
714
  en,'  CTRL+F6 : ENTER SEARCH STRING',\
648
  en,'  CTRL+F8 : CHANGE KEYBOARD LAYOUT'
715
  en,'  CTRL+F8 : CHANGE KEYBOARD LAYOUT'
649
db 0
716
db 0
650
 
717
 
651
menubar_res main_menu,\
718
menubar_res main_menu,\
652
  ru,'” ©«'  ,popup_file   ,onshow.file   ,\
719
  ru,'” ©«'  ,popup_file   ,onshow.file   ,\
653
  ru,'à ¢ª ',popup_edit   ,onshow.edit   ,\
720
  ru,'à ¢ª ',popup_edit   ,onshow.edit   ,\
654
  ru,'®¨áª' ,popup_search ,onshow.search ,\
721
  ru,'®¨áª' ,popup_search ,onshow.search ,\
655
  ru,'‡ ¯ãáª',popup_run    ,onshow.run    ,\
722
  ru,'‡ ¯ãáª',popup_run    ,onshow.run    ,\
656
  ru,'Ž¯æ¨¨' ,popup_options,onshow.options,\
723
  ru,'Ž¯æ¨¨' ,popup_options,onshow.options,\
657
\
724
\
658
  en,'File'   ,popup_file   ,onshow.file  ,\
725
  en,'File'   ,popup_file   ,onshow.file  ,\
659
  en,'Edit'   ,popup_edit   ,onshow.edit  ,\
726
  en,'Edit'   ,popup_edit   ,onshow.edit  ,\
660
  en,'Search' ,popup_search ,onshow.search,\
727
  en,'Search' ,popup_search ,onshow.search,\
661
  en,'Run'    ,popup_run    ,onshow.run   ,\
728
  en,'Run'    ,popup_run    ,onshow.run   ,\
662
  en,'Options',popup_options,onshow.options
729
  en,'Options',popup_options,onshow.options
663
 
730
 
664
popup_res popup_file,\
731
popup_res popup_file,\
665
  ru,'®¢ë©'           ,'Ctrl+N',key.ctrl_n      ,\
732
  ru,'®¢ë©'           ,'Ctrl+N'      ,key.ctrl_n      ,\
666
  ru,'Žâªàëâì...'      ,'Ctrl+O',key.ctrl_o      ,\
733
  ru,'Žâªàëâì...'      ,'Ctrl+O'      ,key.ctrl_o      ,\
667
  ru,'‘®åà ­¨âì'       ,'Ctrl+S',key.ctrl_s      ,\
734
  ru,'‘®åà ­¨âì'       ,'Ctrl+S'      ,key.ctrl_s      ,\
668
  ru,'‘®åà ­¨âì ª ª...',''      ,key.shift_ctrl_s,\
735
  ru,'‘®åà ­¨âì ª ª...','Ctrl+Shift+S',key.shift_ctrl_s,\
669
  ru,'-'               ,''      ,0               ,\
736
  ru,'-'               ,''            ,0               ,\
670
  ru,'‚ë室'           ,'Alt+X' ,key.alt_x       ,\
737
  ru,'‚ë室'           ,'Alt+X'       ,key.alt_x       ,\
671
\
738
\
672
  en,'New'       ,'Ctrl+N',key.ctrl_n      ,\
739
  en,'New'       ,'Ctrl+N'      ,key.ctrl_n      ,\
673
  en,'Open...'   ,'Ctrl+O',key.ctrl_o      ,\
740
  en,'Open...'   ,'Ctrl+O'      ,key.ctrl_o      ,\
674
  en,'Save'      ,'Ctrl+S',key.ctrl_s      ,\
741
  en,'Save'      ,'Ctrl+S'      ,key.ctrl_s      ,\
675
  en,'Save as...',''      ,key.shift_ctrl_s,\
742
  en,'Save as...','Ctrl+Shift+S',key.shift_ctrl_s,\
676
  en,'-'         ,''      ,0               ,\
743
  en,'-'         ,''            ,0               ,\
677
  en,'Exit'      ,'Alt+X' ,key.alt_x
744
  en,'Exit'      ,'Alt+X'       ,key.alt_x
678
 
745
 
679
popup_res popup_edit,\
746
popup_res popup_edit,\
680
  ru,'‚ë१ âì'    ,'Ctrl+X',key.ctrl_x,\
747
  ru,'‚ë१ âì'    ,'Ctrl+X',key.ctrl_x,\
681
  ru,'Š®¯¨à®¢ âì'  ,'Ctrl+C',key.ctrl_c,\
748
  ru,'Š®¯¨à®¢ âì'  ,'Ctrl+C',key.ctrl_c,\
682
  ru,'‚áâ ¢¨âì'    ,'Ctrl+V',key.ctrl_v,\
749
  ru,'‚áâ ¢¨âì'    ,'Ctrl+V',key.ctrl_v,\
683
  ru,'“¤ «¨âì'     ,''      ,key.del   ,\
750
  ru,'“¤ «¨âì'     ,''      ,key.del   ,\
684
  ru,'-'           ,''      ,0         ,\
751
  ru,'-'           ,''      ,0         ,\
685
  ru,'‚뤥«¨âì ¢áñ','Ctrl+A',key.ctrl_a,\
752
  ru,'‚뤥«¨âì ¢áñ','Ctrl+A',key.ctrl_a,\
-
 
753
\;  ru,'-'           ,''      ,0         ,\
-
 
754
\;  ru,'‚¥à⨪ «ì­®¥ ¢ë¤¥«¥­¨¥','Alt+Ins',0         ,\
686
\
755
\
687
  en,'Cut'       ,'Ctrl+X',key.ctrl_x,\
756
  en,'Cut'       ,'Ctrl+X',key.ctrl_x,\
688
  en,'Copy'      ,'Ctrl+C',key.ctrl_c,\
757
  en,'Copy'      ,'Ctrl+C',key.ctrl_c,\
689
  en,'Paste'     ,'Ctrl+V',key.ctrl_v,\
758
  en,'Paste'     ,'Ctrl+V',key.ctrl_v,\
690
  en,'Delete'    ,''      ,key.del   ,\
759
  en,'Delete'    ,''      ,key.del   ,\
691
  en,'-'         ,''      ,0         ,\
760
  en,'-'         ,''      ,0         ,\
692
  en,'Select all','Ctrl+A',key.ctrl_a
761
  en,'Select all','Ctrl+A',key.ctrl_a;,\
-
 
762
;  en,'-'         ,''      ,0         ,\
-
 
763
;  en,'Vertical selection','Alt+Ins',0
693
 
764
 
694
popup_res popup_search,\
765
popup_res popup_search,\
695
  ru,'¥à¥©â¨...' ,'Ctrl+G',key.ctrl_g,\
766
  ru,'¥à¥©â¨...' ,'Ctrl+G',key.ctrl_g,\
696
  ru,'-'          ,''      ,0         ,\
767
  ru,'-'          ,''      ,0         ,\
697
  ru,' ©â¨...'   ,'Ctrl+F',key.ctrl_f,\
768
  ru,' ©â¨...'   ,'Ctrl+F',key.ctrl_f,\
698
  ru,' ©â¨ ¤ «¥¥','F3'    ,key.f3    ,\
769
  ru,' ©â¨ ¤ «¥¥','F3'    ,key.f3    ,\
699
  ru,'‡ ¬¥­¨âì...','Ctrl+H',key.ctrl_h,\
770
  ru,'‡ ¬¥­¨âì...','Ctrl+H',key.ctrl_h,\
700
\
771
\
701
  en,'Position...','Ctrl+G',key.ctrl_g,\
772
  en,'Position...','Ctrl+G',key.ctrl_g,\
702
  en,'-'          ,''      ,0         ,\
773
  en,'-'          ,''      ,0         ,\
703
  en,'Find...'    ,'Ctrl+F',key.ctrl_f,\
774
  en,'Find...'    ,'Ctrl+F',key.ctrl_f,\
704
  en,'Find next'  ,'F3'    ,key.f3    ,\
775
  en,'Find next'  ,'F3'    ,key.f3    ,\
705
  en,'Replace...' ,'Ctrl+H',key.ctrl_h
776
  en,'Replace...' ,'Ctrl+H',key.ctrl_h
706
 
777
 
707
popup_res popup_run,\
778
popup_res popup_run,\
708
  ru,'‡ ¯ãáâ¨âì'        ,'F9'     ,key.f9           ,\
779
  ru,'‡ ¯ãáâ¨âì'        ,'F9'     ,key.f9           ,\
709
  ru,'Š®¬¯¨«¨à®¢ âì'    ,'Ctrl+F9',key.ctrl_f9      ,\
780
  ru,'Š®¬¯¨«¨à®¢ âì'    ,'Ctrl+F9',key.ctrl_f9      ,\
710
  ru,'-'                ,''       ,0                ,\
781
  ru,'-'                ,''       ,0                ,\
711
  ru,'„®áª  ®â« ¤ª¨'    ,''       ,open_debug_board ,\
782
  ru,'„®áª  ®â« ¤ª¨'    ,''       ,open_debug_board ,\
712
  ru,'‘¨á⥬­ë¥ ä㭪樨',''       ,open_sysfuncs_txt,\
783
  ru,'‘¨á⥬­ë¥ ä㭪樨',''       ,open_sysfuncs_txt,\
713
\
784
\
714
  en,'Run'              ,'F9'     ,key.f9           ,\
785
  en,'Run'              ,'F9'     ,key.f9           ,\
715
  en,'Compile'          ,'Ctrl+F9',key.ctrl_f9      ,\
786
  en,'Compile'          ,'Ctrl+F9',key.ctrl_f9      ,\
716
  en,'-'                ,''       ,0                ,\
787
  en,'-'                ,''       ,0                ,\
717
  en,'Debug board'      ,''       ,open_debug_board ,\
788
  en,'Debug board'      ,''       ,open_debug_board ,\
718
  en,'System functions' ,''       ,open_sysfuncs_txt
789
  en,'System functions' ,''       ,open_sysfuncs_txt
719
 
790
 
720
popup_res popup_options,\
791
popup_res popup_options,\
721
  ru,'‚­¥è­¨© ¢¨¤...'        ,'',0,\
792
  ru,'‚­¥è­¨© ¢¨¤...'        ,'',0,\
722
  ru,'-'                     ,'',0,\
793
  ru,'-'                     ,'',0,\
723
  ru,'¥§®¯ á­®¥ ¢ë¤¥«¥­¨¥'  ,'',set_secure_sel,\
794
  ru,'¥§®¯ á­®¥ ¢ë¤¥«¥­¨¥'  ,'',set_secure_sel,\
724
  ru,'€¢â®¬ â¨ç¥áª¨¥ ᪮¡ª¨' ,'',set_auto_braces,\
795
  ru,'€¢â®¬ â¨ç¥áª¨¥ ᪮¡ª¨' ,'',set_auto_braces,\
725
  ru,'€¢â®¬ â¨ç¥áª¨© ®âáâã¯' ,'',set_auto_indents,\
796
  ru,'€¢â®¬ â¨ç¥áª¨© ®âáâã¯' ,'',set_auto_indents,\
726
  ru,'“¬­ ï â ¡ã«ïæ¨ï'       ,'',0,\
797
  ru,'“¬­ ï â ¡ã«ïæ¨ï'       ,'',0,\
727
  ru,'Ž¯â¨¬ «ì­®¥ á®åà ­¥­¨¥','',set_optimal_fill,\
798
  ru,'Ž¯â¨¬ «ì­®¥ á®åà ­¥­¨¥','',set_optimal_fill,\
728
  ru,'-'                     ,'',0,\
799
  ru,'-'                     ,'',0,\
729
  ru,'®¬¥à  áâப'          ,'',set_line_numbers,\
800
  ru,'®¬¥à  áâப'          ,'',set_line_numbers,\
730
\
801
\
731
  en,'Appearance...'         ,'',0,\
802
  en,'Appearance...'         ,'',0,\
732
  en,'-'                     ,'',0,\
803
  en,'-'                     ,'',0,\
733
  en,'Secure selection'      ,'',set_secure_sel,\
804
  en,'Secure selection'      ,'',set_secure_sel,\
734
  en,'Automatic brackets'    ,'',set_auto_braces,\
805
  en,'Automatic brackets'    ,'',set_auto_braces,\
735
  en,'Automatic indents'     ,'',set_auto_indents,\
806
  en,'Automatic indents'     ,'',set_auto_indents,\
736
  en,'Smart tabulation'      ,'',0,\
807
  en,'Smart tabulation'      ,'',0,\
737
  en,'Optimal fill on saving','',set_optimal_fill,\
808
  en,'Optimal fill on saving','',set_optimal_fill,\
738
  en,'-'                     ,'',0,\
809
  en,'-'                     ,'',0,\
739
  en,'Line numbers'          ,'',set_line_numbers
810
  en,'Line numbers'          ,'',set_line_numbers
740
 
811
 
741
lsz s_modified,\
812
lsz s_modified,\
742
  ru,'ˆ§¬¥­¥­®',\
813
  ru,'ˆ§¬¥­¥­®',\
743
  en,'Modified'
814
  en,'Modified'
744
 
815
 
745
lsz s_2filename,\
816
lsz s_2filename,\
746
  ru,'ˆ¬ï ä ©« :',\
817
  ru,'ˆ¬ï ä ©« :',\
747
  en,'Filename:'
818
  en,'Filename:'
748
lsz s_2open,\
819
lsz s_2open,\
749
  ru,'Žâªàëâì',\
820
  ru,'Žâªàëâì',\
750
  en,'Open'
821
  en,'Open'
751
lsz s_2save,\
822
lsz s_2save,\
752
  ru,'‘®åà ­¨âì',\
823
  ru,'‘®åà ­¨âì',\
753
  en,'Save'
824
  en,'Save'
754
lsz s_2find,\
825
lsz s_2find,\
755
  ru,' ©â¨',\
826
  ru,' ©â¨',\
756
  en,'Find'
827
  en,'Find'
757
db ':'
828
db ':'
758
lsz s_2replace,\
829
lsz s_2replace,\
759
  ru,'‡ ¬¥­¨âì',\
830
  ru,'‡ ¬¥­¨âì',\
760
  en,'Replace'
831
  en,'Replace'
761
db ':'
832
db ':'
762
lsz s_2cancel,\
833
lsz s_2cancel,\
763
  ru,'Žâ¬¥­ ',\
834
  ru,'Žâ¬¥­ ',\
764
  en,'Cancel'
835
  en,'Cancel'
-
 
836
 
-
 
837
lsz s_enter_filename,\
-
 
838
  ru,<'‚¢¥¤¨â¥ ¨¬ï ä ©« ',0>,\
-
 
839
  en,<'Enter filename',0>
-
 
840
 
-
 
841
lsz s_enter_text_to_find,\
-
 
842
  ru,<'‚¢¥¤¨â¥ ⥪áâ ¤«ï ¯®¨áª ',0>,\
-
 
843
  en,<'Enter text to find',0>
-
 
844
 
-
 
845
lsz s_enter_text_to_replace,\
-
 
846
  ru,<'‚¢¥¤¨â¥ ⥪áâ ¤«ï § ¬¥­ë',0>,\
-
 
847
  en,<'Enter text to replace',0>
-
 
848
 
-
 
849
lsz s_text_not_found,\
-
 
850
  ru,<'„®á⨣­ãâ ª®­¥æ ä ©« , ⥪áâ ­¥ ­ ©¤¥­',0>,\
-
 
851
  en,<'Reached end of file, text not found',0>
-
 
852
 
-
 
853
lszc s_fs_error,b,\
-
 
854
  ru,<'Ž¯¥à æ¨ï § ¢¥à襭  ãᯥ譮 (0)',0>,\
-
 
855
  ru,<'',0>,\
-
 
856
  ru,<'”ã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë (2)',0>,\
-
 
857
  ru,<'¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬  (3)',0>,\
-
 
858
  ru,<'',0>,\
-
 
859
  ru,<'¥¢®§¬®¦­® ®âªàëâì ä ©« (5)',0>,\
-
 
860
  ru,<'Ž¯¥à æ¨ï § ¢¥à襭  ãᯥ譮 (6)',0>,\
-
 
861
  ru,<'€¤à¥á ­ å®¤¨âáï §  £à ­¨æ ¬¨ ¯ ¬ï⨠¯à®£à ¬¬ë (7)',0>,\
-
 
862
  ru,<'  ¤¨áª¥ ­¥â ᢮¡®¤­®£® ¬¥áâ  (8)',0>,\
-
 
863
  ru,<'’ ¡«¨æ  FAT ã­¨ç⮦¥­  (9)',0>,\
-
 
864
  ru,<'„®áâ㯠§ ¯à¥éñ­ (10)',0>,\
-
 
865
  ru,<'Žè¨¡ª  ãáâனá⢠ (11)',0>,\
-
 
866
\
-
 
867
  en,<'Operation executed successfully (0)',0>,\
-
 
868
  en,<'',0>,\
-
 
869
  en,<'Function is not supported for the given filesystem (2)',0>,\
-
 
870
  en,<'Unknown filesystem (3)',0>,\
-
 
871
  en,<'',0>,\
-
 
872
  en,<'Unable to open file (5)',0>,\
-
 
873
  en,<'Operation executed successfully (6)',0>,\
-
 
874
  en,<'Pointer lies outside of application memory (7)',0>,\
-
 
875
  en,<'Disk is full (8)',0>,\
-
 
876
  en,<'FAT table is destroyed (9)',0>,\
-
 
877
  en,<'Access denied (10)',0>,\
-
 
878
  en,<'Device error (11)',0>
765
 
879
 
766
sz symbols_ex,';?.%"',"'"
880
sz symbols_ex,';?.%"',"'"
767
sz symbols   ,'#&*\:/<>|{}()[]=+-, '
881
sz symbols   ,'#&*\:/<>|{}()[]=+-, '
-
 
882
 
-
 
883
ini_sec_window    db 'Window',0
-
 
884
ini_window_top    db 'Top',0
-
 
885
ini_window_left   db 'Left',0
-
 
886
ini_window_right  db 'Right',0
-
 
887
ini_window_bottom db 'Bottom',0
-
 
888
 
-
 
889
finfo_ini dd ?,?,?,AREA_TEMP,AREA_EDIT-AREA_TEMP
-
 
890
          db '/rd/1/tinypad.ini',0
768
 
891
 
769
TINYPAD_END:     ; end of file
892
TINYPAD_END:     ; end of file
770
 
893
 
771
self_path rb PATHL
894
self_path rb PATHL
772
 
895
 
773
;-----------------------------------------------------------------------------
896
;-----------------------------------------------------------------------------
774
section @UDATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
897
section @UDATA ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
775
;-----------------------------------------------------------------------------
898
;-----------------------------------------------------------------------------
-
 
899
 
-
 
900
f_info70 rd 7
776
 
901
 
777
f_info.length dd ?
902
f_info.length dd ?
778
f_info dd ?,?,?,?,?;?,0,?,AREA_TEMP,AREA_EDIT-AREA_TEMP
903
f_info dd ?,?,?,?,?;?,0,?,AREA_TEMP,AREA_EDIT-AREA_TEMP
779
 
904
 
780
f_info.path:
905
f_info.path:
781
    times PATHL+1 db ?
906
    times PATHL+1 db ?
782
 
907
 
783
pos.x         dd ?    ; global X position (cursor)
908
pos.x         dd ?    ; global X position (cursor)
784
pos.y         dd ?    ; global Y position (cursor)
909
pos.y         dd ?    ; global Y position (cursor)
785
sel.x         dd ?    ; global X position (selection start)
910
sel.x         dd ?    ; global X position (selection start)
786
sel.y         dd ?    ; global Y position (selection start)
911
sel.y         dd ?    ; global Y position (selection start)
787
lines         dd ?    ; number of lines in file
912
lines         dd ?    ; number of lines in file
788
lines.scr     dd ?    ; number of lines on the screen
913
lines.scr     dd ?    ; number of lines on the screen
789
columns       dd ?    ; number of columns in file
914
columns       dd ?    ; number of columns in file
790
columns.scr   dd ?    ; number of columns on the screen
915
columns.scr   dd ?    ; number of columns on the screen
791
top_ofs       dd ?    ; height occupied by top buttons
916
top_ofs       dd ?    ; height occupied by top buttons
792
bot_ofs       dd ?    ; height occupied by bottom buttons
917
bot_ofs       dd ?    ; height occupied by bottom buttons
793
              dw ?
918
              dw ?
794
left_ofs      dd ?    ;
919
left_ofs      dd ?    ;
795
top_line      dd ?    ; topmost visible line on screen
920
top_line      dd ?    ; topmost visible line on screen
796
left_col      dd ?    ; leftmost visible char on line
921
left_col      dd ?    ; leftmost visible char on line
797
vscrl_top     dd ?
922
vscrl_top     dd ?
798
vscrl_size    dd ?
923
vscrl_size    dd ?
799
hscrl_top     dd ?
924
hscrl_top     dd ?
800
hscrl_size    dd ?
925
hscrl_size    dd ?
801
skinh         dd ?    ; skin height
926
;skinh         dd ?    ; skin height
802
__rc          dd ?,?,?,?
927
__rc          dd ?,?,?,?
803
;filelen       dd ?    ; file size (on save) ???
928
;filelen       dd ?    ; file size (on save) ???
804
filesize      dd ?    ; file size (on load) ???
929
filesize      dd ?    ; file size (on load) ???
805
ya            dd ?    ; for read_string
930
ya            dd ?    ; for read_string
806
;copy_start    dd ?    ; first line for copying (Ctrl+S)
931
;copy_start    dd ?    ; first line for copying (Ctrl+S)
807
copy_count    dd ?    ; number of lines for copying (Ctrl+E)
932
copy_count    dd ?    ; number of lines for copying (Ctrl+E)
808
copy_size     dd ?    ; size of data to copy
933
copy_size     dd ?    ; size of data to copy
809
s_title.size  dd ?    ; caption length
934
s_title.size  dd ?    ; caption length
810
 
935
 
811
draw_blines   dd ?    ; last line to draw
936
draw_blines   dd ?    ; last line to draw
812
 
937
 
813
cur_line_len  dd ?
938
cur_line_len  dd ?
814
h_popup       dd ?
939
h_popup       dd ?
815
bot_dlg_handler dd ?
940
bot_dlg_handler dd ?
816
 
941
 
817
sel.begin.x   dd ?
942
sel.begin.x   dd ?
818
sel.begin.y   dd ?
943
sel.begin.y   dd ?
819
sel.end.x     dd ?
944
sel.end.x     dd ?
820
sel.end.y     dd ?
945
sel.end.y     dd ?
821
sel.selected  db ?
946
sel.selected  db ?
822
 
947
 
823
in_sel        db ?
948
in_sel        db ?
824
 
949
 
825
asm_mode      db ?    ; ASM highlight?
950
asm_mode      db ?    ; ASM highlight?
826
do_not_draw   db ?    ; draw top and bottom buttons?
951
do_not_draw   db ?    ; draw top and bottom buttons?
827
main_closed   db ?    ; main window closed?
952
main_closed   db ?    ; main window closed?
828
tb_casesen    db ?    ; focused textbox is case-sensitive?
953
tb_casesen    db ?    ; focused textbox is case-sensitive?
829
 
954
 
830
align 4
955
align 4
831
s_fname.size  dd ?
956
s_fname.size  dd ?
832
s_fname       rb PATHL+1
957
s_fname       rb PATHL+1
833
align 4
958
align 4
834
s_search.size dd ?
959
s_search.size dd ?
835
s_search      rb PATHL+1
960
s_search      rb PATHL+1
836
 
961
 
837
s_title       rb PATHL+11  ; window caption
962
s_title       rb PATHL+11  ; window caption
838
 
963
 
839
chr db ?
964
chr db ?
840
ext db ?
965
ext db ?
841
shi dd ?
966
shi dd ?
842
 
967
 
843
align 4
968
align 4
844
cl_3d_normal dd ?
969
cl_3d_normal dd ?
845
cl_3d_pushed dd ?
970
cl_3d_pushed dd ?
846
cl_3d_outset dd ?
971
cl_3d_outset dd ?
847
cl_3d_inset  dd ?
972
cl_3d_inset  dd ?
848
cl_3d_grayed dd ?
973
cl_3d_grayed dd ?
849
 
974
 
850
tb_opensave  TBOX
975
tb_opensave  TBOX
851
tb_find      TBOX
976
tb_find      TBOX
852
tb_replace   TBOX
977
tb_replace   TBOX
853
tb_gotorow   TBOX
978
tb_gotorow   TBOX
854
tb_gotocol   TBOX
979
tb_gotocol   TBOX
855
 
980
 
856
focused_tb   dd ?
981
focused_tb   dd ?
857
 
982
 
858
key1 rb 256
983
key1 rb 256
859
 
984
 
860
mst  db ?
985
mst  db ?
861
mst2 db ?
986
mst2 db ?
862
mev  db ?
987
mev  db ?
863
mouse_captured  db ?
988
mouse_captured  db ?
864
just_from_popup db ?
989
just_from_popup db ?
865
 
990
 
866
bot_mode db ?
991
bot_mode db ?
867
 
992
 
868
modified db ?
993
modified db ?
869
 
994
 
870
align 4
995
align 4
871
 
996
 
872
bot_dlg_height dd ?
997
bot_dlg_height dd ?
873
bot_dlg_mode2  db ?
998
bot_dlg_mode2  db ?
874
 
999
 
875
;-----------------------------------------------------------------------------
1000
;-----------------------------------------------------------------------------
876
section @PARAMS ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1001
section @PARAMS ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
877
;-----------------------------------------------------------------------------
1002
;-----------------------------------------------------------------------------
878
 
1003
 
879
fasm_parameters:
1004
fasm_parameters:
880
 
1005
 
881
p_info  process_information
1006
p_info  process_information
882
p_info2 process_information
1007
p_info2 process_information
883
sc      system_colors
1008
sc      system_colors
884
 
1009
 
885
diff16 'Main memory size',0,$
1010
diff16 'Main memory size',0,$
886
 
1011
 
887
MAIN_STACK  = 0x0000FFF0
1012
MAIN_STACK  = 0x0000FFF0
888
POPUP_STACK = 0x0000EFF0
1013
POPUP_STACK = 0x0000EFF0
889
 
1014
 
890
AREA_TEMP   = 0x00010000 ; 0x00010000
1015
AREA_TEMP   = 0x00010000 ; 0x00010000
891
AREA_EDIT   = 0x000C0000 ; 0x00080000
1016
AREA_EDIT   = 0x000C0000 ; 0x00080000
892
AREA_TEMP2  = 0x00190000 ; 0x002E0000
1017
AREA_TEMP2  = 0x00190000 ; 0x002E0000
893
AREA_CBUF   = 0x001A0000 ; 0x002F0000
1018
AREA_CBUF   = 0x001A0000 ; 0x002F0000
894
AREA_ENDMEM = 0x001B0000 ; 0x00300000
1019
AREA_ENDMEM = 0x001B0000 ; 0x00300000
895
 
1020
 
896
diff10 'Header+options size',0,@CODE
1021
diff10 'Header+options size',0,@CODE
897
diff10 'Load area size',AREA_TEMP,AREA_EDIT
1022
diff10 'Load area size',AREA_TEMP,AREA_EDIT
898
diff10 'Edit area size',AREA_EDIT,AREA_TEMP2
1023
diff10 'Edit area size',AREA_EDIT,AREA_TEMP2
899
diff10 'Total memory usage',0,AREA_ENDMEM
1024
diff10 'Total memory usage',0,AREA_ENDMEM
900
 
1025
 
901
;store dword '/hd/' at tb_opensave.text+4*0
1026
;store dword '/hd/' at tb_opensave.text+4*0
902
;store dword '1/tp' at tb_opensave.text+4*1
1027
;store dword '1/tp' at tb_opensave.text+4*1
903
;store dword 'ad4/' at tb_opensave.text+4*2
1028
;store dword 'ad4/' at tb_opensave.text+4*2
904
;store dword 'tiny' at tb_opensave.text+4*3
1029
;store dword 'tiny' at tb_opensave.text+4*3
905
;store dword 'pad.' at tb_opensave.text+4*4
1030
;store dword 'pad.' at tb_opensave.text+4*4
906
;store dword 'asm'  at tb_opensave.text+4*5
1031
;store dword 'asm'  at tb_opensave.text+4*5
907
;store byte  23     at tb_opensave.length
1032
;store byte  23     at tb_opensave.length