Subversion Repositories Kolibri OS

Rev

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

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