Subversion Repositories Kolibri OS

Rev

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

Rev 2632 Rev 2707
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 ; command line
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 ;buffer for copy|paste
19
BUF_SIZE equ 1000 ;buffer for copy|paste
20
maxSyntaxFileSize equ 410000
20
maxSyntaxFileSize equ 410000
21
 
21
 
22
include '../../proc32.inc'
22
include '../../proc32.inc'
23
include '../../macros.inc'
23
include '../../macros.inc'
24
include 'mem.inc'
24
include 'mem.inc'
25
include 'dll.inc'
25
include 'dll.inc'
26
include '../../develop/libraries/box_lib/load_lib.mac'
26
include '../../develop/libraries/box_lib/load_lib.mac'
27
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
27
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
28
include 'lang.inc'
28
include 'lang.inc'
29
 
29
 
30
include 't_data.inc'
30
include 't_data.inc'
31
include 'strlen.inc'
31
include 'strlen.inc'
32
include 't_draw.inc' ;draw main window functions
32
include 't_draw.inc' ;draw main window functions
33
include 't_button.inc' ;text work functions
33
include 't_button.inc' ;text work functions
34
 
34
 
35
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
35
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
36
 
36
 
37
 
37
 
38
;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
38
;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
39
;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
39
;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
40
; - run_file_70 FileInfoBlock
40
; - run_file_70 FileInfoBlock
41
; - image_data dd 0
41
; - image_data dd 0
42
macro load_image_file path,buf,size
42
macro load_image_file path,buf,size
43
{
43
{
44
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
44
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
45
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
45
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
46
		jmp @f
46
		jmp @f
47
			local .path_str
47
			local .path_str
48
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
48
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
49
			db 0
49
			db 0
50
		@@:
50
		@@:
51
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
51
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
52
		copy_path .path_str,[32],file_name,0x0
52
		copy_path .path_str,[32],file_name,0x0
53
	else
53
	else
54
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
54
		copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
55
	end if
55
	end if
56
 
56
 
57
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
57
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
58
	mov [buf],eax
58
	mov [buf],eax
59
 
59
 
60
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
60
	mov eax,70 ;70-ï äã­ªæ¨ï à ¡®â  á ä ©« ¬¨
61
	mov [run_file_70.Function], 0
61
	mov [run_file_70.Function], 0
62
	mov [run_file_70.Position], 0
62
	mov [run_file_70.Position], 0
63
	mov [run_file_70.Flags], 0
63
	mov [run_file_70.Flags], 0
64
	mov [run_file_70.Count], dword size
64
	mov [run_file_70.Count], dword size
65
	m2m [run_file_70.Buffer], [buf]
65
	m2m [run_file_70.Buffer], [buf]
66
	mov byte[run_file_70+20], 0
66
	mov byte[run_file_70+20], 0
67
	mov [run_file_70.FileName], file_name
67
	mov [run_file_70.FileName], file_name
68
	mov ebx,run_file_70
68
	mov ebx,run_file_70
69
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
69
	int 0x40 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
70
	cmp ebx,0xffffffff
70
	cmp ebx,0xffffffff
71
	je @f
71
	je @f
72
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
72
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
73
		stdcall dword[img_decode], dword[buf],ebx,0
73
		stdcall dword[img_decode], dword[buf],ebx,0
74
		mov dword[image_data],eax
74
		mov dword[image_data],eax
75
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
75
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
76
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
76
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
77
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
77
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
78
		stdcall dword[img_destroy], dword[image_data]
78
		stdcall dword[img_destroy], dword[image_data]
79
	@@:
79
	@@:
80
}
80
}
81
 
81
 
82
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
82
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
83
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
83
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
84
 
84
 
85
align 4
85
align 4
86
start:
86
start:
87
  mcall 48,3,sc,sizeof.system_colors
87
  mcall 48,3,sc,sizeof.system_colors
88
 
88
 
89
  mcall 68,11
89
  mcall 68,11
90
  or eax,eax
90
  or eax,eax
91
  jz button.exit
91
  jz button.exit
92
 
92
 
93
  mcall 66,1,1 ;scan code
93
  mcall 66,1,1 ;scan code
94
  ;mcall 26,2,1,conv_tabl
94
  ;mcall 26,2,1,conv_tabl
95
  mcall 40,0x27
95
  mcall 40,0x27
96
 
96
 
97
  mov esi,file_name
97
  mov esi,file_name
98
  call strlen
98
  call strlen
99
  mov ecx,eax
99
  mov ecx,eax
100
  mov edi,openfile_path
100
  mov edi,openfile_path
101
  cld
101
  cld
102
  rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à edit1
102
  rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à edit1
103
 
103
 
104
load_libraries l_libs_start,load_lib_end
104
load_libraries l_libs_start,load_lib_end
105
 
105
 
106
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
106
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
107
	mov	ebp,lib0
107
	mov	ebp,lib0
108
	cmp	dword [ebp+ll_struc_size-4],0
108
	cmp	dword [ebp+ll_struc_size-4],0
109
	jz	@f
109
	jz	@f
110
	mcall -1 ;exit not correct
110
	mcall -1 ;exit not correct
111
@@:
111
@@:
112
	mov	ebp,lib1 ;
112
	mov	ebp,lib1 ;
113
	cmp	dword [ebp+ll_struc_size-4],0
113
	cmp	dword [ebp+ll_struc_size-4],0
114
	jz	@f
114
	jz	@f
115
	mcall -1 ;exit not correct
115
	mcall -1 ;exit not correct
116
@@:
116
@@:
117
 
117
 
118
	cmp dword[version_text_edit],3
118
	cmp dword[version_text_edit],3
119
	jge @f
119
	jge @f
120
		stdcall [mb_create],msgbox_10,thread
120
		stdcall [mb_create],msgbox_10,thread
121
		mcall -1
121
		mcall -1
122
	@@:
122
	@@:
123
 
123
 
124
;---------------------------------------------------------------------
124
;---------------------------------------------------------------------
125
	stdcall [ted_init], tedit0
125
	stdcall [ted_init], tedit0
126
	stdcall dword[tl_data_init], tree1
126
	stdcall dword[tl_data_init], tree1
127
 
127
 
128
; OpenDialog initialisation
128
; OpenDialog initialisation
129
	stdcall [OpenDialog_Init],OpenDialog_data
129
	stdcall [OpenDialog_Init],OpenDialog_data
130
 
130
 
131
; init toolbar file
131
; init toolbar file
132
	load_image_file 'te_icon.png', bmp_icon,1200*18
132
	load_image_file 'te_icon.png', bmp_icon,1200*18
133
;---------------------------------------------------------------------
133
;---------------------------------------------------------------------
134
; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
134
; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
135
	load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
135
	load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
136
	mov eax,dword[icon_tl_sys]
136
	mov eax,dword[icon_tl_sys]
137
	mov dword[tree1.data_img_sys],eax
137
	mov dword[tree1.data_img_sys],eax
138
;---------------------------------------------------------------------
138
;---------------------------------------------------------------------
139
; ç¨â ¥¬ ä ©« á ¨ª®­ª ¬¨ 㧫®¢
139
; ç¨â ¥¬ ä ©« á ¨ª®­ª ¬¨ 㧫®¢
140
	load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
140
	load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
141
	mov eax,dword[icon_tl_sys]
141
	mov eax,dword[icon_tl_sys]
142
	mov dword[tree1.data_img],eax
142
	mov dword[tree1.data_img],eax
143
;------------------------------------------------------------------------------
143
;------------------------------------------------------------------------------
144
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
144
  copy_path fn_syntax_dir,sys_path,file_name,0x0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
145
  mov eax,70
145
  mov eax,70
146
  mov ebx,tree_file_struct
146
  mov ebx,tree_file_struct
147
  int 0x40
147
  int 0x40
148
 
148
 
149
cmp ebx,-1
149
cmp ebx,-1
150
je .end_dir_init
150
je .end_dir_init
151
 
151
 
152
  mov eax,dir_mem
152
  mov eax,dir_mem
153
  add eax,32+4+1+3+4*6+8
153
  add eax,32+4+1+3+4*6+8
154
mov ecx,ebx
154
mov ecx,ebx
155
@@:
155
@@:
156
  cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
156
  cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
157
  je .filter
157
  je .filter
158
    ;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
158
    ;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
159
    stdcall dword[tl_node_add], eax,0x10000, tree1
159
    stdcall dword[tl_node_add], eax,0x10000, tree1
160
 
160
 
161
    stdcall dword[tl_cur_next], tree1
161
    stdcall dword[tl_cur_next], tree1
162
  .filter:
162
  .filter:
163
  add eax,304
163
  add eax,304
164
  loop @b
164
  loop @b
165
  stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
165
  stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
166
.end_dir_init:
166
.end_dir_init:
167
 
167
 
168
;--- load color option file ---
168
;--- load color option file ---
169
	mov ebx,dword[fn_col_option]
169
	mov ebx,dword[fn_col_option]
170
	copy_path ebx,fn_syntax_dir,file_name_rez,0x0
170
	copy_path ebx,fn_syntax_dir,file_name_rez,0x0
171
	copy_path file_name_rez,sys_path,file_name,0x0
171
	copy_path file_name_rez,sys_path,file_name,0x0
-
 
172
	mov edi, tedit0
-
 
173
	mov ebx,run_file_70
-
 
174
	mov dword[ebx], 0
-
 
175
	mov dword[ebx+4], 0
-
 
176
	mov dword[ebx+8], 0
-
 
177
	mov ecx, ted_syntax_file_size
-
 
178
	mov dword[ebx+12], ecx
-
 
179
	m2m dword[ebx+16], ted_syntax_file
-
 
180
	mov  byte[ebx+20], 0
-
 
181
	m2m dword[ebx+21], file_name
-
 
182
	mcall 70
-
 
183
	cmp eax,0
-
 
184
	jne .end_0
-
 
185
		call ted_on_init_synt_err
-
 
186
		jmp @f
-
 
187
	.end_0:
172
	stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name
188
	stdcall [ted_init_syntax_file], edi
173
 
189
 
174
;--- get cmd line ---
190
;--- get cmd line ---
175
  cmp byte[openfile_path+3],0 ;openfile_path
191
  cmp byte[openfile_path+3],0 ;openfile_path
176
  je @f ;if file names exist
192
  je @f ;if file names exist
177
    mov esi,openfile_path
193
    mov esi,openfile_path
178
    call strlen ;eax=strlen
194
    call strlen ;eax=strlen
179
    mov [edit1.size],eax
195
    mov [edit1.size],eax
180
    call but_no_msg_OpenFile
196
    call but_no_msg_OpenFile
181
  @@:
197
  @@:
182
 
198
 
183
align 4
199
align 4
184
red_win:
200
red_win:
185
  call draw_window
201
  call draw_window
186
 
202
 
187
align 4
203
align 4
188
still:
204
still:
189
	mcall 10
205
	mcall 10
190
 
206
 
191
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
207
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
192
	jz red_win
208
	jz red_win
193
	cmp al,2
209
	cmp al,2
194
	jz key
210
	jz key
195
	cmp al,3
211
	cmp al,3
196
	jz button
212
	jz button
197
	cmp al,6 ;¬ëèì
213
	cmp al,6 ;¬ëèì
198
	jne @f
214
	jne @f
199
		mcall 9,procinfo,-1
215
		mcall 9,procinfo,-1
200
		cmp ax,word[procinfo+4]
216
		cmp ax,word[procinfo+4]
201
		jne @f ;®ª­® ­¥  ªâ¨¢­®
217
		jne @f ;®ª­® ­¥  ªâ¨¢­®
202
		jmp mouse
218
		jmp mouse
203
	@@:
219
	@@:
204
	jmp still
220
	jmp still
205
 
221
 
206
align 4
222
align 4
207
draw_window:
223
draw_window:
208
	mcall 12,1
224
	mcall 12,1
209
 
225
 
210
	mov edx,[sc.work]
226
	mov edx,[sc.work]
211
	or  edx,0x73000000
227
	or  edx,0x73000000
212
	mov edi,hed
228
	mov edi,hed
213
	mcall 0,(10 shl 16)+485,(10 shl 16)+320
229
	mcall 0,(10 shl 16)+485,(10 shl 16)+320
214
 
230
 
215
	mcall 9,procinfo,-1
231
	mcall 9,procinfo,-1
216
	mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
232
	mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
217
	call EvSize
233
	call EvSize
218
 
234
 
219
	mov eax,13 ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
235
	mov eax,13 ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
220
	xor ebx,ebx
236
	xor ebx,ebx
221
	mov ecx,ted_wnd_t
237
	mov ecx,ted_wnd_t
222
	mov bx,word[procinfo.client_box.width]
238
	mov bx,word[procinfo.client_box.width]
223
	inc bx
239
	inc bx
224
	int 0x40
240
	int 0x40
225
 
241
 
226
	mov eax,4
242
	mov eax,4
227
	mov ebx,185*65536+9
243
	mov ebx,185*65536+9
228
	mov ecx,[sc.work_text]
244
	mov ecx,[sc.work_text]
229
	or  ecx,0x80000000
245
	or  ecx,0x80000000
230
	mov edx,txtFile
246
	mov edx,txtFile
231
	int 0x40
247
	int 0x40
232
 
248
 
233
  stdcall [edit_box_draw], dword edit1
249
  stdcall [edit_box_draw], dword edit1
234
  stdcall [menu_bar_draw], dword menu_data_1
250
  stdcall [menu_bar_draw], dword menu_data_1
235
 
251
 
236
  call draw_but_toolbar
252
  call draw_but_toolbar
237
 
253
 
238
  stdcall [ted_draw], tedit0
254
  stdcall [ted_draw], tedit0
239
 
255
 
240
  mcall 12,2
256
  mcall 12,2
241
  ret
257
  ret
242
 
258
 
243
align 4
259
align 4
244
mouse:
260
mouse:
245
	stdcall [edit_box_mouse], dword edit1
261
	stdcall [edit_box_mouse], dword edit1
246
 
262
 
247
	test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
263
	test word [edit1.flags],10b ;ed_focus ;¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
248
	jne still
264
	jne still
249
 
265
 
250
	stdcall [ted_mouse], tedit0
266
	stdcall [ted_mouse], tedit0
251
 
267
 
252
	cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
268
	cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
253
	jne @f
269
	jne @f
254
		stdcall [edit_box_mouse], dword edit2
270
		stdcall [edit_box_mouse], dword edit2
255
	@@:
271
	@@:
256
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
272
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
257
	jne .menu_bar_1 ;@f
273
	jne .menu_bar_1 ;@f
258
	stdcall [tl_mouse], tree1
274
	stdcall [tl_mouse], tree1
259
;-----------------------------------------------
275
;-----------------------------------------------
260
.menu_bar_1:
276
.menu_bar_1:
261
	mov [menu_data_1.get_mouse_flag],1
277
	mov [menu_data_1.get_mouse_flag],1
262
; mouse event for Menu 1
278
; mouse event for Menu 1
263
	stdcall [menu_bar_mouse],dword menu_data_1
279
	stdcall [menu_bar_mouse],dword menu_data_1
264
	cmp dword[menu_data_1.click],1
280
	cmp dword[menu_data_1.click],1
265
	jne .mnu_1
281
	jne .mnu_1
266
	cmp dword[menu_data_1.cursor_out],4
282
	cmp dword[menu_data_1.cursor_out],4
267
	je button.exit	
283
	je button.exit	
268
	cmp dword[menu_data_1.cursor_out],3
284
	cmp dword[menu_data_1.cursor_out],3
269
	jne @f
285
	jne @f
270
		stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
286
		stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
271
	@@:
287
	@@:
272
	cmp dword[menu_data_1.cursor_out],2
288
	cmp dword[menu_data_1.cursor_out],2
273
	jne @f
289
	jne @f
274
		call ted_but_open_file
290
		call ted_but_open_file
275
	@@:
291
	@@:
276
	cmp dword[menu_data_1.cursor_out],1
292
	cmp dword[menu_data_1.cursor_out],1
277
	jne @f
293
	jne @f
278
		call ted_but_new_file
294
		call ted_but_new_file
279
	@@:
295
	@@:
280
.mnu_1:
296
.mnu_1:
281
	jmp still
297
	jmp still
282
;---------------------------------------------------------------------
298
;---------------------------------------------------------------------
283
 
299
 
284
;output:
300
;output:
285
; ah = symbol
301
; ah = symbol
286
align 4
302
align 4
287
proc KeyConvertToASCII, table:dword
303
proc KeyConvertToASCII, table:dword
288
  push ebx
304
  push ebx
289
  mov ebx,dword[table] ;convert scan to ascii
305
  mov ebx,dword[table] ;convert scan to ascii
290
  ror ax,8
306
  ror ax,8
291
  xor ah,ah
307
  xor ah,ah
292
  add bx,ax
308
  add bx,ax
293
  mov ah,byte[ebx]
309
  mov ah,byte[ebx]
294
  pop ebx
310
  pop ebx
295
  ret
311
  ret
296
endp
312
endp
297
 
313
 
298
align 4
314
align 4
299
key:
315
key:
300
  mcall 66,3 ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
316
  mcall 66,3 ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
301
  xor esi,esi
317
  xor esi,esi
302
  mov ecx,1
318
  mov ecx,1
303
  test al,0x03 ;[Shift]
319
  test al,0x03 ;[Shift]
304
  jz @f
320
  jz @f
305
    mov cl,2
321
    mov cl,2
306
    or esi,KM_SHIFT
322
    or esi,KM_SHIFT
307
  @@:
323
  @@:
308
  test al,0x0c ;[Ctrl]
324
  test al,0x0c ;[Ctrl]
309
  jz @f
325
  jz @f
310
    or esi,KM_CTRL
326
    or esi,KM_CTRL
311
  @@:
327
  @@:
312
  test al,0x30 ;[Alt]
328
  test al,0x30 ;[Alt]
313
  jz @f
329
  jz @f
314
    mov cl,3
330
    mov cl,3
315
    or esi,KM_ALT
331
    or esi,KM_ALT
316
  @@:
332
  @@:
317
  test al,0x80 ;[NumLock]
333
  test al,0x80 ;[NumLock]
318
  jz @f
334
  jz @f
319
    or esi,KM_NUMLOCK
335
    or esi,KM_NUMLOCK
320
  @@:
336
  @@:
321
 
337
 
322
  mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
338
  mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
323
  mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
339
  mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
324
  stdcall [tl_key], tree1
340
  stdcall [tl_key], tree1
325
 
341
 
326
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
342
  test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
327
  je @f
343
  je @f
328
    cmp ah,0x80 ;if key up
344
    cmp ah,0x80 ;if key up
329
    ja still
345
    ja still
330
    cmp ah,42 ;[Shift] (left)
346
    cmp ah,42 ;[Shift] (left)
331
    je still
347
    je still
332
    cmp ah,54 ;[Shift] (right)
348
    cmp ah,54 ;[Shift] (right)
333
    je still
349
    je still
334
    cmp ah,56 ;[Alt]
350
    cmp ah,56 ;[Alt]
335
    je still
351
    je still
336
    cmp ah,29 ;[Ctrl]
352
    cmp ah,29 ;[Ctrl]
337
    je still
353
    je still
338
    cmp ah,69 ;[Pause Break]
354
    cmp ah,69 ;[Pause Break]
339
    je still
355
    je still
340
 
356
 
341
    stdcall KeyConvertToASCII, dword conv_tabl
357
    stdcall KeyConvertToASCII, dword conv_tabl
342
    stdcall [edit_box_key], dword edit1
358
    stdcall [edit_box_key], dword edit1
343
    jmp still
359
    jmp still
344
  @@:
360
  @@:
345
 
361
 
346
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
362
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
347
  je @f
363
  je @f
348
    cmp ah,0x80 ;if key up
364
    cmp ah,0x80 ;if key up
349
    ja still
365
    ja still
350
    cmp ah,42 ;[Shift] (left)
366
    cmp ah,42 ;[Shift] (left)
351
    je still
367
    je still
352
    cmp ah,54 ;[Shift] (right)
368
    cmp ah,54 ;[Shift] (right)
353
    je still
369
    je still
354
    cmp ah,56 ;[Alt]
370
    cmp ah,56 ;[Alt]
355
    je still
371
    je still
356
    cmp ah,29 ;[Ctrl]
372
    cmp ah,29 ;[Ctrl]
357
    je still
373
    je still
358
    cmp ah,69 ;[Pause Break]
374
    cmp ah,69 ;[Pause Break]
359
    je still
375
    je still
360
 
376
 
361
    stdcall KeyConvertToASCII, dword conv_tabl
377
    stdcall KeyConvertToASCII, dword conv_tabl
362
    stdcall [edit_box_key], dword edit2
378
    stdcall [edit_box_key], dword edit2
363
    jmp still
379
    jmp still
364
  @@:
380
  @@:
365
 
381
 
366
  stdcall [ted_key], tedit0, conv_tabl,esi
382
  stdcall [ted_key], tedit0, conv_tabl,esi
367
  jmp still
383
  jmp still
368
 
384
 
369
align 4
385
align 4
370
button:
386
button:
371
;  cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
387
;  cmp [menu_active],1 ;¥á«¨ ­ ¦ «¨ ¬¥­î, â® á­ ç «  ॠªæ¨ï ­  ¬¥­î
372
;  jne @f ;mouse.menu_bar_1
388
;  jne @f ;mouse.menu_bar_1
373
;    mov [menu_active],0
389
;    mov [menu_active],0
374
;    jmp still
390
;    jmp still
375
;  @@:
391
;  @@:
376
 
392
 
377
  mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
393
  mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
378
  cmp ah,3
394
  cmp ah,3
379
  jne @f
395
  jne @f
380
    call ted_but_new_file
396
    call ted_but_new_file
381
  @@:
397
  @@:
382
  cmp ah,4
398
  cmp ah,4
383
  jne @f
399
  jne @f
384
    call ted_but_open_file
400
    call ted_but_open_file
385
  @@:
401
  @@:
386
  cmp ah,5
402
  cmp ah,5
387
  jne @f
403
  jne @f
388
    stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
404
    stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]
389
  @@:
405
  @@:
390
  cmp ah,6
406
  cmp ah,6
391
  jne @f
407
  jne @f
392
    stdcall [ted_but_select_word], tedit0
408
    stdcall [ted_but_select_word], tedit0
393
  @@:
409
  @@:
394
  cmp ah,7
410
  cmp ah,7
395
  jne @f
411
  jne @f
396
    stdcall [ted_but_cut], tedit0
412
    stdcall [ted_but_cut], tedit0
397
  @@:
413
  @@:
398
  cmp ah,8
414
  cmp ah,8
399
  jne @f
415
  jne @f
400
    stdcall [ted_but_copy], tedit0
416
    stdcall [ted_but_copy], tedit0
401
  @@:
417
  @@:
402
  cmp ah,9
418
  cmp ah,9
403
  jne @f
419
  jne @f
404
    stdcall [ted_but_paste], tedit0
420
    stdcall [ted_but_paste], tedit0
405
  @@:
421
  @@:
406
  cmp ah,10
422
  cmp ah,10
407
  jne @f
423
  jne @f
408
    call ted_but_find
424
    call ted_but_find
409
  @@:
425
  @@:
410
  cmp ah,11
426
  cmp ah,11
411
  jne @f
427
  jne @f
412
    call but_replace
428
    call but_replace
413
  @@:
429
  @@:
414
  cmp ah,12
430
  cmp ah,12
415
  jne @f
431
  jne @f
416
    call but_find_key_w
432
    call but_find_key_w
417
  @@:
433
  @@:
418
  cmp ah,13
434
  cmp ah,13
419
  jne @f
435
  jne @f
420
    stdcall [ted_but_sumb_upper], tedit0
436
    stdcall [ted_but_sumb_upper], tedit0
421
  @@:
437
  @@:
422
  cmp ah,14
438
  cmp ah,14
423
  jne @f
439
  jne @f
424
    stdcall [ted_but_sumb_lover], tedit0
440
    stdcall [ted_but_sumb_lover], tedit0
425
  @@:
441
  @@:
426
  cmp ah,15
442
  cmp ah,15
427
  jne @f
443
  jne @f
428
    stdcall [ted_but_reverse], tedit0
444
    stdcall [ted_but_reverse], tedit0
429
  @@:
445
  @@:
430
  cmp ah,16
446
  cmp ah,16
431
  jne @f
447
  jne @f
432
    stdcall [ted_but_undo], tedit0
448
    stdcall [ted_but_undo], tedit0
433
  @@:
449
  @@:
434
  cmp ah,17
450
  cmp ah,17
435
  jne @f
451
  jne @f
436
    stdcall [ted_but_redo], tedit0
452
    stdcall [ted_but_redo], tedit0
437
  @@:
453
  @@:
438
  cmp ah,18
454
  cmp ah,18
439
  jne @f
455
  jne @f
440
    stdcall but_sumb_invis, tedit0
456
    stdcall but_sumb_invis, tedit0
441
  @@:
457
  @@:
442
  cmp ah,19
458
  cmp ah,19
443
  jne @f
459
  jne @f
444
    stdcall but_k_words_show, tedit0
460
    stdcall but_k_words_show, tedit0
445
  @@:
461
  @@:
446
  cmp ah,20
462
  cmp ah,20
447
  jne @f
463
  jne @f
448
    stdcall but_synt_show, tedit0
464
    stdcall but_synt_show, tedit0
449
  @@:
465
  @@:
450
 
466
 
451
  cmp ah,200
467
  cmp ah,200
452
  jne @f
468
  jne @f
453
    stdcall ted_but_open_syntax, tedit0
469
    stdcall ted_but_open_syntax, tedit0
454
  @@:
470
  @@:
455
  cmp ah,201
471
  cmp ah,201
456
  jne @f
472
  jne @f
457
    stdcall [ted_but_find_next], tedit0
473
    stdcall [ted_but_find_next], tedit0
458
  @@:
474
  @@:
459
 
475
 
460
  cmp ah,1
476
  cmp ah,1
461
  jne still
477
  jne still
462
.exit:
478
.exit:
463
  stdcall [ted_can_save], tedit0
479
  stdcall [ted_can_save], tedit0
464
  cmp al,1
480
  cmp al,1
465
  jne @f
481
  jne @f
466
    stdcall [mb_create],msgbox_8,thread ;message: save changes in file?
482
    stdcall [mb_create],msgbox_8,thread ;message: save changes in file?
467
    jmp still
483
    jmp still
468
  @@:
484
  @@:
469
  stdcall mem.Free,[bmp_icon]
485
  stdcall mem.Free,[bmp_icon]
470
 
486
 
471
  stdcall [ted_delete], tedit0
487
  stdcall [ted_delete], tedit0
472
  stdcall dword[tl_data_clear], tree1
488
  stdcall dword[tl_data_clear], tree1
473
  mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
489
  mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
474
 
490
 
475
 
491
 
476
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
492
edit1 edit_box 250, 220, 5, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 4090, openfile_path, mouse_dd, 0
477
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
493
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
478
 
494
 
479
buf_find db 302 dup(0)
495
buf_find db 302 dup(0)
480
 
496
 
481
if lang eq ru
497
if lang eq ru
482
  head_f_i:
498
  head_f_i:
483
  head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
499
  head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
484
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
500
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
485
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
501
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
486
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
502
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
487
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
503
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
488
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
504
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
489
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
505
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
490
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
506
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
491
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
507
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
492
else
508
else
493
  head_f_i:
509
  head_f_i:
494
  head_f_l db 'System error',0
510
  head_f_l db 'System error',0
495
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
511
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
496
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
512
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
497
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
513
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
498
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
514
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
499
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
515
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
500
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
516
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
501
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
517
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
502
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
518
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
503
end if
519
end if
504
 
520
 
505
;library structures
521
;library structures
506
l_libs_start:
522
l_libs_start:
507
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
523
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
508
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
524
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
509
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
525
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
510
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
526
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
511
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
527
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
512
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
528
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
513
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
529
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
514
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
530
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
515
load_lib_end:
531
load_lib_end:
516
 
532
 
517
 
533
 
518
i_end:
534
i_end:
519
	rb 1024
535
	rb 1024
520
	align 16
536
	align 16
521
	procinfo process_information
537
	procinfo process_information
522
		rb 1024
538
		rb 1024
523
	thread:
539
	thread:
524
	rb 1024
540
	rb 1024
525
stacktop:
541
stacktop:
526
	sys_path:
542
	sys_path:
527
		rb 4096
543
		rb 4096
528
	file_name:
544
	file_name:
529
		rb 4096
545
		rb 4096
530
	file_name_rez:
546
	file_name_rez:
531
		rb 4096
547
		rb 4096
532
	plugin_path:
548
	plugin_path:
533
		rb 4096
549
		rb 4096
534
	openfile_path:
550
	openfile_path:
535
		rb 4096
551
		rb 4096
536
	filename_area:
552
	filename_area:
537
		rb 256
553
		rb 256
538
	file_info:
554
	file_info:
539
		rb 40
555
		rb 40
540
mem:
556
mem: