Subversion Repositories Kolibri OS

Rev

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

Rev 1390 Rev 1449
1
;Îãðîìíàÿ áëàãîäàðíîñòü Maxxxx32, Diamond, Heavyiron
1
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron
2
;è äðóãèì ïðîãðàììèñòàì, à òàêæå
2
;¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬,   â ª¦¥
3
;Òåïëîâó Àëåêñåþ ( www.lrz.land.ru)
3
;’¥¯«®¢ã €«¥ªá¥î ( www.lrz.land.ru)
4
 
4
 
5
 
5
 
6
use32
6
use32
7
  org 0x0
7
  org 0x0
8
  db 'MENUET01' ;èäåíòèô. èñïîëíÿåìîãî ôàéëà âñåãäà 8 áàéò
8
  db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
9
  dd 0x01
9
  dd 0x01
10
  dd start
10
  dd start
11
  dd i_end ; ðàçìåð ïðèëîæåíèÿ
11
  dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï
12
  dd mem
12
  dd mem
13
  dd stacktop
13
  dd stacktop
14
  dd file_name;buf_cmd_lin
14
  dd file_name ; command line
15
  dd sys_path
15
  dd sys_path
16
 
16
 
17
MAX_COLOR_WORD_LEN equ 40
17
MAX_COLOR_WORD_LEN equ 40
18
maxChars equ 100002 ;(...+2)
18
maxChars equ 100002 ;(...+2)
19
BUF_SIZE equ 1000 ;bufer for copy|paste
19
BUF_SIZE equ 1000 ;bufer for copy|paste
20
maxColWords equ 10000
20
maxColWords equ 10000
21
 
-
 
-
 
21
 
22
 
22
include '../../proc32.inc'
23
include '../../macros.inc'
23
include '../../macros.inc'
24
include '../../develop/libraries/box_lib/load_lib.mac'
24
include '../../develop/libraries/box_lib/load_lib.mac'
25
include '../../develop/libraries/box_lib/trunk/tree_list.mac'
-
 
26
include '../../develop/libraries/box_lib/trunk/editbox.mac'
25
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
27
 
26
 
28
include 'lang.inc'
27
include 'lang.inc'
29
include 't_data.inc'
28
include 't_data.inc'
30
include 'strlen.inc'
29
include 'strlen.inc'
31
include 't_work.inc' ;text work functions
30
include 't_work.inc' ;text work functions
32
include 't_draw.inc' ;draw main window functions
31
include 't_draw.inc' ;draw main window functions
33
include 't_button.inc'
32
include 't_button.inc'
34
 
33
 
35
@use_library
34
@use_library
36
 
35
 
37
start:
36
start:
38
  mov eax,48
37
  mov eax,48
39
  mov ebx,3
38
  mov ebx,3
40
  mov ecx,sc
39
  mov ecx,sc
41
  mov edx,sizeof.system_colors
40
  mov edx,sizeof.system_colors
42
  mcall
41
  mcall
43
 
42
 
44
  m2m [wScr.bckg_col],[sc.work]
43
  m2m [wScr.bckg_col],[sc.work]
45
  m2m [wScr.frnt_col],[sc.work_button]
44
  m2m [wScr.frnt_col],[sc.work_button]
46
  m2m [wScr.line_col],[sc.work_button_text]
45
  m2m [wScr.line_col],[sc.work_button_text]
47
 
46
 
48
  m2m [hScr.bckg_col],[sc.work]
47
  m2m [hScr.bckg_col],[sc.work]
49
  m2m [hScr.frnt_col],[sc.work_button]
48
  m2m [hScr.frnt_col],[sc.work_button]
50
  m2m [hScr.line_col],[sc.work_button_text]
49
  m2m [hScr.line_col],[sc.work_button_text]
51
 
50
 
52
 
51
 
53
  mcall 68,11
52
  mcall 68,11
54
  or eax,eax
53
  or eax,eax
55
  jz button.exit
54
  jz button.exit
56
 
55
 
57
  mcall 66,1,1 ;scan code
56
  mcall 66,1,1 ;scan code
58
  ;mcall 26,2,1,conv_tabl
57
  ;mcall 26,2,1,conv_tabl
59
 
58
 
60
  mov ecx,sizeof.symbol*maxChars
59
  mov ecx,sizeof.symbol*maxChars
61
  call mem_Alloc
60
  call mem_Alloc
62
  mov [tex],eax
61
  mov [tex],eax
63
  mov [tex_1],eax
62
  mov [tex_1],eax
64
  add [tex_1],sizeof.symbol
63
  add [tex_1],sizeof.symbol
65
  mov [tex_end],eax
64
  mov [tex_end],eax
66
  add [tex_end],sizeof.symbol*maxChars
65
  add [tex_end],sizeof.symbol*maxChars
67
 
66
 
68
  mcall 40,0x27
67
  mcall 40,0x27
69
 
68
 
70
  call Clear
69
  call Clear
71
 
70
 
72
;-------------------------------------------------
71
;-------------------------------------------------
73
  mov ecx,maxColWords*sizeof.TexColViv+40
72
  mov ecx,maxColWords*sizeof.TexColViv+40
74
  ;add ecx,40
73
  ;add ecx,40
75
  call mem_Alloc
74
  call mem_Alloc
76
  mov [options_file],eax
75
  mov [options_file],eax
77
  mov [options_file_end],eax
76
  mov [options_file_end],eax
78
  add [options_file_end],maxColWords*sizeof.TexColViv
77
  add [options_file_end],maxColWords*sizeof.TexColViv
79
  add [options_file_end],40
78
  add [options_file_end],40
80
 
79
 
81
;-------------------------------------------------
80
;-------------------------------------------------
82
; init bmp file
81
; init bmp file
83
  mov ecx,1200*18
82
  mov ecx,1200*18
84
  call mem_Alloc
83
  call mem_Alloc
85
  mov [bmp_icon],eax
84
  mov [bmp_icon],eax
86
 
85
 
87
  mov esi,file_name
86
  mov esi,file_name
88
  call strlen
87
  call strlen
89
  mov ecx,eax
88
  mov ecx,eax
90
  mov edi,buf_cmd_lin
89
  mov edi,buf_cmd_lin
91
  rep movsb
90
  rep movsb
92
 
91
 
93
  copy_path fn_icon,sys_path,file_name,0x0
92
  copy_path fn_icon,sys_path,file_name,0x0
94
 
93
 
95
  mov eax,70 ;load icon file
94
  mov eax,70 ;load icon file
96
  mov [run_file_70.func_n], 0
95
  mov [run_file_70.func_n], 0
97
  mov [run_file_70.param1], 54
96
  mov [run_file_70.param1], 54
98
  mov [run_file_70.param2], 0
97
  mov [run_file_70.param2], 0
99
  mov [run_file_70.param3], 1200*18
98
  mov [run_file_70.param3], 1200*18
100
  m2m [run_file_70.param4], [bmp_icon]
99
  m2m [run_file_70.param4], [bmp_icon]
101
  mov [run_file_70.rezerv], 0
100
  mov [run_file_70.rezerv], 0
102
  mov [run_file_70.name], file_name
101
  mov [run_file_70.name], file_name
103
  mov ebx,run_file_70
102
  mov ebx,run_file_70
104
  int 0x40
103
  int 0x40
105
 
104
 
106
  cmp ebx,-1
105
  cmp ebx,-1
107
  mov [err_ini0],1
106
  mov [err_ini0],1
108
  je @f ;if open file
107
  je @f ;if open file
109
    mov [err_ini0],0
108
    mov [err_ini0],0
110
  @@:
109
  @@:
111
 
110
 
112
load_libraries l_libs_start,load_lib_end
111
load_libraries l_libs_start,load_lib_end
113
 
112
 
114
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
113
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ­ è  «¨¡ 
115
	mov	ebp,lib0
114
	mov	ebp,lib0
116
	cmp	dword [ebp+ll_struc_size-4],0
115
	cmp	dword [ebp+ll_struc_size-4],0
117
	jz	@f
116
	jz	@f
118
	mcall	-1	;exit not correct
117
	mcall	-1	;exit not correct
119
@@:
118
@@:
120
	mov	ebp,lib1 ;
119
	mov	ebp,lib1 ;
121
	cmp	dword [ebp+ll_struc_size-4],0
120
	cmp	dword [ebp+ll_struc_size-4],0
122
	jz	@f
121
	jz	@f
123
	mcall	-1	;exit not correct
122
	mcall	-1	;exit not correct
124
@@:
123
@@:
125
 
124
 
126
 
125
 
127
;---------------------------------------------------------------------
126
;---------------------------------------------------------------------
128
  push dword tree1
127
  push dword tree1
129
  call dword[tl_data_init]
128
  call dword[tl_data_init]
130
;---------------------------------------------------------------------
129
;---------------------------------------------------------------------
131
; ÷èòàåì bmp ôàéë ñ êóðñîðàìè è ëèíèÿìè
130
; ç¨â ¥¬ bmp ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
132
  copy_path fn_icon_tl_sys,sys_path,file_name,0x0
131
  copy_path fn_icon_tl_sys,sys_path,file_name,0x0
133
 
132
 
134
  mov ecx,3*256*13
133
  mov ecx,3*256*13
135
  call mem_Alloc
134
  call mem_Alloc
136
  mov dword[tree1.data_img_sys],eax
135
  mov dword[tree1.data_img_sys],eax
137
 
136
 
138
  ;mov [run_file_70.func_n], 0
137
  ;mov [run_file_70.func_n], 0
139
  ;mov [run_file_70.param1], 54
138
  ;mov [run_file_70.param1], 54
140
  ;mov [run_file_70.param2], 0
139
  ;mov [run_file_70.param2], 0
141
  mov [run_file_70.param3], 3*256*13
140
  mov [run_file_70.param3], 3*256*13
142
  mov [run_file_70.param4], eax
141
  mov [run_file_70.param4], eax
143
  ;mov [run_file_70.rezerv], 0
142
  ;mov [run_file_70.rezerv], 0
144
  ;mov [run_file_70.name], file_name
143
  ;mov [run_file_70.name], file_name
145
 
144
 
146
  mov eax,70 ;load icon file
145
  mov eax,70 ;load icon file
147
  mov ebx,run_file_70
146
  mov ebx,run_file_70
148
  int 0x40
147
  int 0x40
149
  cmp ebx,0
148
  cmp ebx,0
150
  jg @f
149
  jg @f
151
    mov dword[tree1.data_img_sys],0
150
    mov dword[tree1.data_img_sys],0
152
  @@:
151
  @@:
153
;---------------------------------------------------------------------
152
;---------------------------------------------------------------------
154
; ÷èòàåì bmp ôàéë ñ èêîíêàìè óçëîâ
153
; ç¨â ¥¬ bmp ä ©« á ¨ª®­ª ¬¨ 㧫®¢
155
  copy_path fn_icon_tl_nod,sys_path,file_name,0x0
154
  copy_path fn_icon_tl_nod,sys_path,file_name,0x0
156
 
155
 
157
  mov ecx,3*256*2
156
  mov ecx,3*256*2
158
  call mem_Alloc
157
  call mem_Alloc
159
  mov dword[tree1.data_img],eax
158
  mov dword[tree1.data_img],eax
160
 
159
 
161
;  mov [run_file_70.func_n], 0
160
;  mov [run_file_70.func_n], 0
162
;  mov [run_file_70.param1], 54
161
;  mov [run_file_70.param1], 54
163
;  mov [run_file_70.param2], 0
162
;  mov [run_file_70.param2], 0
164
  mov [run_file_70.param3], 3*256*2
163
  mov [run_file_70.param3], 3*256*2
165
  mov [run_file_70.param4], eax
164
  mov [run_file_70.param4], eax
166
;  mov [run_file_70.rezerv], 0
165
;  mov [run_file_70.rezerv], 0
167
;  mov [run_file_70.name], file_name
166
;  mov [run_file_70.name], file_name
168
 
167
 
169
  mov eax,70 ;load icon file
168
  mov eax,70 ;load icon file
170
  mov ebx,run_file_70
169
  mov ebx,run_file_70
171
  int 0x40
170
  int 0x40
172
  cmp ebx,0
171
  cmp ebx,0
173
  jg @f
172
  jg @f
174
    mov dword[tree1.data_img],0
173
    mov dword[tree1.data_img],0
175
  @@:
174
  @@:
176
;------------------------------------------------------------------------------
175
;------------------------------------------------------------------------------
177
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;áåðåì ïóòü ê ïàïêå ñ ôàéëàìè ñèíòàêñèñà
176
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
178
  mov eax,70
177
  mov eax,70
179
  mov ebx,tree_file_struct
178
  mov ebx,tree_file_struct
180
  int 0x40
179
  int 0x40
181
 
180
 
182
cmp ebx,-1
181
cmp ebx,-1
183
je .end_dir_init
182
je .end_dir_init
184
 
183
 
185
  mov eax,dir_mem
184
  mov eax,dir_mem
186
  add eax,32+4+1+3+4*6+8
185
  add eax,32+4+1+3+4*6+8
187
mov ecx,ebx
186
mov ecx,ebx
188
@@:
187
@@:
189
  cmp byte[eax],'.' ;ôèëüòðóåì ôàéëû ñ èìåíàìè '.' è '..'
188
  cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
190
  je .filter
189
  je .filter
191
    push dword tree1
190
    push dword tree1
192
    push dword 0x10000 ;1*2^16 - ãäå 1 íîìåð èêîíêè ñ êíèãîé
191
    push dword 0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
193
    push dword eax
192
    push dword eax
194
    call dword[tl_node_add]
193
    call dword[tl_node_add]
195
 
194
 
196
    push dword tree1
195
    push dword tree1
197
    call dword[tl_cur_next]
196
    call dword[tl_cur_next]
198
  .filter:
197
  .filter:
199
  add eax,304
198
  add eax,304
200
  loop @b
199
  loop @b
201
.end_dir_init:
200
.end_dir_init:
202
 
201
 
203
;  push dword tree1
202
;  push dword tree1
204
;  push dword 0
203
;  push dword 0
205
;  push dword file_name
204
;  push dword file_name
206
;  call dword[tl_node_add]
205
;  call dword[tl_node_add]
207
 
206
 
208
 
207
 
209
;--- load color option file ---
208
;--- load color option file ---
210
  call InitColText
209
  call InitColText
211
 
210
 
212
;--- get cmd line ---
211
;--- get cmd line ---
213
  cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin
212
  cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin
214
  je @f ;if file names exist
213
  je @f ;if file names exist
215
    mov esi,buf_cmd_lin
214
    mov esi,buf_cmd_lin
216
    call strlen ;eax=strlen
215
    call strlen ;eax=strlen
217
    mov [edit1.size],eax
216
    mov [edit1.size],eax
218
    call but_OpenFile
217
    call but_OpenFile
219
  @@:
218
  @@:
220
 
219
 
221
 
220
 
222
red_win:
221
red_win:
223
  mcall 12,1
222
  mcall 12,1
224
 
223
 
225
  xor eax,eax
224
  xor eax,eax
226
  mov ebx,10*65536+485
225
  mov ebx,10*65536+485
227
  mov ecx,10*65536+280
226
  mov ecx,10*65536+280
228
  mov edx,[sc.work]
227
  mov edx,[sc.work]
229
  or  edx,0x73000000
228
  or  edx,0x73000000
230
  mov edi,hed
229
  mov edi,hed
231
  mcall
230
  int 0x40
-
 
231
 
-
 
232
  mov edi,tedit0
232
 
233
 
233
  mcall 9,procinfo,-1
234
  mcall 9,procinfo,-1
234
  call EvSize
235
  stdcall EvSize,edi
235
 
236
 
236
  mov eax,13 ;rect
237
  mov eax,13 ;âåðõíèé ïðÿìîóãîëüíèê, äëÿ î÷èñòêè âåðõíåé ïàíåëè
237
  xor ebx,ebx
238
  xor ebx,ebx
238
  xor ecx,ecx
239
  mov ecx,ted_wnd_t
239
  mov bx,word [procinfo.client_box.width]
-
 
240
  inc bx
240
  mov bx,word [procinfo.client_box.width]
241
  mov cx,word [wndMain.top]
-
 
242
  mcall
-
 
243
 
-
 
244
  push dword edit1
-
 
245
  call [edit_box_draw]
241
  inc bx
246
 
242
  int 0x40
247
; draw for Menu 1
243
 
248
  push dword menu_data_1
244
  stdcall [edit_box_draw], dword edit1
249
  call [menu_bar_draw] 
245
  stdcall [menu_bar_draw], dword menu_data_1
250
 
246
 
251
  call draw_but_toolbar
247
  call draw_but_toolbar
252
 
248
 
253
  cmp [err_ini0],1
249
  cmp [err_ini0],1
254
  jne @f
250
  jne @f
255
    mov eax,4
251
    mov eax,4
256
    mov ebx,[wndMain.left]
252
    mov ebx,ted_wnd_l
257
    add ebx,[recMain.left]
253
    add ebx,ted_rec_l
258
    shl ebx,16
254
    shl ebx,16
259
    add ebx,[wndMain.top]
255
    add ebx,ted_wnd_t
260
    add ebx,[recMain.top]
256
    add ebx,ted_rec_t
261
    mov ecx,0x80ff0000
257
    mov ecx,0x80ff0000
262
    mov edx,txtErrIni0
258
    mov edx,txtErrIni0
263
    int 0x40
259
    int 0x40
264
 
260
 
265
    add ebx,10 ;move <--y-->
261
    add ebx,10 ;move <--y-->
266
    mov ecx,0x80ff0080
262
    mov ecx,0x80ff0080
267
    mov edx,file_name
263
    mov edx,file_name
268
    int 0x40
264
    int 0x40
269
  @@:
265
  @@:
270
 
266
 
271
  cmp [err_ini0],1
267
  cmp [err_ini0],1
272
  je @f
268
  je @f
273
    call draw_main_win
269
    stdcall draw_main_win, tedit0
274
  @@:
-
 
275
 
-
 
276
  cmp [err_opn],1
-
 
277
  jne @f
-
 
278
    ;mov eax,4
-
 
279
    mov ebx,10*65536+35
-
 
280
    mov ecx,0x80ff0000
-
 
281
    mov edx,txtErrOpen
-
 
282
    mcall
-
 
283
  @@:
270
  @@:
284
 
271
 
285
  mcall 12,2
272
  mcall 12,2
286
 
273
 
287
still:
274
still:
288
  mov eax,10
275
  mov eax,10
289
  mcall
276
  mcall
290
 
277
 
291
  cmp al,1 ;èçì. ïîëîæåíèå îêíà
278
  cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
292
  jz red_win
279
  jz red_win
293
  cmp al,2
280
  cmp al,2
294
  jz key
281
  jz key
295
  cmp al,3
282
  cmp al,3
296
  jz button
283
  jz button
297
  cmp al,6
284
  cmp al,6
298
  jz mouse
285
  jz mouse
299
 
286
 
300
  jmp still
287
  jmp still
301
 
288
 
302
 
289
 
303
 
290
 
304
mouse:
291
mouse:
305
  push dword edit1
-
 
306
  call [edit_box_mouse]
292
  stdcall [edit_box_mouse], dword edit1
307
 
293
 
308
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
294
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
309
  jne still
295
  jne still
310
 
296
 
311
;-----------------------------------------------
297
;-----------------------------------------------
312
  cmp [hScr.delta2],0
298
  cmp [hScr.delta2],0
313
  jne .horizontal
299
  jne .horizontal
314
.vertical:
300
.vertical:
315
  mov eax,[wScr.max_area]
301
  mov eax,[wScr.max_area]
316
  cmp eax,[wScr.cur_area]
302
  cmp eax,[wScr.cur_area]
317
  jbe .horizontal
303
  jbe .horizontal
318
; mouse event for Vertical ScrollBar
304
; mouse event for Vertical ScrollBar
319
  push dword wScr
-
 
320
  call [scrollbar_ver_mouse]
305
  stdcall [scrollbar_ver_mouse], dword wScr
321
  mov eax,wScr.redraw
306
  mov eax,wScr.redraw
322
  xor ebx,ebx
307
  xor ebx,ebx
323
  cmp [eax],ebx
308
  cmp [eax],ebx
324
  je @f
309
  je @f
325
  mov [eax],ebx
310
  mov [eax],ebx
326
 
311
 
327
  call draw_main_win
-
 
328
  ;call mouse_wnd_main
312
  stdcall draw_main_win, tedit0
329
  jmp still
313
  jmp still
330
@@:
314
@@:
331
  cmp [wScr.delta2],0
315
  cmp [wScr.delta2],0
332
  jne still
316
  jne still
333
.horizontal:
317
.horizontal:
334
    mov   eax,[hScr.max_area]
318
    mov   eax,[hScr.max_area]
335
    cmp   eax,[hScr.cur_area]
319
    cmp   eax,[hScr.cur_area]
336
    jbe   .other
320
    jbe   .other
337
; mouse event for Horizontal ScrollBar
321
; mouse event for Horizontal ScrollBar
338
	push dword hScr
322
	push dword hScr
339
	call [scrollbar_hor_mouse]
323
	call [scrollbar_hor_mouse]
340
	mov eax,hScr.redraw
324
	mov eax,hScr.redraw
341
	xor ebx,ebx
325
	xor ebx,ebx
342
	cmp [eax],ebx
326
	cmp [eax],ebx
343
	je .other
327
	je .other
344
	mov [eax],ebx
328
	mov [eax],ebx
345
  call draw_main_win
329
  stdcall draw_main_win, tedit0
346
  jmp still
330
  jmp still
347
.other:
331
.other:
348
  cmp [wScr.delta2],0
332
  cmp [wScr.delta2],0
349
  jne still
333
  jne still
350
  cmp [hScr.delta2],0
334
  cmp [hScr.delta2],0
351
  jne still
335
  jne still
352
 
336
 
353
  call mouse_wnd_main
337
  stdcall mouse_wnd_main, tedit0
354
 
338
 
355
  cmp byte[panel_id],TE_PANEL_FIND ;if not panel
339
  cmp byte[panel_id],TE_PANEL_FIND ;if not panel
356
  jne @f
340
  jne @f
357
    push dword edit2
341
    push dword edit2
358
    call [edit_box_mouse]
342
    call [edit_box_mouse]
359
  @@:
343
  @@:
360
  cmp byte[panel_id],TE_PANEL_SYNTAX ;if not panel
344
  cmp byte[panel_id],TE_PANEL_SYNTAX ;if not panel
361
  jne .menu_bar_1 ;@f
345
  jne .menu_bar_1 ;@f
362
  push dword tree1
346
  push dword tree1
363
  call [tl_mouse]
347
  call [tl_mouse]
364
;-----------------------------------------------
348
;-----------------------------------------------
365
.menu_bar_1:
349
.menu_bar_1:
366
  mov [menu_data_1.get_mouse_flag],1
350
  mov [menu_data_1.get_mouse_flag],1
367
; mouse event for Menu 1
351
; mouse event for Menu 1
368
  push	dword menu_data_1
352
  push	dword menu_data_1
369
  call	[menu_bar_mouse]
353
  call	[menu_bar_mouse]
370
  cmp	[menu_data_1.click],dword 1
354
  cmp	[menu_data_1.click],dword 1
371
  jne	.mnu_1
355
  jne	.mnu_1
372
  cmp [menu_data_1.cursor_out],dword 4
356
  cmp [menu_data_1.cursor_out],dword 4
373
  je	button.exit	
357
  je	button.exit	
374
  cmp [menu_data_1.cursor_out],dword 3
358
  cmp [menu_data_1.cursor_out],dword 3
375
  jne	@f
359
  jne	@f
376
    call but_SaveFile
360
    call but_SaveFile
377
  @@:
361
  @@:
378
  cmp [menu_data_1.cursor_out],dword 2
362
  cmp [menu_data_1.cursor_out],dword 2
379
  jne	@f
363
  jne	@f
380
    call but_OpenFile
364
    call but_OpenFile
381
  @@:
365
  @@:
382
  cmp [menu_data_1.cursor_out],dword 1
366
  cmp [menu_data_1.cursor_out],dword 1
383
  jne	@f
367
  jne	@f
384
    call but_NewFile
368
    call but_NewFile
385
  @@:
369
  @@:
386
  ;cmp [menu_data_1.cursor_out],dword 0
370
  ;cmp [menu_data_1.cursor_out],dword 0
387
  ;jne @f
371
  ;jne @f
388
.mnu_1:
372
.mnu_1:
389
  jmp still
373
  jmp still
390
;---------------------------------------------------------------------
374
;---------------------------------------------------------------------
391
 
375
 
392
KeyConvertToASCII:
376
KeyConvertToASCII:
393
  mov ebx,conv_tabl ;convert scan to ascii
377
  mov ebx,conv_tabl ;convert scan to ascii
394
  ror ax,8
378
  ror ax,8
395
  xor ah,ah
379
  xor ah,ah
396
  add bx,ax
380
  add bx,ax
397
  mov ah,byte[ebx]
381
  mov ah,byte[ebx]
398
  ret
382
  ret
399
 
383
 
400
key:
384
key:
401
  mov ecx,1
385
  mov ecx,1
402
  mcall 66,3
386
  mcall 66,3
403
  xor ebx,ebx
387
  xor ebx,ebx
404
  test al,0x03 ;[Shift]
388
  test al,0x03 ;[Shift]
405
  jz @f
389
  jz @f
406
    inc cl
390
    inc cl
407
    or ebx,KM_SHIFT
391
    or ebx,KM_SHIFT
408
  @@:
392
  @@:
409
  test al,0x0c ;[Ctrl]
393
  test al,0x0c ;[Ctrl]
410
  jz @f
394
  jz @f
411
    or ebx,KM_CTRL
395
    or ebx,KM_CTRL
412
  @@:
396
  @@:
413
  test al,0x30 ;[Alt]
397
  test al,0x30 ;[Alt]
414
  jz @f
398
  jz @f
415
    or ebx,KM_ALT
399
    or ebx,KM_ALT
416
  @@:
400
  @@:
417
  test al,0x80 ;[NumLock]
401
  test al,0x80 ;[NumLock]
418
  jz @f
402
  jz @f
419
    or ebx,KM_NUMLOCK
403
    or ebx,KM_NUMLOCK
420
  @@:
404
  @@:
421
 
405
 
422
  mov [keyUpr],ebx
406
  mov [keyUpr],ebx
423
  mcall 26,2,,conv_tabl
407
  mcall 26,2,,conv_tabl
424
  mcall 2
408
  mcall 2
425
 
409
 
426
;  push dword tree1 ;???
410
;  push dword tree1 ;???
427
;  call [tl_key]    ;???
411
;  call [tl_key]    ;???
428
 
412
 
429
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
413
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
430
  je @f
414
  je @f
431
    cmp ah,0x80 ;if key up
415
    cmp ah,0x80 ;if key up
432
    ja still
416
    ja still
433
    cmp ah,42 ;[Shift] (left)
417
    cmp ah,42 ;[Shift] (left)
434
    je still
418
    je still
435
    cmp ah,54 ;[Shift] (right)
419
    cmp ah,54 ;[Shift] (right)
436
    je still
420
    je still
437
    cmp ah,56 ;[Alt]
421
    cmp ah,56 ;[Alt]
438
    je still
422
    je still
439
    cmp ah,29 ;[Ctrl]
423
    cmp ah,29 ;[Ctrl]
440
    je still
424
    je still
441
    cmp ah,69 ;[Pause Break]
425
    cmp ah,69 ;[Pause Break]
442
    je still
426
    je still
443
;    cmp [keyUpr],0
427
;    cmp [keyUpr],0
444
;    jne still
428
;    jne still
445
 
429
 
446
    call KeyConvertToASCII
430
    call KeyConvertToASCII
447
 
431
 
448
    push dword edit1
432
    push dword edit1
449
    call [edit_box_key]
433
    call [edit_box_key]
450
    jmp still
434
    jmp still
451
  @@:
435
  @@:
452
 
436
 
453
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
437
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
454
  je @f
438
  je @f
455
    cmp ah,0x80 ;if key up
439
    cmp ah,0x80 ;if key up
456
    ja still
440
    ja still
457
    cmp ah,42 ;[Shift] (left)
441
    cmp ah,42 ;[Shift] (left)
458
    je still
442
    je still
459
    cmp ah,54 ;[Shift] (right)
443
    cmp ah,54 ;[Shift] (right)
460
    je still
444
    je still
461
    cmp ah,56 ;[Alt]
445
    cmp ah,56 ;[Alt]
462
    je still
446
    je still
463
    cmp ah,29 ;[Ctrl]
447
    cmp ah,29 ;[Ctrl]
464
    je still
448
    je still
465
    cmp ah,69 ;[Pause Break]
449
    cmp ah,69 ;[Pause Break]
466
    je still
450
    je still
467
;    cmp [keyUpr],0
451
;    cmp [keyUpr],0
468
;    jne still
452
;    jne still
469
 
453
 
470
    call KeyConvertToASCII
454
    call KeyConvertToASCII
471
    push dword edit2
-
 
472
    call [edit_box_key]
455
    stdcall [edit_box_key], dword edit2
473
    jmp still
456
    jmp still
474
  @@:
457
  @@:
475
 
458
 
476
  cmp ah,KEY_F1 ;[F1]
459
  cmp ah,KEY_F1 ;[F1]
477
  jne @f
460
  jne @f
478
    call ShowHelpF1
461
    call ShowHelpF1
479
    jmp still
462
    jmp still
480
  @@:
463
  @@:
481
  cmp ah,KEY_F3 ;[F3]
464
  cmp ah,KEY_F3 ;[F3]
482
  jne @f
465
  jne @f
483
    call but_FindText
466
    call but_FindText
484
    jmp still
467
    jmp still
485
  @@:
468
  @@:
486
 
469
 
487
  test [keyUpr],KM_CTRL ;Ctrl+...
470
  test [keyUpr],KM_CTRL ;Ctrl+...
488
  jz .key_Ctrl
471
  jz .key_Ctrl
489
 
472
 
490
    cmp ah,24 ;Ctrl+O
473
    cmp ah,24 ;Ctrl+O
491
    jne @f
474
    jne @f
492
      call but_OpenFile
475
      call but_OpenFile
493
    @@:
476
    @@:
494
    cmp ah,33 ;Ctrl+F
477
    cmp ah,33 ;Ctrl+F
495
    jne @f
478
    jne @f
496
    cmp byte[panel_id],TE_PANEL_FIND
479
    cmp byte[panel_id],TE_PANEL_FIND
497
    je @f
480
    je @f
498
      call but_find
481
      stdcall but_find, tedit0
499
    @@:
482
    @@:
500
    cmp ah,44 ;Ctrl+Z
483
    cmp ah,44 ;Ctrl+Z
501
    je but_undo
484
    je but_undo
502
    cmp ah,46 ;Ctrl+C
485
    cmp ah,46 ;Ctrl+C
503
    jne @f
486
    jne @f
504
      call but_Copy
487
      call but_Copy
505
    @@:
488
    @@:
506
    cmp ah,47 ;Ctrl+V
489
    cmp ah,47 ;Ctrl+V
507
    je but_paste
490
    je but_paste
508
    cmp ah,49 ;Ctrl+N
491
    cmp ah,49 ;Ctrl+N
509
    jne @f
492
    jne @f
510
      call but_NewFile
493
      call but_NewFile
511
    @@:
494
    @@:
512
    cmp ah,199 ;Ctrl+Home
495
    cmp ah,199 ;Ctrl+Home
513
    jne @f
496
    jne @f
514
      call but_CtrlHome
497
      call but_CtrlHome
515
    @@:
498
    @@:
516
    ;jmp still
499
    ;jmp still
517
  .key_Ctrl:
500
  .key_Ctrl:
518
 
501
 
519
  test [keyUpr],KM_SHIFT ;Shift+...
502
  test [keyUpr],KM_SHIFT ;Shift+...
520
  jz .key_Shift
503
  jz .key_Shift
521
    cmp ah,72 ;Shift+Up
504
    cmp ah,72 ;Shift+Up
522
    jne @f
505
    jne @f
523
      call sel_KeyUp
506
      call sel_KeyUp
524
    @@:
507
    @@:
525
    cmp ah,75 ;Shift+Left
508
    cmp ah,75 ;Shift+Left
526
    jne @f
509
    jne @f
527
      call sel_KeyLeft
510
      call sel_KeyLeft
528
    @@:
511
    @@:
529
    cmp ah,77 ;Shift+Right
512
    cmp ah,77 ;Shift+Right
530
    jne @f
513
    jne @f
531
      call sel_KeyRight
514
      call sel_KeyRight
532
    @@:
515
    @@:
533
    cmp ah,80 ;Shift+Down
516
    cmp ah,80 ;Shift+Down
534
    jne @f
517
    jne @f
535
      call sel_KeyDown
518
      call sel_KeyDown
536
    @@:
519
    @@:
537
    ;mov [dragk],1 ;íà÷èíàåì âûäåëåíèå îò êëàâèàòóðû
520
    ;mov [dragk],1 ;­ ç¨­ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
538
    jmp .key_MoveCur
521
    jmp .key_MoveCur
539
  .key_Shift:
522
  .key_Shift:
540
;-------------------------------------------------
523
;-------------------------------------------------
541
  cmp ah,72 ;178 ;Up
524
  cmp ah,72 ;178 ;Up
542
  jne @f
525
  jne @f
543
    push dx
526
    push dx
544
    call draw_cursor_sumb
527
    stdcall draw_cursor_sumb, tedit0
545
    call CurMoveUp
528
    call CurMoveUp
546
    cmp dl,8
529
    cmp dl,8
547
    jne .no_red_0
530
    jne .no_red_0
548
      call OnInitialUpdate
531
      call OnInitialUpdate
549
      call draw_main_win
532
      stdcall draw_main_win, tedit0
550
      pop dx
533
      pop dx
551
      jmp @f
534
      jmp @f
552
    .no_red_0:
535
    .no_red_0:
553
    call draw_main_cursor
536
    stdcall draw_main_cursor, tedit0
554
    pop dx
537
    pop dx
555
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
538
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
556
  @@:
539
  @@:
557
  cmp ah,80 ;177 ;Down
540
  cmp ah,80 ;177 ;Down
558
  jne @f
541
  jne @f
559
    push dx
542
    push dx
560
    call draw_cursor_sumb
543
    stdcall draw_cursor_sumb, tedit0
561
    call CurMoveDown
544
    call CurMoveDown
562
    cmp dl,8
545
    cmp dl,8
563
    jne .no_red_1
546
    jne .no_red_1
564
      call OnInitialUpdate
547
      call OnInitialUpdate
565
      call draw_main_win
548
      stdcall draw_main_win, tedit0
566
      pop dx
549
      pop dx
567
      jmp @f
550
      jmp @f
568
    .no_red_1:
551
    .no_red_1:
569
    call draw_main_cursor
552
    stdcall draw_main_cursor, tedit0
570
    pop dx
553
    pop dx
571
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
554
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
572
  @@:
555
  @@:
573
  cmp ah,75 ;176 ;Left
556
  cmp ah,75 ;176 ;Left
574
  jne @f
557
  jne @f
575
    push dx
558
    push dx
576
    call draw_cursor_sumb
559
    stdcall draw_cursor_sumb, tedit0
577
    call CurMoveLeft
560
    call CurMoveLeft
578
    cmp dl,8
561
    cmp dl,8
579
    jne .no_red_2
562
    jne .no_red_2
580
      call OnInitialUpdate
563
      call OnInitialUpdate
581
      call draw_main_win
564
      stdcall draw_main_win, tedit0
582
      pop dx
565
      pop dx
583
      jmp @f
566
      jmp @f
584
    .no_red_2:
567
    .no_red_2:
585
    call draw_main_cursor
568
    stdcall draw_main_cursor, tedit0
586
    pop dx
569
    pop dx
587
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
570
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
588
  @@:
571
  @@:
589
  cmp ah,77 ;179 ;Right
572
  cmp ah,77 ;179 ;Right
590
  jne @f
573
  jne @f
591
    push dx
574
    push dx
592
    call draw_cursor_sumb
575
    stdcall draw_cursor_sumb, tedit0
593
    call CurMoveRight
576
    call CurMoveRight
594
    cmp dl,8
577
    cmp dl,8
595
    jne .no_red_3
578
    jne .no_red_3
596
      call OnInitialUpdate
579
      call OnInitialUpdate
597
      call draw_main_win
580
      stdcall draw_main_win, tedit0
598
      pop dx
581
      pop dx
599
      jmp @f
582
      jmp @f
600
    .no_red_3:
583
    .no_red_3:
601
    call draw_main_cursor
584
    stdcall draw_main_cursor, tedit0
602
    pop dx
585
    pop dx
603
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
586
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
604
  @@:
587
  @@:
605
  cmp ah,71 ;180 ;Home
588
  cmp ah,71 ;180 ;Home
606
  jne @f
589
  jne @f
607
    push dx
590
    push dx
608
    call draw_cursor_sumb
591
    stdcall draw_cursor_sumb, tedit0
609
    call CurMoveX_FirstChar
592
    call CurMoveX_FirstChar
610
    cmp dl,8
593
    cmp dl,8
611
    jne .no_red_4
594
    jne .no_red_4
612
      call OnInitialUpdate
595
      call OnInitialUpdate
613
      call draw_main_win
596
      stdcall draw_main_win, tedit0
614
      pop dx
597
      pop dx
615
      jmp @f
598
      jmp @f
616
    .no_red_4:
599
    .no_red_4:
617
    call draw_main_cursor
600
    stdcall draw_main_cursor, tedit0
618
    pop dx
601
    pop dx
619
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
602
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
620
  @@:
603
  @@:
621
  cmp ah,79 ;181 ;End
604
  cmp ah,79 ;181 ;End
622
  jne @f
605
  jne @f
623
    push dx
606
    push dx
624
    call draw_cursor_sumb
607
    stdcall draw_cursor_sumb, tedit0
625
    call CurMoveX_LastChar
608
    call CurMoveX_LastChar
626
    cmp dl,8
609
    cmp dl,8
627
    jne .no_red_5
610
    jne .no_red_5
628
      call OnInitialUpdate
611
      call OnInitialUpdate
629
      call draw_main_win
612
      stdcall draw_main_win, tedit0
630
      pop dx
613
      pop dx
631
      jmp @f
614
      jmp @f
632
    .no_red_5:
615
    .no_red_5:
633
    call draw_main_cursor
616
    stdcall draw_main_cursor, tedit0
634
    pop dx
617
    pop dx
635
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
618
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
636
  @@:
619
  @@:
637
  cmp ah,73 ;184 ;PageUp
620
  cmp ah,73 ;184 ;PageUp
638
  jne @f
621
  jne @f
639
    push dx
622
    push dx
640
    call CurMovePageUp
623
    call CurMovePageUp
641
    cmp dl,0
624
    cmp dl,0
642
    pop dx
625
    pop dx
643
    je @f
626
    je @f
644
    call OnInitialUpdate
627
    call OnInitialUpdate
645
    call draw_main_win
628
    stdcall draw_main_win, tedit0
646
  @@:
629
  @@:
647
  cmp ah,81 ;183 ;PageDown
630
  cmp ah,81 ;183 ;PageDown
648
  jne @f
631
  jne @f
649
    push dx
632
    push dx
650
    call CurMovePageDown
633
    call CurMovePageDown
651
    cmp dl,0
634
    cmp dl,0
652
    pop dx
635
    pop dx
653
    je @f
636
    je @f
654
    call OnInitialUpdate
637
    call OnInitialUpdate
655
    call draw_main_win
638
    stdcall draw_main_win, tedit0
656
    mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
639
    mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
657
  @@:
640
  @@:
658
;-------------------------------------------------
641
;-------------------------------------------------
659
    cmp [keyUpr],0
642
    cmp [keyUpr],0
660
    jne still
643
    jne still
661
  .key_MoveCur:
644
  .key_MoveCur:
662
 
645
 
663
  cmp ah,69 ;[Pause Break]
646
  cmp ah,69 ;[Pause Break]
664
  je still
647
  je still
665
  cmp ah,120 ;[Fn]
648
  cmp ah,120 ;[Fn]
666
  je still
649
  je still
667
  cmp ah,0x80 ;if key up
650
  cmp ah,0x80 ;if key up
668
  ja still
651
  ja still
669
  call KeyConvertToASCII
652
  call KeyConvertToASCII
670
 
653
 
671
  ;mov [dragk],0 ;çàêàí÷èâàåì âûäåëåíèå îò êëàâèàòóðû
654
  ;mov [dragk],0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
672
 
655
 
673
  push ebx
656
  push ebx
674
  xor ebx,ebx
657
  xor ebx,ebx
675
  mov bl,ah
658
  mov bl,ah
676
  add ebx,EvChar ;add char to text
659
  add ebx,EvChar ;add char to text
677
  cmp byte [ebx],1
660
  cmp byte [ebx],1
678
  jne @f
661
  jne @f
679
    push esi edi
662
    push esi edi
680
    call SetUndo
663
    call SetUndo
681
    mov bx,0x0101
664
    mov bx,0x0101
682
    call SelTextDel
665
    call SelTextDel
683
    mov esi,1
666
    mov esi,1
684
    mov byte [key_new],ah
667
    mov byte [key_new],ah
685
    mov edi,dword key_new
668
    mov edi,dword key_new
686
    cmp [curMod],1
669
    cmp [curMod],1
687
    je .no_ins_mod
670
    je .no_ins_mod
688
      call TextDel
671
      call TextDel
689
      xor bl,1
672
      xor bl,1
690
    .no_ins_mod:
673
    .no_ins_mod:
691
    call TextAdd
674
    call TextAdd
692
    call draw_but_toolbar
675
    call draw_but_toolbar
693
    cmp byte [key_new],13
676
    cmp byte [key_new],13
694
    jne .dr_m_win
677
    jne .dr_m_win
695
      call draw_main_win
678
      stdcall draw_main_win, tedit0
696
      jmp .dr_cur_l
679
      jmp .dr_cur_l
697
    .dr_m_win:
680
    .dr_m_win:
698
      call draw_cur_line
681
      stdcall draw_cur_line, tedit0
699
    .dr_cur_l:
682
    .dr_cur_l:
700
    pop edi esi
683
    pop edi esi
701
  @@:
684
  @@:
702
  pop ebx
685
  pop ebx
703
 
686
 
704
  cmp ah,8 ;[<-]
687
  cmp ah,8 ;[<-]
705
  jne @f
688
  jne @f
706
    push ax bx
689
    push ax bx
707
    call SetUndo
690
    call SetUndo
708
 
691
 
709
    mov bx,0x0001
692
    mov bx,0x0001
710
    call SelTextDel
693
    call SelTextDel
711
    cmp al,1
694
    cmp al,1
712
    je .del_one_b
695
    je .del_one_b
713
      call TextDel
696
      call TextDel
714
    .del_one_b:
697
    .del_one_b:
715
    call draw_but_toolbar
698
    call draw_but_toolbar
716
    call draw_main_win
699
    stdcall draw_main_win, tedit0
717
    pop bx ax
700
    pop bx ax
718
  @@:
701
  @@:
719
 
702
 
720
  cmp ah,182 ;Delete
703
  cmp ah,182 ;Delete
721
  jne @f
704
  jne @f
722
    push ax bx
705
    push ax bx
723
    call SetUndo
706
    call SetUndo
724
 
707
 
725
    mov bx,0x0101
708
    mov bx,0x0101
726
    call SelTextDel
709
    call SelTextDel
727
    cmp al,1
710
    cmp al,1
728
    je .del_one_d
711
    je .del_one_d
729
      call TextDel
712
      call TextDel
730
    .del_one_d:
713
    .del_one_d:
731
    call draw_but_toolbar
714
    call draw_but_toolbar
732
    call draw_main_win
715
    stdcall draw_main_win, tedit0
733
    pop bx ax
716
    pop bx ax
734
  @@:
717
  @@:
735
 
718
 
736
  cmp ah,185 ;Ins
719
  cmp ah,185 ;Ins
737
  jne @f
720
  jne @f
738
    call draw_cursor_sumb
721
    stdcall draw_cursor_sumb, tedit0
739
    xor [curMod],1
722
    xor [curMod],1
740
    call draw_main_cursor
723
    stdcall draw_main_cursor, tedit0
741
  @@:
724
  @@:
742
 
725
 
743
  jmp still
726
  jmp still
744
 
727
 
745
button:
728
button:
746
;  cmp [menu_active],1 ;åñëè íàæàëè ìåíþ, òî ñíà÷àëà ðåàêöèÿ íà ìåíþ
729
;  cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
747
;  jne @f ;mouse.menu_bar_1
730
;  jne @f ;mouse.menu_bar_1
748
;    mov [menu_active],0
731
;    mov [menu_active],0
749
;    jmp still
732
;    jmp still
750
;  @@:
733
;  @@:
751
 
734
 
752
  mcall 17 ;ïîëó÷èòü êîä íàæàòîé êíîïêè
735
  mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
753
  cmp ah,3
736
  cmp ah,3
754
  jne @f
737
  jne @f
755
    call but_NewFile
738
    call but_NewFile
756
  @@:
739
  @@:
757
  cmp ah,4
740
  cmp ah,4
758
  jne @f
741
  jne @f
759
    call but_OpenFile
742
    call but_OpenFile
760
  @@:
743
  @@:
761
  cmp ah,5
744
  cmp ah,5
762
  jne @f
745
  jne @f
763
    call but_SaveFile
746
    call but_SaveFile
764
  @@:
747
  @@:
765
  cmp ah,6
748
  cmp ah,6
766
  jz  but_select_word
749
  jz  but_select_word
767
  cmp ah,7
750
  cmp ah,7
768
  jz  but_cut
751
  jz  but_cut
769
  cmp ah,8
752
  cmp ah,8
770
  jne @f
753
  jne @f
771
    call but_Copy
754
    call but_Copy
772
  @@:
755
  @@:
773
  cmp ah,9
756
  cmp ah,9
774
  jz  but_paste
757
  jz  but_paste
775
  cmp ah,10
758
  cmp ah,10
776
  jz  but_find
759
  jne @f
-
 
760
    stdcall but_find, tedit0
-
 
761
  @@:
777
  cmp ah,11
762
  cmp ah,11
778
  jz  but_replace
763
  jz  but_replace
779
  cmp ah,12
764
  cmp ah,12
780
  jz  but_find_key_w
765
  jz  but_find_key_w
781
  cmp ah,13
766
  cmp ah,13
782
  jz  but_sumb_upper
767
  jz  but_sumb_upper
783
  cmp ah,14
768
  cmp ah,14
784
  jz  but_sumb_lover
769
  jz  but_sumb_lover
785
  cmp ah,15
770
  cmp ah,15
786
  jz  but_reverse
771
  jz  but_reverse
787
  cmp ah,16
772
  cmp ah,16
788
  jz  but_undo
773
  jz  but_undo
789
  cmp ah,17
774
  cmp ah,17
790
  jz  but_redo
775
  jz  but_redo
791
  cmp ah,18
776
  cmp ah,18
792
  jz  but_sumb_invis
777
  jz  but_sumb_invis
793
  cmp ah,19
778
  cmp ah,19
794
  jz  but_k_words_show
779
  jz  but_k_words_show
795
  cmp ah,20
780
  cmp ah,20
-
 
781
  jne @f
796
  jz  but_synt_show
782
    stdcall but_synt_show, tedit0
-
 
783
  @@:
797
 
784
 
798
  cmp ah,200
785
  cmp ah,200
799
  jne @f
786
  jne @f
800
    call but_OpenSyntax
787
    call but_OpenSyntax
801
  @@:
788
  @@:
802
  cmp ah,201
789
  cmp ah,201
803
  jne @f
790
  jne @f
804
    call but_FindText
791
    call but_FindText
805
  @@:
792
  @@:
806
 
793
 
807
  cmp ah,1
794
  cmp ah,1
808
  jne still
795
  jne still
809
.exit:
796
.exit:
810
  ;push eax
797
  ;push eax
811
  call CanSave
798
  call CanSave
812
  cmp al,1
799
  cmp al,1
813
  jne @f
800
  jne @f
814
    push thread
801
    push thread
815
    push msgbox_8
802
    push msgbox_8
816
    call [mb_create] ;message: save changes in file?
803
    call [mb_create] ;message: save changes in file?
817
    jmp still
804
    jmp still
818
  @@:
805
  @@:
819
  mov ecx,[tex]
806
  mov ecx,[tex]
820
  call mem_Free
807
  call mem_Free
821
  mov ecx,[bmp_icon]
808
  mov ecx,[bmp_icon]
822
  call mem_Free
809
  call mem_Free
823
  mov ecx,[options_file]
810
  mov ecx,[options_file]
824
  call mem_Free
811
  call mem_Free
825
  push dword tree1
812
  push dword tree1
826
  call dword[tl_data_clear]
813
  call dword[tl_data_clear]
827
  mcall -1 ;âûõîä èç ïðîãðàììû
814
  mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
828
 
815
 
829
 
816
 
830
 
-
 
831
txtErrOpen db '¥ ­ ©¤¥­ ä ©«, ¯à®¢¥àì⥠¯à ¢¨«ì­®áâì ¨¬¥­¨',0
817
 
832
txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®­ª ¬¨',0
818
txtErrIni0 db '¥ ®âªàë«áï ä ©« á ¨ª®­ª ¬¨',0
833
err_ini0 db 0
819
err_ini0 db 0
834
 
820
 
835
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_cmd_lin, mouse_dd, 0
821
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_cmd_lin, mouse_dd, 0
836
edit2 edit_box TE_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
822
edit2 edit_box TE_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
837
 
823
 
838
buf_cmd_lin db 302 dup(0)
824
buf_cmd_lin db 302 dup(0)
839
buf_find db 302 dup(0)
825
buf_find db 302 dup(0)
840
 
826
 
841
if lang eq ru
827
if lang eq ru
842
  err_message_found_lib0 db 'ˆ§¢¨­¨â¥ ­¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0
828
  err_message_found_lib0 db 'ˆ§¢¨­¨â¥ ­¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã box_lib.obj',0
843
  head_f_i0:
829
  head_f_i0:
844
  head_f_l0  db '‘¨á⥬­ ï ®è¨¡ª ',0
830
  head_f_l0  db '‘¨á⥬­ ï ®è¨¡ª ',0
845
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0
831
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ box_lib.obj',0
846
  err_message_found_lib1 db 'ˆ§¢¨­¨â¥ ­¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã msgbox.obj',0
832
  err_message_found_lib1 db 'ˆ§¢¨­¨â¥ ­¥ 㤠«®áì ­ ©â¨ ¡¨¡«¨®â¥ªã msgbox.obj',0
847
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ msgbox.obj',0
833
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ msgbox.obj',0
848
else
834
else
849
  err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0
835
  err_message_found_lib0 db 'Sorry I cannot found library box_lib.obj',0
850
  head_f_i0:
836
  head_f_i0:
851
  head_f_l0  db 'System error',0
837
  head_f_l0  db 'System error',0
852
  err_message_import0 db 'Error on load import library box_lib.obj',0
838
  err_message_import0 db 'Error on load import library box_lib.obj',0
853
  err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0
839
  err_message_found_lib1 db 'Sorry I cannot found library msgbox.obj',0
854
  ;head_f_i1:
840
  ;head_f_i1:
855
  ;head_f_l1 db 'System error',0
841
  ;head_f_l1 db 'System error',0
856
  err_message_import1 db 'Error on load import library msgbox.obj',0
842
  err_message_import1 db 'Error on load import library msgbox.obj',0
857
end if
843
end if
858
 
844
 
859
;library structures
845
;library structures
860
l_libs_start:
846
l_libs_start:
861
  lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0
847
  lib0 l_libs boxlib_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l0, myimport,err_message_import0, head_f_i0
862
  lib1 l_libs msgbox_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0
848
  lib1 l_libs msgbox_name, sys_path, file_name, system_dir1, err_message_found_lib1, head_f_l0, msgbox_lib_import, err_message_import1, head_f_i0
863
load_lib_end:
849
load_lib_end:
864
 
850
 
865
 
851
 
866
i_end:
852
i_end:
867
  align 16
853
  align 16
868
  procinfo process_information
854
  procinfo process_information
869
  thread:
855
  thread:
870
    rb 1024
856
    rb 1024
871
stacktop:
857
stacktop:
872
  sys_path:
858
  sys_path:
873
    rb 4096
859
    rb 4096
874
  file_name:
860
  file_name:
875
    rb 4096
861
    rb 4096
876
  file_name_rez:
862
  file_name_rez:
877
    rb 4096
863
    rb 4096
878
  file_info:
864
  file_info:
879
    rb 40
865
    rb 40
880
mem:
866
mem:
881
>
867
>