Subversion Repositories Kolibri OS

Rev

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

Rev 5939 Rev 6086
1
;Ž£à®¬­ ï ¡« £®¤ à­®áâì ¢á¥¬, ªâ® ¯®¬®£ «: ª®¤®¬/ᮢ¥â®¬/¤¨§ ©­®¬ ...
1
;Ž£à®¬­ ï ¡« £®¤ à­®áâì ¢á¥¬, ªâ® ¯®¬®£ «: ª®¤®¬/ᮢ¥â®¬/¤¨§ ©­®¬ ...
2
 
2
 
3
use32
3
use32
4
  org 0x0
4
  org 0x0
5
  db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
5
  db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
6
  dd 0x01
-
 
7
  dd start
-
 
8
  dd i_end ; à §¬¥à ¯à¨«®¦¥­¨ï
-
 
9
  dd mem
-
 
10
  dd stacktop
6
  dd 1, start, i_end, mem, stacktop
11
  dd file_name ; command line
7
  dd file_name ; command line
12
  dd sys_path
8
  dd sys_path
13
 
9
 
14
MAX_COLOR_WORD_LEN equ 40
10
MAX_COLOR_WORD_LEN equ 40
15
maxChars equ 100002 ;(...+2)
11
maxChars equ 100002 ;(...+2)
16
BUF_SIZE equ 4096 ;buffer for copy|paste
12
BUF_SIZE equ 4096 ;buffer for copy|paste
17
maxSyntaxFileSize equ 410000
13
maxSyntaxFileSize equ 410000
18
TOOLBAR_ICONS_SIZE equ 1200*20
14
TOOLBAR_ICONS_SIZE equ 1200*20
19
 
15
 
20
include '../../proc32.inc'
16
include '../../proc32.inc'
21
;include '../../config.inc'
17
;include '../../config.inc'
22
include '../../macros.inc'
18
include '../../macros.inc'
23
include '../../dll.inc'
19
include '../../dll.inc'
-
 
20
include '../../KOSfuncs.inc'
24
include '../../develop/libraries/box_lib/load_lib.mac'
21
include '../../develop/libraries/box_lib/load_lib.mac'
25
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
22
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
26
include '../../system/desktop/trunk/kglobals.inc'
23
include '../../system/desktop/trunk/kglobals.inc'
27
include '../../system/desktop/trunk/unpacker.inc'
24
include '../../system/desktop/trunk/unpacker.inc'
28
include 'lang.inc'
25
include 'lang.inc'
29
 
26
 
30
include 't_data.inc'
27
include 't_data.inc'
31
include 't_menu.inc'
28
include 't_menu.inc'
32
include 'strlen.inc'
29
include 'strlen.inc'
33
include 't_draw.inc' ;draw main window functions
30
include 't_draw.inc' ;draw main window functions
34
include 't_button.inc' ;text work functions
31
include 't_button.inc' ;text work functions
35
include 'wnd_k_words.inc'
32
include 'wnd_k_words.inc'
36
 
33
 
37
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
34
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
38
 
35
 
39
 
36
 
40
;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
37
;Œ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨© á ¨á¯®«ì§®¢ ­¨¥¬ ¡¨¡«¨®â¥ª¨ libimg.obj
41
;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
38
;¤«ï ¨á¯®«ì§®¢ ­¨ï ¬ ªà®á  ­ã¦­ë ¯¥à¥¬¥­­ë¥:
42
; - run_file_70 FileInfoBlock
39
; - run_file_70 FileInfoBlock
43
; - image_data dd 0
40
; - image_data dd 0
44
macro load_image_file path,buf,size
41
macro load_image_file path,buf,size
45
{
42
{
46
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
43
	;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
47
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
44
	if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
48
		jmp @f
45
		jmp @f
49
			local .path_str
46
			local .path_str
50
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
47
			.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
51
			db 0
48
			db 0
52
		@@:
49
		@@:
53
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
50
		;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
54
		copy_path .path_str,[32],file_name,0
51
		copy_path .path_str,[32],file_name,0
55
	else
52
	else
56
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
53
		copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
57
	end if
54
	end if
58
 
55
 
59
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
56
	stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
60
	mov [buf],eax
57
	mov [buf],eax
61
 
58
 
62
	mov [run_file_70.Function], 0
59
	mov [run_file_70.Function], SSF_READ_FILE
63
	mov [run_file_70.Position], 0
60
	mov [run_file_70.Position], 0
64
	mov [run_file_70.Flags], 0
61
	mov [run_file_70.Flags], 0
65
	mov [run_file_70.Count], dword size
62
	mov [run_file_70.Count], dword size
66
	m2m [run_file_70.Buffer], eax
63
	m2m [run_file_70.Buffer], eax
67
	mov byte[run_file_70+20], 0
64
	mov byte[run_file_70+20], 0
68
	mov [run_file_70.FileName], file_name
65
	mov [run_file_70.FileName], file_name
69
	mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
66
	mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
70
	cmp ebx,0xffffffff
67
	cmp ebx,0xffffffff
71
	je @f
68
	je @f
72
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
69
		;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
73
		stdcall dword[img_decode], dword[buf],ebx,0
70
		stdcall dword[img_decode], dword[buf],ebx,0
74
		mov dword[image_data],eax
71
		mov dword[image_data],eax
75
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
72
		;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
76
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
73
		stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
77
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
74
		;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
78
		stdcall dword[img_destroy], dword[image_data]
75
		stdcall dword[img_destroy], dword[image_data]
79
	@@:
76
	@@:
80
}
77
}
81
 
78
 
82
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
79
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
83
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
80
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
84
 
81
 
85
align 4
82
align 4
86
start:
83
start:
87
	mcall 48,3,sc,sizeof.sys_colors_new
84
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.sys_colors_new
88
 
85
 
89
	mcall 68,11
86
	mcall SF_SYS_MISC,SSF_HEAP_INIT
90
	or eax,eax
87
	or eax,eax
91
	jz button.exit
88
	jz button.exit
92
 
89
 
93
	mcall 66,1,1 ;scan code
90
	mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1 ;scan code
94
	mcall 40,0xC0000027
91
	mcall SF_SET_EVENTS_MASK,0xC0000027
95
 
92
 
96
	mov esi,file_name
93
	mov esi,file_name
97
	call strlen
94
	call strlen
98
	mov ecx,eax
95
	mov ecx,eax
99
	mov edi,openfile_path
96
	mov edi,openfile_path
100
	cld
97
	cld
101
	rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à openfile_path
98
	rep movsb ;ª®¯¨à㥬 ¨¬ï ä ©«  ¢ ¡ãä¥à openfile_path
102
 
99
 
103
load_libraries l_libs_start,load_lib_end
100
load_libraries l_libs_start,load_lib_end
104
 
101
 
105
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
102
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨«¨áì ¡¨¡«¨®â¥ª¨
106
mov	ebp,lib0
103
mov	ebp,lib0
107
.test_lib_open:
104
.test_lib_open:
108
	cmp	dword [ebp+ll_struc_size-4],0
105
	cmp	dword [ebp+ll_struc_size-4],0
109
	jz	@f
106
	jz	@f
110
	mcall -1 ;exit not correct
107
	mcall SF_TERMINATE_PROCESS ;exit not correct
111
@@:
108
@@:
112
	add ebp,ll_struc_size
109
	add ebp,ll_struc_size
113
	cmp ebp,load_lib_end
110
	cmp ebp,load_lib_end
114
	jl .test_lib_open
111
	jl .test_lib_open
115
 
112
 
116
;---------------------------------------------------------------------
113
;---------------------------------------------------------------------
117
	stdcall [ted_init], tedit0
114
	stdcall [ted_init], tedit0
118
	stdcall dword[tl_data_init], tree1
115
	stdcall dword[tl_data_init], tree1
119
 
116
 
120
; OpenDialog initialisation
117
; OpenDialog initialisation
121
	stdcall [OpenDialog_Init],OpenDialog_data
118
	stdcall [OpenDialog_Init],OpenDialog_data
122
 
119
 
123
; kmenu initialisation	
120
; kmenu initialisation	
124
	stdcall [kmenu_init], sc
121
	stdcall [kmenu_init], sc
125
	
122
	
126
	stdcall [ksubmenu_new]
123
	stdcall [ksubmenu_new]
127
	mov [main_menu], eax
124
	mov [main_menu], eax
128
	
125
	
129
	stdcall [ksubmenu_new]
126
	stdcall [ksubmenu_new]
130
	mov [main_menu_file], eax
127
	mov [main_menu_file], eax
131
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 3
128
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 3
132
	stdcall [ksubmenu_add], [main_menu_file], eax
129
	stdcall [ksubmenu_add], [main_menu_file], eax
133
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 4
130
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 4
134
	stdcall [ksubmenu_add], [main_menu_file], eax
131
	stdcall [ksubmenu_add], [main_menu_file], eax
135
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 5
132
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 5
136
	stdcall [ksubmenu_add], [main_menu_file], eax
133
	stdcall [ksubmenu_add], [main_menu_file], eax
137
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
134
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
138
	stdcall [ksubmenu_add], [main_menu_file], eax
135
	stdcall [ksubmenu_add], [main_menu_file], eax
139
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 199
136
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 199
140
	stdcall [ksubmenu_add], [main_menu_file], eax	
137
	stdcall [ksubmenu_add], [main_menu_file], eax	
141
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
138
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
142
	stdcall [ksubmenu_add], [main_menu], eax
139
	stdcall [ksubmenu_add], [main_menu], eax
143
 
140
 
144
	stdcall [ksubmenu_new]
141
	stdcall [ksubmenu_new]
145
	mov [main_menu_changes], eax
142
	mov [main_menu_changes], eax
146
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Undo, 16
143
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Undo, 16
147
	stdcall [ksubmenu_add], [main_menu_changes], eax
144
	stdcall [ksubmenu_add], [main_menu_changes], eax
148
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Redo, 17
145
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Changes_Redo, 17
149
	stdcall [ksubmenu_add], [main_menu_changes], eax
146
	stdcall [ksubmenu_add], [main_menu_changes], eax
150
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Changes, [main_menu_changes]
147
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Changes, [main_menu_changes]
151
	stdcall [ksubmenu_add], [main_menu], eax
148
	stdcall [ksubmenu_add], [main_menu], eax
152
	
149
	
153
	stdcall [ksubmenu_new]
150
	stdcall [ksubmenu_new]
154
	mov [main_menu_buf], eax
151
	mov [main_menu_buf], eax
155
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Cut, 7
152
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Cut, 7
156
	stdcall [ksubmenu_add], [main_menu_buf], eax
153
	stdcall [ksubmenu_add], [main_menu_buf], eax
157
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Copy, 8
154
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Copy, 8
158
	stdcall [ksubmenu_add], [main_menu_buf], eax
155
	stdcall [ksubmenu_add], [main_menu_buf], eax
159
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Paste, 9
156
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Buf_Paste, 9
160
	stdcall [ksubmenu_add], [main_menu_buf], eax	
157
	stdcall [ksubmenu_add], [main_menu_buf], eax	
161
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Buf, [main_menu_buf]
158
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Buf, [main_menu_buf]
162
	stdcall [ksubmenu_add], [main_menu], eax
159
	stdcall [ksubmenu_add], [main_menu], eax
163
 
160
 
164
	stdcall [ksubmenu_new]
161
	stdcall [ksubmenu_new]
165
	mov [main_menu_search], eax
162
	mov [main_menu_search], eax
166
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Text, 10
163
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Text, 10
167
	stdcall [ksubmenu_add], [main_menu_search], eax
164
	stdcall [ksubmenu_add], [main_menu_search], eax
168
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Keywords, 12
165
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Search_Keywords, 12
169
	stdcall [ksubmenu_add], [main_menu_search], eax
166
	stdcall [ksubmenu_add], [main_menu_search], eax
170
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Search, [main_menu_search]
167
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Search, [main_menu_search]
171
	stdcall [ksubmenu_add], [main_menu], eax
168
	stdcall [ksubmenu_add], [main_menu], eax
172
 
169
 
173
	stdcall [ksubmenu_new]
170
	stdcall [ksubmenu_new]
174
	mov [main_menu_view], eax
171
	mov [main_menu_view], eax
175
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_UseSyntax, 19
172
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_UseSyntax, 19
176
	stdcall [ksubmenu_add], [main_menu_view], eax
173
	stdcall [ksubmenu_add], [main_menu_view], eax
177
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_ChooseSyntax, 20
174
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_ChooseSyntax, 20
178
	stdcall [ksubmenu_add], [main_menu_view], eax
175
	stdcall [ksubmenu_add], [main_menu_view], eax
179
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
176
	stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
180
	stdcall [ksubmenu_add], [main_menu_view], eax
177
	stdcall [ksubmenu_add], [main_menu_view], eax
181
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_LineBreak, 18
178
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Veiw_LineBreak, 18
182
	stdcall [ksubmenu_add], [main_menu_view], eax	
179
	stdcall [ksubmenu_add], [main_menu_view], eax	
183
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
180
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_View, [main_menu_view]
184
	stdcall [ksubmenu_add], [main_menu], eax
181
	stdcall [ksubmenu_add], [main_menu], eax
185
 
182
 
186
	stdcall [ksubmenu_new]
183
	stdcall [ksubmenu_new]
187
	mov [main_menu_encoding], eax
184
	mov [main_menu_encoding], eax
188
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_1251to866, 21
185
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_1251to866, 21
189
	stdcall [ksubmenu_add], [main_menu_encoding], eax
186
	stdcall [ksubmenu_add], [main_menu_encoding], eax
190
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_866to1251, 22
187
	stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Encoding_866to1251, 22
191
	stdcall [ksubmenu_add], [main_menu_encoding], eax	
188
	stdcall [ksubmenu_add], [main_menu_encoding], eax	
192
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Encoding, [main_menu_encoding]
189
	stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Encoding, [main_menu_encoding]
193
	stdcall [ksubmenu_add], [main_menu], eax
190
	stdcall [ksubmenu_add], [main_menu], eax
194
	
191
	
195
; init toolbar file
192
; init toolbar file
196
	load_image_file 'te_icon.png', bmp_icon,TOOLBAR_ICONS_SIZE*2 ;㬭®¦¥­¨¥ ­  2 ¤«ï á¥àëå ª­®¯®ª
193
	load_image_file 'te_icon.png', bmp_icon,TOOLBAR_ICONS_SIZE*2 ;㬭®¦¥­¨¥ ­  2 ¤«ï á¥àëå ª­®¯®ª
197
	mov eax,[bmp_icon]
194
	mov eax,[bmp_icon]
198
	add eax,TOOLBAR_ICONS_SIZE
195
	add eax,TOOLBAR_ICONS_SIZE
199
	stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
196
	stdcall img_to_gray, [bmp_icon],eax,(TOOLBAR_ICONS_SIZE)/3
200
;---------------------------------------------------------------------
197
;---------------------------------------------------------------------
201
; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
198
; ç¨â ¥¬ ä ©« á ªãàá®à ¬¨ ¨ «¨­¨ï¬¨
202
	load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
199
	load_image_file 'tl_sys_16.png', icon_tl_sys,54+3*256*13
203
	mov eax,dword[icon_tl_sys]
200
	mov eax,dword[icon_tl_sys]
204
	mov dword[tree1.data_img_sys],eax
201
	mov dword[tree1.data_img_sys],eax
205
;---------------------------------------------------------------------
202
;---------------------------------------------------------------------
206
; ç¨â ¥¬ ä ©« á ¨ª®­ª ¬¨ 㧫®¢
203
; ç¨â ¥¬ ä ©« á ¨ª®­ª ¬¨ 㧫®¢
207
	load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
204
	load_image_file 'tl_nod_16.png', icon_tl_sys,54+3*256*2
208
	mov eax,dword[icon_tl_sys]
205
	mov eax,dword[icon_tl_sys]
209
	mov dword[tree1.data_img],eax
206
	mov dword[tree1.data_img],eax
210
;------------------------------------------------------------------------------
207
;------------------------------------------------------------------------------
211
	copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
208
	copy_path fn_syntax_dir,sys_path,file_name,0 ;¡¥à¥¬ ¯ãâì ª ¯ ¯ª¥ á ä ©« ¬¨ ᨭ⠪á¨á 
212
	mcall 70,tree_file_struct
209
	mcall SF_FILE,tree_file_struct
213
 
210
 
214
	cmp ebx,-1
211
	cmp ebx,-1
215
	je .end_dir_init
212
	je .end_dir_init
216
		mov eax,dir_mem
213
		mov eax,dir_mem
217
		add eax,32+4+1+3+4*6+8
214
		add eax,32+4+1+3+4*6+8
218
		mov ecx,ebx
215
		mov ecx,ebx
219
		@@:
216
		@@:
220
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
217
			cmp byte[eax],'.' ;䨫ìâà㥬 ä ©«ë á ¨¬¥­ ¬¨ '.' ¨ '..'
221
			je .filter
218
			je .filter
222
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
219
			;0x10000 ;1*2^16 - £¤¥ 1 ­®¬¥à ¨ª®­ª¨ á ª­¨£®©
223
			stdcall dword[tl_node_add], tree1,0x10000,eax 
220
			stdcall dword[tl_node_add], tree1,0x10000,eax 
224
			stdcall dword[tl_cur_next], tree1
221
			stdcall dword[tl_cur_next], tree1
225
			.filter:
222
			.filter:
226
			add eax,304
223
			add eax,304
227
			loop @b
224
			loop @b
228
		stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
225
		stdcall dword[tl_cur_beg],tree1 ;áâ ¢¨¬ ªãàá®à ­  ­ ç «® ᯨ᪠
229
	.end_dir_init:
226
	.end_dir_init:
230
 
227
 
231
;--- load ini file ---
228
;--- load ini file ---
232
	copy_path ini_name,sys_path,file_name,0
229
	copy_path ini_name,sys_path,file_name,0
233
	;window startup pozition
230
	;window startup pozition
234
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
231
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_l,ini_def_window_l
235
	mov word[wnd_s_pos+2],ax
232
	mov word[wnd_s_pos+2],ax
236
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
233
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_w,ini_def_window_w
237
	mov word[wnd_s_pos],ax
234
	mov word[wnd_s_pos],ax
238
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
235
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_t,ini_def_window_t
239
	mov word[wnd_s_pos+6],ax
236
	mov word[wnd_s_pos+6],ax
240
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
237
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_window_h,ini_def_window_h
241
	mov word[wnd_s_pos+4],ax
238
	mov word[wnd_s_pos+4],ax
242
	;scrool type
239
	;scrool type
243
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
240
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_scroll_type,ini_def_scroll_type
244
	mov [wScr.type],eax
241
	mov [wScr.type],eax
245
	mov [hScr.type],eax
242
	mov [hScr.type],eax
246
	mov [ws_dir_lbox.type],eax
243
	mov [ws_dir_lbox.type],eax
247
    mov [w_scr_t3.type],eax
244
    mov [w_scr_t3.type],eax
248
	;symbol size
245
	;symbol size
249
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
246
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_w,ini_def_symbol_w
250
	mov dword[tedit0.rec.width],eax
247
	mov dword[tedit0.rec.width],eax
251
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
248
	stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
252
	mov dword[tedit0.rec.height],eax
249
	mov dword[tedit0.rec.height],eax
253
	lea eax,[eax+eax*2]
250
	lea eax,[eax+eax*2]
254
	mov dword[tedit0.rec.top],eax
251
	mov dword[tedit0.rec.top],eax
255
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
252
	;ä ©«®¢ë¥ à áè¨à¥­¨ï
256
	xor edx,edx
253
	xor edx,edx
257
	mov ebx,synt_auto_open
254
	mov ebx,synt_auto_open
258
	@@:
255
	@@:
259
		;¡¥à¥¬ ¨¬ï ä ©« 
256
		;¡¥à¥¬ ¨¬ï ä ©« 
260
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
257
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_file,ebx,32,ini_def_synt_f
261
		cmp byte[ebx],0
258
		cmp byte[ebx],0
262
		je @f
259
		je @f
263
		inc byte[key_synt_file.numb]
260
		inc byte[key_synt_file.numb]
264
		add ebx,32
261
		add ebx,32
265
		;¡¥à¥¬ à áè¨à¥­¨ï
262
		;¡¥à¥¬ à áè¨à¥­¨ï
266
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
263
		stdcall dword[ini_get_str],file_name,ini_sec_options,key_synt_ext,ebx,32,ini_def_synt_f
267
		inc byte[key_synt_ext.numb]
264
		inc byte[key_synt_ext.numb]
268
		add ebx,32
265
		add ebx,32
269
		inc edx
266
		inc edx
270
		cmp edx,max_synt_auto_open
267
		cmp edx,max_synt_auto_open
271
		jl @b
268
		jl @b
272
	@@:
269
	@@:
273
 
270
 
274
;--- load color option file ---
271
;--- load color option file ---
275
	mov ebx,dword[fn_col_option]
-
 
276
	call open_unpac_synt_file
272
	stdcall open_unpac_synt_file,[fn_col_option]
277
 
273
 
278
;--- get cmd line ---
274
;--- get cmd line ---
279
	cmp byte[openfile_path+3],0 ;openfile_path
275
	cmp byte[openfile_path+3],0 ;openfile_path
280
	je @f ;if file names exist
276
	je @f ;if file names exist
281
		mov esi,openfile_path
277
		mov esi,openfile_path
-
 
278
		stdcall auto_open_syntax,esi
282
		call strlen ;eax=strlen
279
		call strlen ;eax=strlen
283
		call but_no_msg_OpenFile
280
		call but_no_msg_OpenFile
284
	@@:
281
	@@:
285
 
282
 
286
 
283
 
287
 
284
 
288
align 4
285
align 4
289
red_win:
286
red_win:
290
	call draw_window
287
	call draw_window
291
 
288
 
292
align 4
289
align 4
293
still:
290
still:
294
	mcall 10
291
	mcall SF_WAIT_EVENT
295
	cmp dword[exit_code],1
292
	cmp dword[exit_code],1
296
	je button.exit
293
	je button.exit
297
 
294
 
298
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
295
	cmp al,1 ;¨§¬¥­¨«®áì ¯®«®¦¥­¨¥ ®ª­ 
299
	jz red_win
296
	jz red_win
300
	cmp al,2
297
	cmp al,2
301
	jz key
298
	jz key
302
	cmp al,3
299
	cmp al,3
303
	jz button
300
	jz button
304
	cmp al,6 ;¬ëèì
301
	cmp al,6 ;¬ëèì
305
	jne @f
302
	jne @f
306
		jmp mouse
303
		jmp mouse
307
	@@:
304
	@@:
308
	jmp still
305
	jmp still
309
 
306
 
310
align 4
307
align 4
311
draw_window:
308
draw_window:
312
	mcall 12,1
309
	mcall SF_REDRAW,SSF_BEGIN_DRAW
313
 
310
 
314
	mov edx,[sc.work]
311
	mov edx,[sc.work]
315
	or  edx,0x73000000
312
	or  edx,0x73000000
316
	mov edi,hed
-
 
317
	mcall 0,dword[wnd_s_pos],dword[wnd_s_pos+4]
313
	mcall SF_CREATE_WINDOW,dword[wnd_s_pos],dword[wnd_s_pos+4],,,hed
318
 
314
 
319
	mcall 9,procinfo,-1
315
	mcall SF_THREAD_INFO,procinfo,-1
320
	mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
316
	mov edi,tedit0 ;§­ ç¥­¨¥ edi ­ã¦­® ¤«ï EvSize ¨ ted_wnd_t
321
	call EvSize
317
	call EvSize
322
 
318
 
323
	movzx ebx,word[procinfo.client_box.width]
319
	movzx ebx,word[procinfo.client_box.width]
324
	inc bx
320
	inc bx
325
	mcall 13,,ted_wnd_t ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
321
	mcall SF_DRAW_RECT,,ted_wnd_t ;¢¥àå­¨© ¯àאַ㣮«ì­¨ª, ¤«ï ®ç¨á⪨ ¢¥àå­¥© ¯ ­¥«¨
326
 
-
 
327
	call draw_but_toolbar
322
	call draw_but_toolbar
328
	
-
 
329
	stdcall [kmainmenu_draw], [main_menu]
323
	stdcall [kmainmenu_draw], [main_menu]
330
 
-
 
331
	stdcall [ted_draw], tedit0
324
	stdcall [ted_draw], tedit0
332
 
325
 
333
	mcall 12,2
326
	mcall SF_REDRAW,SSF_END_DRAW
334
	ret
327
	ret
335
 
328
 
336
align 4
329
align 4
337
mouse:
330
mouse:
338
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
331
	stdcall [kmainmenu_dispatch_cursorevent], [main_menu]
339
	stdcall [ted_mouse], tedit0
332
	stdcall [ted_mouse], tedit0
340
 
333
 
341
	cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
334
	cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel
342
	jne @f
335
	jne @f
343
		stdcall [edit_box_mouse], dword edit2
336
		stdcall [edit_box_mouse], dword edit2
344
	@@:
337
	@@:
345
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
338
	cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel
346
	jne .mouse_end
339
	jne .mouse_end
347
	stdcall [tl_mouse], tree1
340
	stdcall [tl_mouse], tree1
348
.mouse_end:
341
.mouse_end:
349
	jmp still
342
	jmp still
350
;---------------------------------------------------------------------
343
;---------------------------------------------------------------------
351
 
344
 
352
;output:
345
;output:
353
; ah = symbol
346
; ah = symbol
354
align 4
347
align 4
355
proc KeyConvertToASCII uses ebx, table:dword
348
proc KeyConvertToASCII uses ebx, table:dword
356
	mov ebx,dword[table] ;convert scan to ascii
349
	mov ebx,dword[table] ;convert scan to ascii
357
	ror ax,8
350
	ror ax,8
358
	xor ah,ah
351
	xor ah,ah
359
	add bx,ax
352
	add bx,ax
360
	mov ah,byte[ebx]
353
	mov ah,byte[ebx]
361
	ret
354
	ret
362
endp
355
endp
363
 
356
 
364
align 4
357
align 4
365
key:
358
key:
366
  mcall 66,3 ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
359
  mcall SF_KEYBOARD,SSF_GET_CONTROL_KEYS ;66.3 ¯®«ãç¨âì á®áâ®ï­¨¥ ã¯à ¢«ïîé¨å ª« ¢¨è
367
  xor esi,esi
360
  xor esi,esi
368
  mov ecx,1
361
  mov ecx,1
369
  test al,0x03 ;[Shift]
362
  test al,0x03 ;[Shift]
370
  jz @f
363
  jz @f
371
    mov cl,2
364
    mov cl,2
372
    or esi,KM_SHIFT
365
    or esi,KM_SHIFT
373
  @@:
366
  @@:
374
  test al,0x0c ;[Ctrl]
367
  test al,0x0c ;[Ctrl]
375
  jz @f
368
  jz @f
376
    or esi,KM_CTRL
369
    or esi,KM_CTRL
377
  @@:
370
  @@:
378
  test al,0x30 ;[Alt]
371
  test al,0x30 ;[Alt]
379
  jz @f
372
  jz @f
380
    mov cl,3
373
    mov cl,3
381
    or esi,KM_ALT
374
    or esi,KM_ALT
382
  @@:
375
  @@:
383
  test al,0x80 ;[NumLock]
376
  test al,0x80 ;[NumLock]
384
  jz @f
377
  jz @f
385
    or esi,KM_NUMLOCK
378
    or esi,KM_NUMLOCK
386
  @@:
379
  @@:
387
 
380
 
388
  mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
381
  mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
389
  mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
382
  mcall SF_GET_KEY
390
  stdcall [tl_key], tree1
383
  stdcall [tl_key], tree1
391
 
384
 
392
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
385
  test word [edit2.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
393
  je @f
386
  je @f
394
    cmp ah,0x80 ;if key up
387
    cmp ah,0x80 ;if key up
395
    ja still
388
    ja still
396
    cmp ah,42 ;[Shift] (left)
389
    cmp ah,42 ;[Shift] (left)
397
    je still
390
    je still
398
    cmp ah,54 ;[Shift] (right)
391
    cmp ah,54 ;[Shift] (right)
399
    je still
392
    je still
400
    cmp ah,56 ;[Alt]
393
    cmp ah,56 ;[Alt]
401
    je still
394
    je still
402
    cmp ah,29 ;[Ctrl]
395
    cmp ah,29 ;[Ctrl]
403
    je still
396
    je still
404
    cmp ah,69 ;[Pause Break]
397
    cmp ah,69 ;[Pause Break]
405
    je still
398
    je still
406
 
399
 
407
    stdcall KeyConvertToASCII, dword conv_tabl
400
    stdcall KeyConvertToASCII, dword conv_tabl
408
    stdcall [edit_box_key], dword edit2
401
    stdcall [edit_box_key], dword edit2
409
    jmp still
402
    jmp still
410
  @@:
403
  @@:
411
 
404
 
412
  stdcall [ted_key], tedit0, conv_tabl,esi
405
  stdcall [ted_key], tedit0, conv_tabl,esi
413
  jmp still
406
  jmp still
414
 
407
 
415
align 4
408
align 4
416
button:
409
button:
417
 
410
 
418
  mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
411
  mcall SF_GET_BUTTON
419
  cmp ah,3
412
  cmp ah,3
420
  jne @f
413
  jne @f
421
    call ted_but_new_file
414
    call ted_but_new_file
422
  @@:
415
  @@:
423
  cmp ah,4
416
  cmp ah,4
424
  jne @f
417
  jne @f
425
    call ted_but_open_file
418
    call ted_but_open_file
426
  @@:
419
  @@:
427
  cmp ah,5
420
  cmp ah,5
428
  jne @f
421
  jne @f
429
    call ted_but_save_file
422
    call ted_but_save_file
430
  @@:
423
  @@:
431
  cmp ah,6
424
  cmp ah,6
432
  jne @f
425
  jne @f
433
    stdcall [ted_but_select_word], tedit0
426
    stdcall [ted_but_select_word], tedit0
434
  @@:
427
  @@:
435
  cmp ah,7
428
  cmp ah,7
436
  jne @f
429
  jne @f
437
    stdcall [ted_but_cut], tedit0
430
    stdcall [ted_but_cut], tedit0
438
  @@:
431
  @@:
439
  cmp ah,8
432
  cmp ah,8
440
  jne @f
433
  jne @f
441
    stdcall [ted_but_copy], tedit0
434
    stdcall [ted_but_copy], tedit0
442
  @@:
435
  @@:
443
  cmp ah,9
436
  cmp ah,9
444
  jne @f
437
  jne @f
445
    stdcall [ted_but_paste], tedit0
438
    stdcall [ted_but_paste], tedit0
446
  @@:
439
  @@:
447
  cmp ah,10
440
  cmp ah,10
448
  jne @f
441
  jne @f
449
    call ted_but_find
442
    call ted_but_find
450
  @@:
443
  @@:
451
  cmp ah,11
444
  cmp ah,11
452
  jne @f
445
  jne @f
453
    call but_replace
446
    call but_replace
454
  @@:
447
  @@:
455
  cmp ah,12
448
  cmp ah,12
456
  jne @f
449
  jne @f
457
    call but_find_key_w
450
    call but_find_key_w
458
  @@:
451
  @@:
459
  cmp ah,13
452
  cmp ah,13
460
  jne @f
453
  jne @f
461
    stdcall [ted_but_sumb_upper], tedit0
454
    stdcall [ted_but_sumb_upper], tedit0
462
  @@:
455
  @@:
463
  cmp ah,14
456
  cmp ah,14
464
  jne @f
457
  jne @f
465
    stdcall [ted_but_sumb_lover], tedit0
458
    stdcall [ted_but_sumb_lover], tedit0
466
  @@:
459
  @@:
467
  cmp ah,15
460
  cmp ah,15
468
  jne @f
461
  jne @f
469
    stdcall [ted_but_reverse], tedit0
462
    stdcall [ted_but_reverse], tedit0
470
  @@:
463
  @@:
471
  cmp ah,16
464
  cmp ah,16
472
  jne @f
465
  jne @f
473
    stdcall [ted_but_undo], tedit0
466
    stdcall [ted_but_undo], tedit0
474
  @@:
467
  @@:
475
  cmp ah,17
468
  cmp ah,17
476
  jne @f
469
  jne @f
477
    stdcall [ted_but_redo], tedit0
470
    stdcall [ted_but_redo], tedit0
478
  @@:
471
  @@:
479
  cmp ah,18
472
  cmp ah,18
480
  jne @f
473
  jne @f
481
    stdcall but_sumb_invis, tedit0
474
    stdcall but_sumb_invis, tedit0
482
  @@:
475
  @@:
483
  cmp ah,19
476
  cmp ah,19
484
  jne @f
477
  jne @f
485
    stdcall but_k_words_show, tedit0
478
    stdcall but_k_words_show, tedit0
486
  @@:
479
  @@:
487
  cmp ah,20
480
  cmp ah,20
488
  jne @f
481
  jne @f
489
    stdcall but_synt_show, tedit0
482
    stdcall but_synt_show, tedit0
490
  @@:
483
  @@:
491
  cmp ah,21
484
  cmp ah,21
492
  jne @f
485
  jne @f
493
    stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
486
    stdcall [ted_but_convert_by_table],tedit0,tbl_1251_866
494
  @@:
487
  @@:
495
  cmp ah,22
488
  cmp ah,22
496
  jne @f
489
  jne @f
497
    stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
490
    stdcall [ted_but_convert_by_table],tedit0,tbl_866_1251
498
  @@:
491
  @@:
499
 
492
 
500
  cmp ah,200
493
  cmp ah,200
501
  jne @f
494
  jne @f
502
    stdcall ted_but_open_syntax, tedit0
495
    stdcall ted_but_open_syntax, tedit0
503
  @@:
496
  @@:
504
  cmp ah,201
497
  cmp ah,201
505
  jne @f
498
  jne @f
506
    stdcall [ted_but_find_next], tedit0
499
    stdcall [ted_but_find_next], tedit0
507
  @@:
500
  @@:
508
 
501
 
509
  cmp ah,1
502
  cmp ah,1
510
  je .exit
503
  je .exit
511
 
504
 
512
  cmp ah,199
505
  cmp ah,199
513
  je .exit
506
  je .exit
514
  
507
  
515
  jmp still
508
  jmp still
516
.exit:
509
.exit:
517
	cmp dword[exit_code],1
510
	cmp dword[exit_code],1
518
	je @f
511
	je @f
519
	stdcall [ted_can_save], tedit0
512
	stdcall [ted_can_save], tedit0
520
	cmp al,1
513
	cmp al,1
521
	jne @f
514
	jne @f
522
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
515
		stdcall [mb_create],msgbox_2,thread ;message: save buf in file?
523
		stdcall [mb_setfunctions],msgbox_2E_funct
516
		stdcall [mb_setfunctions],msgbox_2E_funct
524
		jmp still
517
		jmp still
525
	@@:
518
	@@:
526
	stdcall mem.Free,[bmp_icon]
519
	stdcall mem.Free,[bmp_icon]
527
	cmp dword[unpac_mem],0
520
	cmp dword[unpac_mem],0
528
	je @f
521
	je @f
529
		stdcall mem.Free,[unpac_mem]
522
		stdcall mem.Free,[unpac_mem]
530
	@@:
523
	@@:
531
 
524
 
532
	stdcall [ted_delete], tedit0
525
	stdcall [ted_delete], tedit0
533
	stdcall [tl_data_clear], tree1
526
	stdcall [tl_data_clear], tree1
534
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
527
	mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë
535
 
528
 
536
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
529
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0
537
 
530
 
538
unpac_mem dd 0
531
unpac_mem dd 0
539
 
532
 
540
if lang eq ru
533
if lang eq ru
541
  head_f_i:
534
  head_f_i:
542
  head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
535
  head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
543
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
536
  err_message_found_lib0 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
544
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
537
  err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib.obj',39,0
545
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
538
  err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'msgbox.obj',39,0
546
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
539
  err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'msgbox.obj',39,0
547
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
540
  err_message_found_lib2 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
548
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
541
  err_message_import2 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
549
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
542
  err_message_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libimg.obj',39,0
550
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
543
  err_message_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libimg.obj',39,0
551
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
544
  err_message_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libini.obj',39,0
552
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,0
545
  err_message_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libini.obj',39,0
553
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,0
546
  err_message_found_lib_5 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'libkmenu.obj',39,0
554
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,0
547
  err_message_import_5 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'libkmenu.obj',39,0
555
else
548
else
556
  head_f_i:
549
  head_f_i:
557
  head_f_l db 'System error',0
550
  head_f_l db 'System error',0
558
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
551
  err_message_found_lib0 db 'Sorry I cannot found library ',39,'box_lib.obj',39,0
559
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
552
  err_message_import0 db 'Error on load import library ',39,'box_lib.obj',39,0
560
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
553
  err_message_found_lib1 db 'Sorry I cannot found library ',39,'msgbox.obj',39,0
561
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
554
  err_message_import1 db 'Error on load import library ',39,'msgbox.obj',39,0
562
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
555
  err_message_found_lib2 db 'Sorry I cannot found library ',39,'proc_lib.obj',39,0
563
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
556
  err_message_import2 db 'Error on load import library ',39,'proc_lib.obj',39,0
564
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
557
  err_message_found_lib_3 db 'Sorry I cannot found library ',39,'libimg.obj',39,0
565
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
558
  err_message_import_3 db 'Error on load import library ',39,'libimg.obj',39,0
566
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,0
559
  err_message_found_lib_4 db 'Sorry I cannot found library ',39,'libini.obj',39,0
567
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,0
560
  err_message_import_4 db 'Error on load import library ',39,'libini.obj',39,0
568
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,0
561
  err_message_found_lib_5 db 'Sorry I cannot found library ',39,'libkmenu.obj',39,0
569
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,0
562
  err_message_import_5 db 'Error on load import library ',39,'libkmenu.obj',39,0
570
end if
563
end if
571
 
564
 
572
;library structures
565
;library structures
573
l_libs_start:
566
l_libs_start:
574
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
567
	lib0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
575
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
568
		err_message_found_lib0, head_f_l, import_box_lib,err_message_import0, head_f_i
576
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
569
	lib1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
577
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
570
		err_message_found_lib1, head_f_l, import_msgbox_lib, err_message_import1, head_f_i
578
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
571
	lib2 l_libs lib_name_2, sys_path, file_name, system_dir_2,\
579
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
572
		err_message_found_lib2, head_f_l, import_proclib, err_message_import2, head_f_i
580
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
573
	lib3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
581
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
574
		err_message_found_lib_3, head_f_l, import_libimg, err_message_import_3, head_f_i
582
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
575
	lib4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
583
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
576
		err_message_found_lib_4, head_f_l, import_libini, err_message_import_4, head_f_i
584
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
577
	lib5 l_libs lib_name_5, sys_path, file_name, system_dir_5,\
585
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
578
		err_message_found_lib_5, head_f_l, import_libkmenu, err_message_import_5, head_f_i
586
load_lib_end:
579
load_lib_end:
587
 
580
 
588
IncludeIGlobals
581
IncludeIGlobals
589
hed db 'TextEdit '
582
hed db 'TextEdit '
590
i_end:
583
i_end:
591
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
584
	openfile_path: ;¯®«­ë© ¯ãâì ª ä ©«ã á ª®â®àë¬ ¨¤¥â à ¡®â 
592
		rb 4096
585
		rb 4096
593
	dir_mem rb 32+304*count_of_dir_list_files
586
	dir_mem rb 32+304*count_of_dir_list_files
594
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
587
	wnd_s_pos: ;¬¥áâ® ¤«ï ­ áâ஥ª áâ à⮢®© ¯®§¨æ¨¨ ®ª­ 
595
		rq 1
588
		rq 1
596
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
589
	last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
597
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
590
	buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
598
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
591
	buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
599
	run_file_70 FileInfoBlock 
592
	run_file_70 FileInfoBlock 
600
	sc system_colors
593
	sc system_colors
601
		rb sizeof.sys_colors_new-sizeof.system_colors
594
		rb sizeof.sys_colors_new-sizeof.system_colors
602
IncludeUGlobals
595
IncludeUGlobals
603
	align 16
596
	align 16
604
	procinfo process_information
597
	procinfo process_information
605
		rb 1024
598
		rb 1024
606
	thread:
599
	thread:
607
	rb 1024
600
	rb 1024
608
    thread_coords:
601
    thread_coords:
609
	rb 4096
602
	rb 4096
610
stacktop:
603
stacktop:
611
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
604
	sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
612
		rb 4096
605
		rb 4096
613
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
606
	file_name: ;¯ à ¬¥âàë § ¯ã᪠
614
		rb 4096
607
		rb 4096
615
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
608
	syntax_path: ;¨¬ï ¯®¤ª«îç ¥¬®£® ä ©«  ᨭ⠪á¨á 
616
		rb 4096
609
		rb 4096
617
	plugin_path:
610
	plugin_path:
618
		rb 4096
611
		rb 4096
619
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
612
	text_work_area: ;¯ãâì ª ä ©«ã, ª®â®àë© ¯®ª §ë¢ ¥âáï ¢ ®ª­¥
620
		rb 4096
613
		rb 4096
621
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
614
	filename_area: ;¨¬ï ä ©«  ¤«ï ¤¨ «®£  ®âªàëâ¨ï/§ ªàëâ¨ï
622
		rb 256
615
		rb 256
623
	file_info:
616
	file_info:
624
		rb 40
617
		rb 40
625
mem:
618
mem: