Rev 1339 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1338 | IgorA | 1 | ;Огромная благодарность Maxxxx32, Diamond, Heavyiron |
2 | ;и другим программистам, а также |
||
3 | ;Теплову Алексею ( |
||
4 | |||
5 | |||
6 | use32 |
||
7 | org 0x0 |
||
8 | db 'MENUET01' ;идентиф. исполняемого файла всегда 8 байт |
||
9 | dd 0x01 |
||
10 | dd start |
||
11 | dd i_end ; размер приложения |
||
12 | dd mem |
||
13 | dd stacktop |
||
14 | dd file_name;buf_cmd_lin |
||
15 | dd sys_path |
||
16 | |||
17 | MAX_COLOR_WORD_LEN equ 40 |
||
18 | maxChars equ 100002 ;(...+2) |
||
19 | BUF_SIZE equ 1000 ;bufer for copy|paste |
||
20 | maxColWords equ 10000 |
||
21 | |||
22 | |||
23 | include '../../macros.inc' |
||
24 | ;include '../../develop/libraries/box_lib/load_lib.mac' |
||
25 | include 'load_lib.mac' ;include old file |
||
26 | include '../../develop/libraries/box_lib/trunk/tree_list.mac' |
||
27 | include '../../develop/libraries/box_lib/trunk/editbox_ex.mac' |
||
28 | |||
29 | include 't_data.inc' |
||
30 | include 'strlen.inc' |
||
31 | include 't_work.inc' ;text work functions |
||
32 | include 't_draw.inc' ;draw main window functions |
||
33 | include 't_button.inc' |
||
34 | |||
35 | @use_library |
||
36 | |||
37 | start: |
||
38 | mov eax,48 |
||
39 | mov ebx,3 |
||
40 | mov ecx,sc |
||
41 | mov edx,sizeof.system_colors |
||
42 | mcall |
||
43 | |||
44 | m2m [wScr.bckg_col],[sc.work] |
||
45 | m2m [wScr.frnt_col],[sc.work_button] |
||
46 | m2m [wScr.line_col],[sc.work_button_text] |
||
47 | |||
48 | m2m [hScr.bckg_col],[sc.work] |
||
49 | m2m [hScr.frnt_col],[sc.work_button] |
||
50 | m2m [hScr.line_col],[sc.work_button_text] |
||
51 | |||
52 | |||
53 | mcall 68,11 |
||
54 | or eax,eax |
||
55 | jz button.exit |
||
56 | |||
57 | mcall 66,1,1 ;scan code |
||
58 | ;mcall 26,2,1,conv_tabl |
||
59 | |||
60 | mov ecx,sizeof.symbol*maxChars |
||
61 | call mem_Alloc |
||
62 | mov [tex],eax |
||
63 | mov [tex_1],eax |
||
64 | add [tex_1],sizeof.symbol |
||
65 | mov [tex_end],eax |
||
66 | add [tex_end],sizeof.symbol*maxChars |
||
67 | |||
68 | mcall 40,0x27 |
||
69 | |||
70 | call Clear |
||
71 | |||
72 | ;------------------------------------------------- |
||
73 | mov ecx,maxColWords*sizeof.TexColViv |
||
74 | add ecx,40 |
||
75 | call mem_Alloc |
||
76 | mov [options_file],eax |
||
77 | mov [options_file_end],eax |
||
78 | add [options_file_end],maxColWords*sizeof.TexColViv |
||
79 | add [options_file_end],40 |
||
80 | |||
81 | ;------------------------------------------------- |
||
82 | ; init bmp file |
||
83 | mov ecx,1200*18 |
||
84 | call mem_Alloc |
||
85 | mov [bmp_icon],eax |
||
86 | |||
87 | mov esi,file_name |
||
88 | call strlen |
||
89 | mov ecx,eax |
||
90 | mov edi,buf_cmd_lin |
||
91 | rep movsb |
||
92 | |||
93 | copy_path fn_icon,sys_path,file_name |
||
94 | |||
95 | mov eax,70 ;load icon file |
||
96 | mov [run_file_70.func_n], 0 |
||
97 | mov [run_file_70.param1], 54 |
||
98 | mov [run_file_70.param2], 0 |
||
99 | mov [run_file_70.param3], 1200*18 |
||
100 | m2m [run_file_70.param4], [bmp_icon] |
||
101 | mov [run_file_70.rezerv], 0 |
||
102 | mov [run_file_70.name], file_name |
||
103 | mov ebx,run_file_70 |
||
104 | int 0x40 |
||
105 | |||
106 | cmp ebx,-1 |
||
107 | mov [err_ini0],1 |
||
108 | je @f ;if open file |
||
109 | mov [err_ini0],0 |
||
110 | @@: |
||
111 | |||
112 | load_libraries l_libs_start,load_lib_end |
||
113 | |||
114 | ;Їа®ўҐаЄ бЄ®«мЄ® г¤ з® § Јг§Ё« бм и «ЁЎ |
||
115 | mov ebp,lib0 |
||
116 | cmp dword [ebp+ll_struc_size-4],0 |
||
117 | jz @f |
||
118 | mcall -1 ;exit not correct |
||
119 | @@: |
||
120 | mov ebp,lib1 ; |
||
121 | cmp dword [ebp+ll_struc_size-4],0 |
||
122 | jz @f |
||
123 | mcall -1 ;exit not correct |
||
124 | @@: |
||
125 | |||
126 | |||
127 | ;--------------------------------------------------------------------- |
||
128 | push dword tree1 |
||
129 | call dword[tl_data_init] |
||
130 | ;--------------------------------------------------------------------- |
||
131 | ; читаем bmp файл с курсорами и линиями |
||
132 | copy_path fn_icon_tl_sys,sys_path,file_name |
||
133 | |||
134 | mov ecx,3*256*13 |
||
135 | call mem_Alloc |
||
136 | mov dword[tree1.data_img_sys],eax |
||
137 | |||
138 | mov [run_file_70.func_n], 0 |
||
139 | mov [run_file_70.param1], 54 |
||
140 | mov [run_file_70.param2], 0 |
||
141 | mov [run_file_70.param3], 3*256*13 |
||
142 | mov [run_file_70.param4], eax |
||
143 | mov [run_file_70.rezerv], 0 |
||
144 | mov [run_file_70.name], file_name |
||
145 | |||
146 | mov eax,70 ;load icon file |
||
147 | mov ebx,run_file_70 |
||
148 | int 0x40 |
||
149 | cmp ebx,0 |
||
150 | jg @f |
||
151 | mov dword[tree1.data_img_sys],0 |
||
152 | @@: |
||
153 | ;--------------------------------------------------------------------- |
||
154 | ; читаем bmp файл с иконками узлов |
||
155 | copy_path fn_icon_tl_nod,sys_path,file_name |
||
156 | |||
157 | mov ecx,3*256*2 |
||
158 | call mem_Alloc |
||
159 | mov dword[tree1.data_img],eax |
||
160 | |||
161 | ; mov [run_file_70.func_n], 0 |
||
162 | ; mov [run_file_70.param1], 54 |
||
163 | ; mov [run_file_70.param2], 0 |
||
164 | mov [run_file_70.param3], 3*256*2 |
||
165 | mov [run_file_70.param4], eax |
||
166 | ; mov [run_file_70.rezerv], 0 |
||
167 | ; mov [run_file_70.name], file_name |
||
168 | |||
169 | mov eax,70 ;load icon file |
||
170 | mov ebx,run_file_70 |
||
171 | int 0x40 |
||
172 | cmp ebx,0 |
||
173 | jg @f |
||
174 | mov dword[tree1.data_img],0 |
||
175 | @@: |
||
176 | ;------------------------------------------------------------------------------ |
||
177 | copy_path fn_syntax_dir,sys_path,file_name ;берем путь к папке с файлами синтаксиса |
||
178 | mov eax,70 |
||
179 | mov ebx,tree_file_struct |
||
180 | int 0x40 |
||
181 | |||
182 | cmp ebx,-1 |
||
183 | je .end_dir_init |
||
184 | |||
185 | mov eax,dir_mem |
||
186 | add eax,32+4+1+3+4*6+8 |
||
187 | mov ecx,ebx |
||
188 | @@: |
||
189 | cmp byte[eax],'.' ;фильтруем файлы с именами '.' и '..' |
||
190 | je .filter |
||
191 | push dword tree1 |
||
192 | push dword 0x10000 ;1*2^16 - где 1 номер иконки с книгой |
||
193 | push dword eax |
||
194 | call dword[tl_node_add] |
||
195 | |||
196 | push dword tree1 |
||
197 | call dword[tl_cur_next] |
||
198 | .filter: |
||
199 | add eax,304 |
||
200 | loop @b |
||
201 | .end_dir_init: |
||
202 | |||
203 | ; push dword tree1 |
||
204 | ; push dword 0 |
||
205 | ; push dword file_name |
||
206 | ; call dword[tl_node_add] |
||
207 | |||
208 | |||
209 | ;--- load color option file --- |
||
210 | call InitColText |
||
211 | |||
212 | ;--- get cmd line --- |
||
213 | cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin |
||
214 | je @f ;if file names exist |
||
215 | mov esi,buf_cmd_lin |
||
216 | call strlen ;eax=strlen |
||
217 | mov [edit1.size],eax |
||
218 | call but_OpenFile |
||
219 | @@: |
||
220 | |||
221 | |||
222 | red_win: |
||
223 | mov eax,12 |
||
224 | mov ebx,1 |
||
225 | mcall |
||
226 | |||
227 | xor eax,eax |
||
228 | mov ebx,10*65536+485 |
||
229 | mov ecx,10*65536+280 |
||
230 | mov edx,[sc.work] |
||
231 | or edx,0x73000000 |
||
232 | mov edi,hed |
||
233 | mcall |
||
234 | |||
235 | mcall 9,procinfo,-1 |
||
236 | call EvSize |
||
237 | |||
238 | mov eax,13 ;rect |
||
239 | xor ebx,ebx |
||
240 | xor ecx,ecx |
||
241 | mov bx,word [procinfo.client_box.width] |
||
242 | inc bx |
||
243 | mov cx,word [wndMain.top] |
||
244 | mcall |
||
245 | |||
246 | push dword edit1 |
||
247 | call [edit_box_draw] |
||
248 | |||
249 | ; draw for Menu 1 |
||
250 | push dword menu_data_1 |
||
251 | call [menu_bar_draw] |
||
252 | |||
253 | call draw_but_toolbar |
||
254 | |||
255 | cmp [err_ini0],1 |
||
256 | jne @f |
||
257 | mov eax,4 |
||
258 | mov ebx,[wndMain.left] |
||
259 | add ebx,[recMain.left] |
||
260 | shl ebx,16 |
||
261 | add ebx,[wndMain.top] |
||
262 | add ebx,[recMain.top] |
||
263 | mov ecx,0x80ff0000 |
||
264 | mov edx,txtErrIni0 |
||
265 | int 0x40 |
||
266 | |||
267 | add ebx,10 ;move <--y--> |
||
268 | mov ecx,0x80ff0080 |
||
269 | mov edx,file_name |
||
270 | int 0x40 |
||
271 | @@: |
||
272 | |||
273 | cmp [err_ini0],1 |
||
274 | je @f |
||
275 | call draw_main_win |
||
276 | @@: |
||
277 | |||
278 | cmp [err_opn],1 |
||
279 | jne @f |
||
280 | ;mov eax,4 |
||