Rev 644 | Rev 997 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 644 | Rev 814 | ||
---|---|---|---|
1 | use32 |
1 | use32 |
2 | db 'MENUET01' |
2 | db 'MENUET01' |
3 | dd 1 |
3 | dd 1 |
4 | dd start |
4 | dd start |
5 | dd i_end |
5 | dd i_end |
6 | memsize dd mem |
6 | memsize dd mem |
7 | dd stacktop |
7 | dd stacktop |
8 | dd 0, app_path |
8 | dd 0, app_path |
9 | 9 | ||
10 | version equ '0.42' |
10 | version equ '0.5' |
- | 11 | version_dword equ 0*10000h + 50 |
|
- | 12 | ||
- | 13 | min_width = 54 |
|
- | 14 | max_width = 255 |
|
- | 15 | min_height = 8 |
|
11 | version_dword equ 0*10000h + 42 |
16 | max_height = 255 |
12 | 17 | ||
13 | include 'lang.inc' |
18 | include 'lang.inc' |
14 | include 'font.inc' |
19 | include 'font.inc' |
15 | include 'sort.inc' |
20 | include 'sort.inc' |
16 | include 'kglobals.inc' |
21 | include 'kglobals.inc' |
17 | include 'dialogs.inc' |
22 | include 'dialogs.inc' |
18 | include 'viewer.inc' |
23 | include 'viewer.inc' |
- | 24 | include 'editor.inc' |
|
19 | include 'tools.inc' |
25 | include 'tools.inc' |
20 | include 'filetool.inc' |
26 | include 'filetool.inc' |
- | 27 | ||
- | 28 | cursor_normal_size = (font_height*15+50)/100 |
|
- | 29 | cursor_big_size = font_height |
|
21 | 30 | ||
22 | start: |
31 | start: |
23 | mov edi, tolower_table |
32 | mov edi, tolower_table |
24 | push 'A' |
33 | push 'A' |
25 | pop ecx |
34 | pop ecx |
26 | xor eax, eax |
35 | xor eax, eax |
27 | @@: |
36 | @@: |
28 | stosb |
37 | stosb |
29 | inc eax |
38 | inc eax |
30 | loop @b |
39 | loop @b |
31 | add al, 0x20 |
40 | add al, 0x20 |
32 | mov cl, 'Z'-'A'+1 |
41 | mov cl, 'Z'-'A'+1 |
33 | @@: |
42 | @@: |
34 | stosb |
43 | stosb |
35 | inc eax |
44 | inc eax |
36 | loop @b |
45 | loop @b |
37 | sub al, 0x20 |
46 | sub al, 0x20 |
38 | mov cl, ''-'Z'-1 |
47 | mov cl, ''-'Z'-1 |
39 | @@: |
48 | @@: |
40 | stosb |
49 | stosb |
41 | inc eax |
50 | inc eax |
42 | loop @b |
51 | loop @b |
43 | add al, 0x20 |
52 | add al, 0x20 |
44 | mov cl, ''-'' |
53 | mov cl, ''-'' |
45 | @@: |
54 | @@: |
46 | stosb |
55 | stosb |
47 | inc eax |
56 | inc eax |
48 | loop @b |
57 | loop @b |
49 | add al, 0x30 |
58 | add al, 0x30 |
50 | mov cl, ''-''+1 |
59 | mov cl, ''-''+1 |
51 | @@: |
60 | @@: |
52 | stosb |
61 | stosb |
53 | inc eax |
62 | inc eax |
54 | loop @b |
63 | loop @b |
55 | sub al, 0x50 |
64 | sub al, 0x50 |
56 | mov cl, 256-''-1 |
65 | mov cl, 256-''-1 |
57 | @@: |
66 | @@: |
58 | stosb |
67 | stosb |
59 | inc eax |
68 | inc eax |
60 | loop @b |
69 | loop @b |
61 | mov byte [edi-256+'ð'], 'ñ' |
70 | mov byte [edi-256+'ð'], 'ñ' |
62 | push 68 |
71 | push 68 |
63 | pop eax |
72 | pop eax |
64 | push 11 |
73 | push 11 |
65 | pop ebx |
74 | pop ebx |
66 | int 0x40 |
75 | int 0x40 |
67 | call init_console |
76 | call init_console |
68 | call draw_window |
77 | call draw_window |
69 | push 66 |
78 | push 66 |
70 | pop eax |
79 | pop eax |
71 | push 1 |
80 | push 1 |
72 | pop ebx |
81 | pop ebx |
73 | mov ecx, ebx |
82 | mov ecx, ebx |
74 | int 40h ; set keyboard mode to scancodes |
83 | int 40h ; set keyboard mode to scancodes |
75 | mov eax, 200 |
84 | mov eax, 200 |
76 | mov [panel1_nfa], eax |
85 | mov [panel1_nfa], eax |
77 | mov [panel2_nfa], eax |
86 | mov [panel2_nfa], eax |
78 | mov ecx, 200*4 + 32 + 200*304 |
87 | mov ecx, 200*4 + 32 + 200*304 |
79 | call pgalloc |
88 | call pgalloc |
80 | mov [panel1_files], eax |
89 | mov [panel1_files], eax |
81 | call pgalloc |
90 | call pgalloc |
82 | mov [panel2_files], eax |
91 | mov [panel2_files], eax |
83 | test eax, eax |
92 | test eax, eax |
84 | jz exit |
93 | jz exit |
85 | cmp [panel1_files], 0 |
- | |
86 | jz exit |
- | |
87 | xor eax, eax |
94 | xor eax, eax |
- | 95 | cmp [panel1_files], eax |
|
- | 96 | jz exit |
|
88 | mov [panel1_hPlugin], eax |
97 | mov [panel1_hPlugin], eax |
89 | mov [panel1_parents], eax |
98 | mov [panel1_parents], eax |
90 | mov [panel1_parents_sz], eax |
99 | mov [panel1_parents_sz], eax |
91 | mov [panel1_parents_alloc], eax |
100 | mov [panel1_parents_alloc], eax |
92 | mov [panel2_hPlugin], eax |
101 | mov [panel2_hPlugin], eax |
93 | mov [panel2_parents], eax |
102 | mov [panel2_parents], eax |
94 | mov [panel2_parents_sz], eax |
103 | mov [panel2_parents_sz], eax |
95 | mov [panel2_parents_alloc], eax |
104 | mov [panel2_parents_alloc], eax |
96 | mov [panel1_sortmode], al ; sort by name |
105 | mov [panel1_sortmode], al ; sort by name |
97 | mov [panel2_sortmode], al |
106 | mov [panel2_sortmode], al |
98 | mov al, 2 ; "á।¨©" ä®à¬ â |
107 | mov al, 2 ; "á।¨©" ä®à¬ â |
99 | mov [panel1_colmode], eax |
108 | mov [panel1_colmode], eax |
100 | mov [panel2_colmode], eax |
109 | mov [panel2_colmode], eax |
101 | mov [num_screens], 1 |
110 | mov [num_screens], 1 |
102 | mov ecx, 0x1000 |
111 | mov ecx, 0x1000 |
103 | call pgalloc |
112 | call pgalloc |
104 | mov [screens], eax |
113 | mov [screens], eax |
105 | test eax, eax |
114 | test eax, eax |
106 | jz exit |
115 | jz exit |
107 | mov ecx, panels_vtable |
116 | mov ecx, panels_vtable |
108 | mov [eax], ecx |
117 | mov [eax], ecx |
109 | mov [active_screen_vtable], ecx |
118 | mov [active_screen_vtable], ecx |
110 | ; load libini.obj and kfar.ini |
119 | ; load libini.obj and kfar.ini |
111 | mov eax, libini_name |
120 | mov eax, libini_name |
112 | mov esi, ini_import |
121 | mov esi, ini_import |
113 | push 3 |
122 | push 3 |
114 | pop ebp ; we use version 3 of libini |
123 | pop ebp ; we use version 3 of libini |
115 | call load_dll_and_import |
124 | call load_dll_and_import |
116 | test eax, eax |
125 | test eax, eax |
117 | jnz .noini |
126 | jnz .noini |
118 | mov edi, app_path |
127 | mov edi, app_path |
119 | or ecx, -1 |
128 | or ecx, -1 |
120 | repnz scasb |
129 | repnz scasb |
121 | mov dword [edi-1], '.ini' |
130 | mov dword [edi-1], '.ini' |
122 | mov byte [edi+3], 0 |
131 | mov byte [edi+3], 0 |
123 | push 1 |
132 | push 1 |
124 | push dword aConfirmDelete |
133 | push dword aConfirmDelete |
125 | push dword aConfirmations |
134 | push dword aConfirmations |
126 | push dword app_path |
135 | push dword app_path |
127 | call [ini.get_int] |
136 | call [ini.get_int] |
128 | mov [bConfirmDelete], al |
137 | mov [bConfirmDelete], al |
129 | push 0 |
138 | push 0 |
130 | push dword aConfirmDeleteIncomplete |
139 | push dword aConfirmDeleteIncomplete |
131 | push dword aConfirmations |
140 | push dword aConfirmations |
132 | push dword app_path |
141 | push dword app_path |
133 | call [ini.get_int] |
142 | call [ini.get_int] |
134 | mov [bConfirmDeleteIncomplete], al |
143 | mov [bConfirmDeleteIncomplete], al |
135 | push 2 |
144 | push 2 |
136 | push aLeftViewMode |
145 | push aLeftViewMode |
137 | push aPanels |
146 | push aPanels |
138 | push app_path |
147 | push app_path |
139 | call [ini.get_int] |
148 | call [ini.get_int] |
140 | cmp eax, 1 |
149 | cmp eax, 1 |
141 | jb @f |
150 | jb @f |
142 | cmp eax, 4 |
151 | cmp eax, 4 |
143 | ja @f |
152 | ja @f |
144 | mov [panel1_colmode], eax |
153 | mov [panel1_colmode], eax |
145 | @@: |
154 | @@: |
146 | push 2 |
155 | push 2 |
147 | push aRightViewMode |
156 | push aRightViewMode |
148 | push aPanels |
157 | push aPanels |
149 | push app_path |
158 | push app_path |
150 | call [ini.get_int] |
159 | call [ini.get_int] |
151 | cmp eax, 1 |
160 | cmp eax, 1 |
152 | jb @f |
161 | jb @f |
153 | cmp eax, 4 |
162 | cmp eax, 4 |
154 | ja @f |
163 | ja @f |
155 | mov [panel2_colmode], eax |
164 | mov [panel2_colmode], eax |
156 | @@: |
165 | @@: |
- | 166 | push nullstr |
|
- | 167 | push 512 |
|
- | 168 | push saved_file_name |
|
- | 169 | push aEolStyle |
|
- | 170 | push aEditor |
|
- | 171 | push app_path |
|
- | 172 | call [ini.get_str] |
|
- | 173 | mov cl, edit.eol_dos |
|
- | 174 | mov al, [saved_file_name] |
|
- | 175 | or al, 20h |
|
- | 176 | cmp al, 'd' |
|
- | 177 | jz @f |
|
- | 178 | mov cl, edit.eol_mac |
|
- | 179 | cmp al, 'm' |
|
- | 180 | jz @f |
|
- | 181 | mov cl, edit.eol_unix |
|
- | 182 | @@: |
|
- | 183 | mov [EditEOLStyle], cl |
|
157 | mov ecx, 0x1000 |
184 | mov ecx, 0x1000 |
158 | call xpgalloc |
185 | call xpgalloc |
159 | test eax, eax |
186 | test eax, eax |
160 | jz .skip_assoc |
187 | jz .skip_assoc |
161 | mov [associations], eax |
188 | mov [associations], eax |
162 | push enum_associations_callback |
189 | push enum_associations_callback |
163 | push aAssociations |
190 | push aAssociations |
164 | push app_path |
191 | push app_path |
165 | call [ini.enum_keys] |
192 | call [ini.enum_keys] |
166 | .skip_assoc: |
193 | .skip_assoc: |
167 | xor ebp, ebp |
194 | xor ebp, ebp |
168 | xor esi, esi |
195 | xor esi, esi |
169 | .shortcut_loop: |
196 | .shortcut_loop: |
170 | mov edi, saved_file_name |
197 | mov edi, saved_file_name |
171 | push dword nullstr |
198 | push dword nullstr |
172 | push 512 |
199 | push 512 |
173 | push edi |
200 | push edi |
174 | push dword aShortcut |
201 | push dword aShortcut |
175 | push dword aFolderShortcuts |
202 | push dword aFolderShortcuts |
176 | push dword app_path |
203 | push dword app_path |
177 | call [ini.get_str] |
204 | call [ini.get_str] |
178 | cmp byte [edi], 0 |
205 | cmp byte [edi], 0 |
179 | jz .shortcut_cont |
206 | jz .shortcut_cont |
180 | or ecx, -1 |
207 | or ecx, -1 |
181 | xor eax, eax |
208 | xor eax, eax |
182 | repnz scasb |
209 | repnz scasb |
183 | not ecx |
210 | not ecx |
184 | cmp ecx, 2 |
211 | cmp ecx, 2 |
185 | jz @f |
212 | jz @f |
186 | cmp byte [edi-2], '/' |
213 | cmp byte [edi-2], '/' |
187 | jnz @f |
214 | jnz @f |
188 | mov byte [edi-2], 0 |
215 | mov byte [edi-2], 0 |
189 | dec ecx |
216 | dec ecx |
190 | @@: |
217 | @@: |
191 | mov al, [aShortcut.d] |
218 | mov al, [aShortcut.d] |
192 | push esi |
219 | push esi |
193 | inc esi |
220 | inc esi |
194 | mov [FolderShortcuts+(eax-'0')*4], esi |
221 | mov [FolderShortcuts+(eax-'0')*4], esi |
195 | lea esi, [esi+ecx-1] |
222 | lea esi, [esi+ecx-1] |
196 | push esi |
223 | push esi |
197 | and esi, 0xFFF |
224 | and esi, 0xFFF |
198 | cmp esi, ecx |
225 | cmp esi, ecx |
199 | pop esi |
226 | pop esi |
200 | ja .norealloc |
227 | ja .norealloc |
201 | mov edx, ebp |
228 | mov edx, ebp |
202 | mov ecx, esi |
229 | mov ecx, esi |
203 | call xpgrealloc |
230 | call xpgrealloc |
204 | test eax, eax |
231 | test eax, eax |
205 | jnz @f |
232 | jnz @f |
206 | pop esi |
233 | pop esi |
207 | mov edi, FolderShortcuts |
234 | mov edi, FolderShortcuts |
208 | mov ecx, 10 |
235 | mov ecx, 10 |
209 | rep stosd |
236 | rep stosd |
210 | jmp .skip_shortcuts |
237 | jmp .skip_shortcuts |
211 | @@: |
238 | @@: |
212 | mov ebp, eax |
239 | mov ebp, eax |
213 | .norealloc: |
240 | .norealloc: |
214 | pop edi |
241 | pop edi |
215 | add edi, ebp |
242 | add edi, ebp |
216 | mov ecx, saved_file_name |
243 | mov ecx, saved_file_name |
217 | @@: |
244 | @@: |
218 | mov al, [ecx] |
245 | mov al, [ecx] |
219 | inc ecx |
246 | inc ecx |
220 | stosb |
247 | stosb |
221 | test al, al |
248 | test al, al |
222 | jnz @b |
249 | jnz @b |
223 | .shortcut_cont: |
250 | .shortcut_cont: |
224 | inc [aShortcut.d] |
251 | inc [aShortcut.d] |
225 | cmp [aShortcut.d], '9' |
252 | cmp [aShortcut.d], '9' |
226 | jbe .shortcut_loop |
253 | jbe .shortcut_loop |
227 | mov esi, FolderShortcuts |
254 | mov esi, FolderShortcuts |
228 | mov ecx, 10 |
255 | mov ecx, 10 |
229 | dec ebp |
256 | dec ebp |
230 | .l3: |
257 | .l3: |
231 | lodsd |
258 | lodsd |
232 | test eax, eax |
259 | test eax, eax |
233 | jz @f |
260 | jz @f |
234 | add [esi-4], ebp |
261 | add [esi-4], ebp |
235 | @@: |
262 | @@: |
236 | loop .l3 |
263 | loop .l3 |
237 | .skip_shortcuts: |
264 | .skip_shortcuts: |
238 | ; load plugins |
265 | ; load plugins |
239 | push enum_plugins_callback |
266 | push enum_plugins_callback |
240 | push aPlugins |
267 | push aPlugins |
241 | push app_path |
268 | push app_path |
242 | call [ini.enum_keys] |
269 | call [ini.enum_keys] |
- | 270 | ; calculate info for editor |
|
- | 271 | xor ebx, ebx |
|
- | 272 | mov ecx, [num_plugins] |
|
- | 273 | mov esi, [plugins] |
|
- | 274 | @@: |
|
- | 275 | dec ecx |
|
- | 276 | js @f |
|
- | 277 | mov [esi+PluginInfo.EditInfoOffs], ebx |
|
- | 278 | add ebx, [esi+PluginInfo.EditInfoSize] |
|
- | 279 | jnc @f |
|
- | 280 | sbb ebx, ebx |
|
- | 281 | @@: |
|
- | 282 | ; ¯®áª®«ìªã à §¬¥à ¡«®ª ¢ । ªâ®à¥ ®£à ¨ç¥, â® ¨ à §¬¥à ¯ ¬ïâ¨, १¥à¢¨à㥬®© ¤«ï ¯« £¨®¢, ®£à ¨ç¥ |
|
- | 283 | ; 512 - £àã¡ ï ¢¥àåïï ®æ¥ª , £ à â¨àãîé ï à ¡®âã । ªâ®à , ॠ«ì® ¯« £¨ë ¤®«¦ë âॡ®¢ âì ¬¥ìè¥ |
|
- | 284 | cmp ebx, 512 |
|
- | 285 | jb @f |
|
- | 286 | or ebx, -1 |
|
- | 287 | mov [EditPlugInfo], ebx ; disable plugins for editor |
|
- | 288 | push ContinueBtn |
|
- | 289 | push 1 |
|
- | 290 | push EditConfigErr_ptr |
|
- | 291 | push 2 |
|
- | 292 | call SayErr |
|
- | 293 | @@: |
|
- | 294 | add ebx, 3 |
|
- | 295 | and ebx, not 3 |
|
- | 296 | mov [EditPlugInfo], ebx |
|
- | 297 | add ebx, editor_line.plugdata |
|
- | 298 | imul ebx, max_height |
|
- | 299 | add ebx, editor_data.basesize + 0xFFF |
|
- | 300 | shr ebx, 12 |
|
- | 301 | mov [EditDataSize], ebx |
|
243 | .noini: |
302 | .noini: |
244 | mov esi, def_left_dir |
303 | mov esi, def_left_dir |
245 | mov edi, panel1_dir |
304 | mov edi, panel1_dir |
246 | @@: |
305 | @@: |
247 | lodsb |
306 | lodsb |
248 | stosb |
307 | stosb |
249 | test al, al |
308 | test al, al |
250 | jnz @b |
309 | jnz @b |
251 | mov esi, def_right_dir |
310 | mov esi, def_right_dir |
252 | mov edi, panel2_dir |
311 | mov edi, panel2_dir |
253 | @@: |
312 | @@: |
254 | lodsb |
313 | lodsb |
255 | stosb |
314 | stosb |
256 | test al, al |
315 | test al, al |
257 | jnz @b |
316 | jnz @b |
258 | call draw_keybar |
317 | call draw_keybar |
259 | call draw_cmdbar |
318 | call draw_cmdbar |
260 | mov [prev_dir], 0 |
319 | mov [prev_dir], 0 |
261 | mov ebp, panel1_data |
320 | mov ebp, panel1_data |
262 | call calc_colwidths |
321 | call calc_colwidths |
263 | call read_folder |
322 | call read_folder |
264 | call draw_panel |
323 | call draw_panel |
265 | mov [bSilentFolderMode], 1 |
324 | mov [bSilentFolderMode], 1 |
266 | mov ebp, panel2_data |
325 | mov ebp, panel2_data |
267 | call calc_colwidths |
326 | call calc_colwidths |
268 | call read_folder |
327 | call read_folder |
269 | call draw_panel |
328 | call draw_panel |
270 | event: |
329 | event: |
271 | push 10 |
330 | push 10 |
272 | pop eax |
331 | pop eax |
273 | int 40h |
332 | int 40h |
274 | dec eax |
333 | dec eax |
275 | jz redraw |
334 | jz redraw |
276 | dec eax |
335 | dec eax |
277 | jz key |
336 | jz key |
278 | ; button - we have only one button, close |
337 | ; button - we have only one button, close |
279 | exit: |
338 | exit: |
280 | ; close all screens |
339 | ; close all screens |
281 | @@: |
340 | @@: |
282 | mov ecx, [num_screens] |
341 | mov ecx, [num_screens] |
283 | mov eax, [screens] |
342 | mov eax, [screens] |
284 | mov ebp, [eax+ecx*8-4] |
343 | mov ebp, [eax+ecx*8-4] |
285 | mov eax, [eax+ecx*8-8] |
344 | mov eax, [eax+ecx*8-8] |
286 | push ebp |
345 | push ebp |
287 | call [eax+screen_vtable.OnExit] |
346 | call [eax+screen_vtable.OnExit] |
288 | pop ecx |
347 | pop ecx |
289 | call pgfree |
348 | call pgfree |
290 | dec [num_screens] |
349 | dec [num_screens] |
291 | jnz @b |
350 | jnz @b |
292 | ; unload all plugins |
351 | ; unload all plugins |
293 | mov ecx, [num_plugins] |
352 | mov ecx, [num_plugins] |
294 | imul esi, ecx, PluginInfo.size |
353 | imul esi, ecx, PluginInfo.size |
295 | add esi, [plugins] |
354 | add esi, [plugins] |
296 | .unload: |
355 | .unload: |
297 | dec ecx |
356 | dec ecx |
298 | js .unload_done |
357 | js .unload_done |
299 | sub esi, PluginInfo.size |
358 | sub esi, PluginInfo.size |
300 | push ecx esi |
359 | push ecx esi |
301 | call [esi+PluginInfo.unload] |
360 | call [esi+PluginInfo.unload] |
302 | pop esi ecx |
361 | pop esi ecx |
303 | jmp .unload |
362 | jmp .unload |
304 | .unload_done: |
363 | .unload_done: |
305 | if 0 ; commented due to bug in libini |
364 | if 0 ; commented due to bug in libini |
306 | cmp [ini.set_int], aIniSetInt |
365 | cmp [ini.set_int], aIniSetInt |
307 | jz .nosave |
366 | jz .nosave |
308 | push [panel1_colmode] |
367 | push [panel1_colmode] |
309 | push aLeftViewMode |
368 | push aLeftViewMode |
310 | push aPanels |
369 | push aPanels |
311 | push app_path |
370 | push app_path |
312 | call [ini.set_int] |
371 | call [ini.set_int] |
313 | push [panel2_colmode] |
372 | push [panel2_colmode] |
314 | push aRightViewMode |
373 | push aRightViewMode |
315 | push aPanels |
374 | push aPanels |
316 | push app_path |
375 | push app_path |
317 | call [ini.set_int] |
376 | call [ini.set_int] |
318 | .nosave: |
377 | .nosave: |
319 | end if |
378 | end if |
320 | if CHECK_FOR_LEAKS |
379 | if CHECK_FOR_LEAKS |
321 | mov ecx, [panel1_files] |
380 | mov ecx, [panel1_files] |
322 | call pgfree |
381 | call pgfree |
323 | mov ecx, [panel2_files] |
382 | mov ecx, [panel2_files] |
324 | call pgfree |
383 | call pgfree |
325 | mov ecx, [screens] |
384 | mov ecx, [screens] |
326 | call pgfree |
385 | call pgfree |
327 | mov ecx, [associations] |
386 | mov ecx, [associations] |
328 | call pgfree |
387 | call pgfree |
329 | mov ecx, [console_data_ptr] |
388 | mov ecx, [console_data_ptr] |
330 | call pgfree |
389 | call pgfree |
331 | mov ecx, [MemForImage] |
390 | mov ecx, [MemForImage] |
332 | call pgfree |
391 | call pgfree |
333 | mov esi, FolderShortcuts |
392 | mov esi, FolderShortcuts |
334 | push 10 |
393 | push 10 |
335 | pop ecx |
394 | pop ecx |
336 | @@: |
395 | @@: |
337 | lodsd |
396 | lodsd |
338 | test eax, eax |
397 | test eax, eax |
339 | jnz @f |
398 | jnz @f |
340 | loop @b |
399 | loop @b |
341 | jmp .nofreefs |
400 | jmp .nofreefs |
342 | @@: |
401 | @@: |
343 | mov ecx, eax |
402 | mov ecx, eax |
344 | call pgfree |
403 | call pgfree |
345 | mov ecx, [plugins] |
404 | mov ecx, [plugins] |
346 | call pgfree |
405 | call pgfree |
347 | mov ecx, [panel1_parents] |
406 | mov ecx, [panel1_parents] |
348 | call pgfree |
407 | call pgfree |
349 | mov ecx, [panel2_parents] |
408 | mov ecx, [panel2_parents] |
350 | call pgfree |
409 | call pgfree |
351 | .nofreefs: |
410 | .nofreefs: |
352 | mov eax, [numallocatedregions] |
411 | mov eax, [numallocatedregions] |
353 | test eax, eax |
412 | test eax, eax |
354 | jz @f |
413 | jz @f |
355 | mov edi, allocatedregions |
414 | mov edi, allocatedregions |
356 | int3 |
415 | int3 |
357 | jmp $ |
416 | jmp $ |
358 | @@: |
417 | @@: |
359 | end if |
418 | end if |
360 | or eax, -1 |
419 | or eax, -1 |
361 | int 40h |
420 | int 40h |
362 | redraw: |
421 | redraw: |
363 | ; query kbd state from OS |
422 | ; query kbd state from OS |
364 | mov al, 66 |
423 | mov al, 66 |
365 | push 3 |
424 | push 3 |
366 | pop ebx |
425 | pop ebx |
367 | int 0x40 |
426 | int 0x40 |
368 | and eax, 0x3F |
427 | and eax, 0x3F |
369 | cmp al, [ctrlstate] |
428 | cmp al, [ctrlstate] |
370 | mov [ctrlstate], al |
429 | mov [ctrlstate], al |
371 | jz @f |
430 | jz @f |
372 | call draw_keybar |
431 | call draw_keybar |
373 | @@: |
432 | @@: |
374 | mov al, 9 |
433 | mov al, 9 |
375 | mov ebx, procinfo |
434 | mov ebx, procinfo |
376 | or ecx, -1 |
435 | or ecx, -1 |
377 | int 40h |
436 | int 40h |
378 | ; test if rolled up |
437 | ; test if rolled up |
379 | ; height of rolled up window is [skinh]+3 |
438 | ; height of rolled up window is [skinh]+3 |
380 | mov eax, [ebx+46] |
439 | mov eax, [ebx+46] |
381 | sub eax, [skinh] |
440 | sub eax, [skinh] |
382 | cmp eax, 5 |
441 | cmp eax, 5 |
383 | ja @f |
442 | ja @f |
384 | mov al, 12 |
443 | mov al, 12 |
385 | push 1 |
444 | push 1 |
386 | pop ebx |
445 | pop ebx |
387 | int 0x40 |
446 | int 0x40 |
388 | xor eax, eax |
447 | xor eax, eax |
389 | ; ebx, ecx, edi are ignored by function 0 after first redraw |
448 | ; ebx, ecx, edi are ignored by function 0 after first redraw |
390 | mov edx, 0x53000000 |
449 | mov edx, 0x53000000 |
391 | int 0x40 |
450 | int 0x40 |
392 | mov al, 12 |
451 | mov al, 12 |
393 | inc ebx |
452 | inc ebx |
394 | int 0x40 |
453 | int 0x40 |
395 | jmp event |
454 | jmp event |
396 | @@: |
455 | @@: |
397 | xor ecx, ecx |
456 | xor ecx, ecx |
398 | mov eax, [ebx+42] |
457 | mov eax, [ebx+42] |
399 | mov [wnd_width], eax |
458 | mov [wnd_width], eax |
400 | sub eax, 5*2-1 |
459 | sub eax, 5*2-1 |
401 | jae @f |
460 | jae @f |
402 | xor eax, eax |
461 | xor eax, eax |
403 | @@: |
462 | @@: |
404 | cdq |
463 | cdq |
405 | mov esi, font_width |
464 | mov esi, font_width |
406 | div esi |
465 | div esi |
407 | cmp eax, 54 |
466 | cmp eax, min_width |
408 | jae @f |
467 | jae @f |
409 | mov al, 54 |
468 | mov al, min_width |
410 | mov ch, 1 |
469 | mov ch, 1 |
411 | @@: |
470 | @@: |
412 | cmp eax, 255 |
471 | cmp eax, max_width |
413 | jbe @f |
472 | jbe @f |
414 | mov eax, 255 |
473 | mov eax, max_width |
415 | mov ch, 1 |
474 | mov ch, 1 |
416 | @@: |
475 | @@: |
417 | cmp eax, [cur_width] |
476 | cmp eax, [cur_width] |
418 | mov [cur_width], eax |
477 | mov [cur_width], eax |
419 | setnz cl |
478 | setnz cl |
420 | or cl, ch |
479 | or cl, ch |
421 | test edx, edx |
480 | test edx, edx |
422 | mov [fill_width], edx |
481 | mov [fill_width], edx |
423 | setnz ch |
482 | setnz ch |
424 | mov eax, [ebx+46] |
483 | mov eax, [ebx+46] |
425 | mov [wnd_height], eax |
484 | mov [wnd_height], eax |
426 | sub eax, [skinh] |
485 | sub eax, [skinh] |
427 | sub eax, 5-1 |
486 | sub eax, 5-1 |
428 | jns @f |
487 | jns @f |
429 | xor eax, eax |
488 | xor eax, eax |
430 | @@: |
489 | @@: |
431 | cdq |
490 | cdq |
432 | mov esi, font_height |
491 | mov esi, font_height |
433 | div esi |
492 | div esi |
434 | cmp eax, 8 |
493 | cmp eax, min_height |
435 | jae @f |
494 | jae @f |
436 | mov al, 8 |
495 | mov al, min_height |
437 | mov cl, 1 |
496 | mov cl, 1 |
438 | @@: |
497 | @@: |
439 | cmp eax, 255 |
498 | cmp eax, max_height |
440 | jbe @f |
499 | jbe @f |
441 | mov eax, 255 |
500 | mov eax, max_height |
442 | mov cl, 1 |
501 | mov cl, 1 |
443 | @@: |
502 | @@: |
444 | mov [fill_height], edx |
503 | mov [fill_height], edx |
445 | cmp eax, [cur_height] |
504 | cmp eax, [cur_height] |
446 | mov [cur_height], eax |
505 | mov [cur_height], eax |
447 | jnz .resize |
506 | jnz .resize |
448 | test cl, cl |
507 | test cl, cl |
449 | jnz .resize |
508 | jnz .resize |
450 | test edx, edx |
509 | test edx, edx |
451 | setnz cl |
510 | setnz cl |
452 | or cl, ch |
511 | or cl, ch |
453 | jz @f |
512 | jz @f |
454 | test byte [ebx+70], 1 |
513 | test byte [ebx+70], 1 |
455 | jnz @f |
514 | jnz @f |
456 | .resize: |
515 | .resize: |
457 | push 67 |
516 | push 67 |
458 | pop eax |
517 | pop eax |
459 | or ebx, -1 |
518 | or ebx, -1 |
460 | or ecx, -1 |
519 | or ecx, -1 |
461 | mov edx, [cur_width] |
520 | mov edx, [cur_width] |
462 | imul edx, font_width |
521 | imul edx, font_width |
463 | add edx, 5*2-1 |
522 | add edx, 5*2-1 |
464 | mov esi, [cur_height] |
523 | mov esi, [cur_height] |
465 | imul esi, font_height |
524 | imul esi, font_height |
466 | add esi, [skinh] |
525 | add esi, [skinh] |
467 | add esi, 5-1 |
526 | add esi, 5-1 |
468 | int 40h |
527 | int 40h |
469 | .resize_draw: |
528 | .resize_draw: |
470 | mov ecx, [MemForImage] |
529 | mov ecx, [MemForImage] |
471 | call pgfree |
530 | call pgfree |
472 | and [MemForImage], 0 |
531 | and [MemForImage], 0 |
473 | call init_console |
532 | call init_console |
474 | ; call draw_window |
533 | ; call draw_window |
475 | call draw_keybar |
534 | call draw_keybar |
476 | mov ebp, [active_screen_data] |
535 | mov ebp, [active_screen_data] |
477 | mov eax, [active_screen_vtable] |
536 | mov eax, [active_screen_vtable] |
- | 537 | mov [cursor_size], cursor_normal_size |
|
478 | call dword [eax+screen_vtable.OnRedraw] |
538 | call dword [eax+screen_vtable.OnRedraw] |
479 | jmp event |
539 | jmp event |
480 | @@: |
540 | @@: |
481 | call draw_window |
541 | call draw_window |
482 | jmp event |
542 | jmp event |
483 | alt_f9: |
543 | alt_f9: |
484 | cmp [saved_width], -1 |
544 | cmp [saved_width], -1 |
485 | jz @f |
545 | jz @f |
486 | mov eax, [saved_width] |
546 | mov eax, [saved_width] |
487 | mov [cur_width], eax |
547 | mov [cur_width], eax |
488 | or [saved_width], -1 |
548 | or [saved_width], -1 |
489 | mov eax, [saved_height] |
549 | mov eax, [saved_height] |
490 | mov [cur_height], eax |
550 | mov [cur_height], eax |
491 | or [saved_height], -1 |
551 | or [saved_height], -1 |
492 | jmp redraw.resize |
552 | jmp redraw.resize |
493 | @@: |
553 | @@: |
494 | push 48 |
554 | push 48 |
495 | pop eax |
555 | pop eax |
496 | push 5 |
556 | push 5 |
497 | pop ebx |
557 | pop ebx |
498 | int 0x40 |
558 | int 0x40 |
499 | push eax |
559 | push eax |
500 | sub eax, [esp+2] |
560 | sub eax, [esp+2] |
501 | inc eax |
561 | inc eax |
502 | movzx eax, ax |
562 | movzx eax, ax |
503 | sub eax, 10 |
563 | sub eax, 10 |
504 | xor edx, edx |
564 | xor edx, edx |
505 | mov ecx, font_width |
565 | mov ecx, font_width |
506 | div ecx |
566 | div ecx |
507 | xchg [cur_width], eax |
567 | xchg [cur_width], eax |
508 | mov [saved_width], eax |
568 | mov [saved_width], eax |
509 | mov eax, ebx |
569 | mov eax, ebx |
510 | shr ebx, 16 |
570 | shr ebx, 16 |
511 | sub eax, ebx |
571 | sub eax, ebx |
512 | sub eax, 5-1 |
572 | sub eax, 5-1 |
513 | sub eax, [skinh] |
573 | sub eax, [skinh] |
514 | xor edx, edx |
574 | xor edx, edx |
515 | mov ecx, font_height |
575 | mov ecx, font_height |
516 | div ecx |
576 | div ecx |
517 | xchg [cur_height], eax |
577 | xchg [cur_height], eax |
518 | mov [saved_height], eax |
578 | mov [saved_height], eax |
519 | mov ecx, ebx |
579 | mov ecx, ebx |
520 | pop ebx |
580 | pop ebx |
521 | shr ebx, 16 |
581 | shr ebx, 16 |
522 | mov edx, [cur_width] |
582 | mov edx, [cur_width] |
523 | imul edx, font_width |
583 | imul edx, font_width |
524 | add edx, 5*2-1 |
584 | add edx, 5*2-1 |
525 | mov esi, [cur_height] |
585 | mov esi, [cur_height] |
526 | imul esi, font_height |
586 | imul esi, font_height |
527 | add esi, [skinh] |
587 | add esi, [skinh] |
528 | add esi, 4 |
588 | add esi, 4 |
529 | push 67 |
589 | push 67 |
530 | pop eax |
590 | pop eax |
531 | int 0x40 |
591 | int 0x40 |
532 | jmp redraw.resize_draw |
592 | jmp redraw.resize_draw |
533 | key: |
593 | key: |
534 | mov al, 2 |
594 | mov al, 2 |
535 | int 40h |
595 | int 40h |
536 | test al, al |
596 | test al, al |
537 | jnz event |
597 | jnz event |
538 | xchg al, ah |
598 | xchg al, ah |
539 | cmp al, 0xE0 |
599 | cmp al, 0xE0 |
540 | jnz @f |
600 | jnz @f |
541 | mov [bWasE0], 1 |
601 | mov [bWasE0], 1 |
542 | jmp event |
602 | jmp event |
543 | @@: |
603 | @@: |
544 | xchg ah, [bWasE0] |
604 | xchg ah, [bWasE0] |
545 | mov ebp, [active_screen_data] |
605 | mov ebp, [active_screen_data] |
546 | mov edx, [active_screen_vtable] |
606 | mov edx, [active_screen_vtable] |
547 | cmp al, 0x1D |
607 | cmp al, 0x1D |
548 | jz .ctrl_down |
608 | jz .ctrl_down |
549 | cmp al, 0x9D |
609 | cmp al, 0x9D |
550 | jz .ctrl_up |
610 | jz .ctrl_up |
551 | cmp al, 0x2A |
611 | cmp al, 0x2A |
552 | jz .lshift_down |
612 | jz .lshift_down |
553 | cmp al, 0xAA |
613 | cmp al, 0xAA |
554 | jz .lshift_up |
614 | jz .lshift_up |
555 | cmp al, 0x36 |
615 | cmp al, 0x36 |
556 | jz .rshift_down |
616 | jz .rshift_down |
557 | cmp al, 0xB6 |
617 | cmp al, 0xB6 |
558 | jz .rshift_up |
618 | jz .rshift_up |
559 | cmp al, 0x38 |
619 | cmp al, 0x38 |
560 | jz .alt_down |
620 | jz .alt_down |
561 | cmp al, 0xB8 |
621 | cmp al, 0xB8 |
562 | jz .alt_up |
622 | jz .alt_up |
563 | call [edx+screen_vtable.OnKey] |
623 | call [edx+screen_vtable.OnKey] |
564 | jmp event |
624 | jmp event |
565 | .ctrl_down: |
625 | .ctrl_down: |
566 | test ah, ah |
626 | test ah, ah |
567 | jnz .rctrl_down |
627 | jnz .rctrl_down |
568 | or [ctrlstate], 4 |
628 | or [ctrlstate], 4 |
569 | jmp .keybar |
629 | jmp .keybar |
570 | .rctrl_down: |
630 | .rctrl_down: |
571 | or [ctrlstate], 8 |
631 | or [ctrlstate], 8 |
572 | jmp .keybar |
632 | jmp .keybar |
573 | .ctrl_up: |
633 | .ctrl_up: |
574 | test ah, ah |
634 | test ah, ah |
575 | jnz .rctrl_up |
635 | jnz .rctrl_up |
576 | and [ctrlstate], not 4 |
636 | and [ctrlstate], not 4 |
577 | jmp .keybar |
637 | jmp .keybar |
578 | .rctrl_up: |
638 | .rctrl_up: |
579 | and [ctrlstate], not 8 |
639 | and [ctrlstate], not 8 |
580 | .keybar: |
640 | .keybar: |
581 | call draw_keybar |
641 | call draw_keybar |
582 | call draw_image |
642 | call draw_image |
583 | @@: jmp event |
643 | @@: jmp event |
584 | .lshift_down: |
644 | .lshift_down: |
585 | ; ignore E0 2A sequence |
645 | ; ignore E0 2A sequence |
586 | ; e.g. arrow keys with NumLock on generate sequence E0 2A E0 xx / E0 xx+80 E0 AA |
646 | ; e.g. arrow keys with NumLock on generate sequence E0 2A E0 xx / E0 xx+80 E0 AA |
587 | ; where xx is scancode, so we can safely ignore E0 2A |
647 | ; where xx is scancode, so we can safely ignore E0 2A |
588 | test ah, ah |
648 | test ah, ah |
589 | jnz @b |
649 | jnz @b |
590 | or [ctrlstate], 1 |
650 | or [ctrlstate], 1 |
591 | jmp .keybar |
651 | jmp .keybar |
592 | .lshift_up: |
652 | .lshift_up: |
593 | ; ignore E0 AA sequence |
653 | ; ignore E0 AA sequence |
594 | test ah, ah |
654 | test ah, ah |
595 | jnz @b |
655 | jnz @b |
596 | and [ctrlstate], not 1 |
656 | and [ctrlstate], not 1 |
597 | jmp .keybar |
657 | jmp .keybar |
598 | .rshift_down: |
658 | .rshift_down: |
599 | or [ctrlstate], 2 |
659 | or [ctrlstate], 2 |
600 | jmp .keybar |
660 | jmp .keybar |
601 | .rshift_up: |
661 | .rshift_up: |
602 | and [ctrlstate], not 2 |
662 | and [ctrlstate], not 2 |
603 | jmp .keybar |
663 | jmp .keybar |
604 | .alt_down: |
664 | .alt_down: |
605 | test ah, ah |
665 | test ah, ah |
606 | jnz .ralt_down |
666 | jnz .ralt_down |
607 | or [ctrlstate], 0x10 |
667 | or [ctrlstate], 0x10 |
608 | jmp .keybar |
668 | jmp .keybar |
609 | .ralt_down: |
669 | .ralt_down: |
610 | or [ctrlstate], 0x20 |
670 | or [ctrlstate], 0x20 |
611 | jmp .keybar |
671 | jmp .keybar |
612 | .alt_up: |
672 | .alt_up: |
613 | test ah, ah |
673 | test ah, ah |
614 | jnz .ralt_up |
674 | jnz .ralt_up |
615 | and [ctrlstate], not 0x10 |
675 | and [ctrlstate], not 0x10 |
616 | jmp .keybar |
676 | jmp .keybar |
617 | .ralt_up: |
677 | .ralt_up: |
618 | and [ctrlstate], not 0x20 |
678 | and [ctrlstate], not 0x20 |
619 | jmp .keybar |
679 | jmp .keybar |
620 | 680 | ||
621 | process_ctrl_keys: |
681 | process_ctrl_keys: |
622 | cmp byte [esi], 0 |
682 | cmp byte [esi], 0 |
623 | jz .done |
683 | jz .done |
624 | push ecx |
684 | push ecx |
625 | cmp al, [esi] |
685 | cmp al, [esi] |
626 | jz .check |
686 | jz .check |
627 | .cont: |
687 | .cont: |
628 | pop ecx |
688 | pop ecx |
629 | add esi, 8 |
689 | add esi, 8 |
630 | jmp process_ctrl_keys |
690 | jmp process_ctrl_keys |
631 | .done: |
691 | .done: |
632 | stc |
692 | stc |
633 | ret |
693 | ret |
634 | .check: |
694 | .check: |
635 | mov cl, 0 |
695 | mov cl, 0 |
636 | call .check_ctrlkey |
696 | call .check_ctrlkey |
637 | jc .cont |
697 | jc .cont |
638 | mov cl, 2 |
698 | mov cl, 2 |
639 | call .check_ctrlkey |
699 | call .check_ctrlkey |
640 | jc .cont |
700 | jc .cont |
641 | mov cl, 4 |
701 | mov cl, 4 |
642 | call .check_ctrlkey |
702 | call .check_ctrlkey |
643 | jc .cont |
703 | jc .cont |
644 | pop ecx |
704 | pop ecx |
645 | call dword [esi+4] |
705 | call dword [esi+4] |
646 | clc |
706 | clc |
647 | ret |
707 | ret |
648 | .check_ctrlkey: |
708 | .check_ctrlkey: |
649 | push eax edx |
709 | push eax edx |
650 | movzx edx, [ctrlstate] |
710 | movzx edx, [ctrlstate] |
651 | shr edx, cl |
711 | shr edx, cl |
652 | add cl, cl |
712 | add cl, cl |
653 | movzx eax, word [esi+2] |
713 | movzx eax, word [esi+2] |
654 | shr eax, cl |
714 | shr eax, cl |
655 | and eax, 15 |
715 | and eax, 15 |
656 | cmp al, ctrlkey_tests_num |
716 | cmp al, ctrlkey_tests_num |
657 | jae .fail |
717 | jae .fail |
658 | xchg eax, edx |
718 | xchg eax, edx |
659 | and al, 3 |
719 | and al, 3 |
660 | call [ctrlkey_tests + edx*4] |
720 | call [ctrlkey_tests + edx*4] |
661 | cmp al, 1 |
721 | cmp al, 1 |
662 | pop edx eax |
722 | pop edx eax |
663 | ret |
723 | ret |
664 | .fail: |
724 | .fail: |
665 | stc |
725 | stc |
666 | pop edx eax |
726 | pop edx eax |
667 | ret |
727 | ret |
668 | 728 | ||
669 | ctrlkey_test0: |
729 | ctrlkey_test0: |
670 | test al, al |
730 | test al, al |
671 | setz al |
731 | setz al |
672 | ret |
732 | ret |
673 | ctrlkey_test1: |
733 | ctrlkey_test1: |
674 | test al, al |
734 | test al, al |
675 | setnp al |
735 | setnp al |
676 | ret |
736 | ret |
677 | ctrlkey_test2: |
737 | ctrlkey_test2: |
678 | cmp al, 3 |
738 | cmp al, 3 |
679 | setz al |
739 | setz al |
680 | ret |
740 | ret |
681 | ctrlkey_test3: |
741 | ctrlkey_test3: |
682 | cmp al, 1 |
742 | cmp al, 1 |
683 | setz al |
743 | setz al |
684 | ret |
744 | ret |
685 | ctrlkey_test4: |
745 | ctrlkey_test4: |
686 | cmp al, 2 |
746 | cmp al, 2 |
687 | setz al |
747 | setz al |
688 | ret |
748 | ret |
689 | 749 | ||
690 | enum_associations_callback: |
750 | enum_associations_callback: |
691 | ; LongBool __stdcall callback(f_name,sec_name,key_name); |
751 | ; LongBool __stdcall callback(f_name,sec_name,key_name); |
692 | ; [esp+4] = f_name, [esp+8] = sec_name, [esp+12] = key_name |
752 | ; [esp+4] = f_name, [esp+8] = sec_name, [esp+12] = key_name |
693 | mov esi, [esp+12] |
753 | mov esi, [esp+12] |
694 | mov edi, esi |
754 | mov edi, esi |
695 | @@: |
755 | @@: |
696 | lodsb |
756 | lodsb |
697 | test al, al |
757 | test al, al |
698 | jnz @b |
758 | jnz @b |
699 | sub esi, edi ; esi = size of key name |
759 | sub esi, edi ; esi = size of key name |
700 | push nullstr |
760 | push nullstr |
701 | push 1024 |
761 | push 1024 |
702 | push saved_file_name |
762 | push saved_file_name |
703 | push edi |
763 | push edi |
704 | push dword [esp+16+8] |
764 | push dword [esp+16+8] |
705 | push dword [esp+20+4] |
765 | push dword [esp+20+4] |
706 | call [ini.get_str] |
766 | call [ini.get_str] |
707 | test eax, eax |
767 | test eax, eax |
708 | jnz .ret |
768 | jnz .ret |
709 | mov eax, saved_file_name |
769 | mov eax, saved_file_name |
710 | @@: |
770 | @@: |
711 | inc esi |
771 | inc esi |
712 | inc eax |
772 | inc eax |
713 | cmp byte [eax-1], 0 |
773 | cmp byte [eax-1], 0 |
714 | jnz @b |
774 | jnz @b |
715 | ; esi = total size of entry |
775 | ; esi = total size of entry |
716 | push esi |
776 | push esi |
717 | add esi, [associations_size] |
777 | add esi, [associations_size] |
718 | mov ecx, [associations_allocated] |
778 | mov ecx, [associations_allocated] |
719 | @@: |
779 | @@: |
720 | cmp esi, ecx |
780 | cmp esi, ecx |
721 | jbe @f |
781 | jbe @f |
722 | add ecx, ecx |
782 | add ecx, ecx |
723 | jmp @b |
783 | jmp @b |
724 | @@: |
784 | @@: |
725 | pop esi |
785 | pop esi |
726 | cmp [associations_allocated], ecx |
786 | cmp [associations_allocated], ecx |
727 | jz @f |
787 | jz @f |
728 | mov [associations_allocated], ecx |
788 | mov [associations_allocated], ecx |
729 | mov edx, [associations] |
789 | mov edx, [associations] |
730 | call xpgrealloc |
790 | call xpgrealloc |
731 | mov [associations], eax |
791 | mov [associations], eax |
732 | test eax, eax |
792 | test eax, eax |
733 | jz .err |
793 | jz .err |
734 | @@: |
794 | @@: |
735 | mov eax, esi |
795 | mov eax, esi |
736 | mov esi, edi |
796 | mov esi, edi |
737 | mov edi, [associations] |
797 | mov edi, [associations] |
738 | add edi, [associations_size] |
798 | add edi, [associations_size] |
739 | dec edi |
799 | dec edi |
740 | add [associations_size], eax |
800 | add [associations_size], eax |
741 | @@: |
801 | @@: |
742 | lodsb |
802 | lodsb |
743 | stosb |
803 | stosb |
744 | test al, al |
804 | test al, al |
745 | jnz @b |
805 | jnz @b |
746 | mov esi, saved_file_name |
806 | mov esi, saved_file_name |
747 | @@: |
807 | @@: |
748 | lodsb |
808 | lodsb |
749 | stosb |
809 | stosb |
750 | test al, al |
810 | test al, al |
751 | jnz @b |
811 | jnz @b |
752 | .ret: |
812 | .ret: |
753 | mov al, 1 |
813 | mov al, 1 |
754 | ret 12 |
814 | ret 12 |
755 | .err: |
815 | .err: |
756 | mov ecx, edx |
816 | mov ecx, edx |
757 | call pgfree |
817 | call pgfree |
758 | xor eax, eax |
818 | xor eax, eax |
759 | ret 12 |
819 | ret 12 |
760 | 820 | ||
761 | enum_plugins_callback: |
821 | enum_plugins_callback: |
762 | ; LongBool __stdcall callback(f_name,sec_name,key_name); |
822 | ; LongBool __stdcall callback(f_name,sec_name,key_name); |
763 | ; [esp+4] = f_name, [esp+8] = sec_name, [esp+12] = key_name |
823 | ; [esp+4] = f_name, [esp+8] = sec_name, [esp+12] = key_name |
764 | push nullstr |
824 | push nullstr |
765 | push 1024 |
825 | push 1024 |
766 | push saved_file_name |
826 | push saved_file_name |
767 | push dword [esp+12+12] |
827 | push dword [esp+12+12] |
768 | push dword [esp+16+8] |
828 | push dword [esp+16+8] |
769 | push dword [esp+20+4] |
829 | push dword [esp+20+4] |
770 | call [ini.get_str] |
830 | call [ini.get_str] |
771 | test eax, eax |
831 | test eax, eax |
772 | jnz .ret |
832 | jnz .ret |
773 | mov esi, saved_file_name |
833 | mov esi, saved_file_name |
774 | cmp byte [esi], '/' |
834 | cmp byte [esi], '/' |
775 | jz .absolute |
835 | jz .absolute |
776 | ; convert path to absolute |
836 | ; convert path to absolute |
777 | mov edi, execdata |
837 | mov edi, execdata |
778 | push esi |
838 | push esi |
779 | @@: |
839 | @@: |
780 | lodsb |
840 | lodsb |
781 | stosb |
841 | stosb |
782 | test al, al |
842 | test al, al |
783 | jnz @b |
843 | jnz @b |
784 | pop edi |
844 | pop edi |
785 | mov esi, app_path |
845 | mov esi, app_path |
786 | push esi |
846 | push esi |
787 | xor ecx, ecx |
847 | xor ecx, ecx |
788 | @@: |
848 | @@: |
789 | lodsb |
849 | lodsb |
790 | test al, al |
850 | test al, al |
791 | jz @f |
851 | jz @f |
792 | cmp al, '/' |
852 | cmp al, '/' |
793 | jnz @b |
853 | jnz @b |
794 | mov ecx, esi |
854 | mov ecx, esi |
795 | jmp @b |
855 | jmp @b |
796 | @@: |
856 | @@: |
797 | pop esi |
857 | pop esi |
798 | sub ecx, esi |
858 | sub ecx, esi |
799 | rep movsb |
859 | rep movsb |
800 | mov esi, execdata |
860 | mov esi, execdata |
801 | .z: |
861 | .z: |
802 | cmp word [esi], '.' |
862 | cmp word [esi], '.' |
803 | jz .ret |
863 | jz .ret |
804 | cmp word [esi], './' |
864 | cmp word [esi], './' |
805 | jnz @f |
865 | jnz @f |
806 | add esi, 2 |
866 | add esi, 2 |
807 | jmp .z |
867 | jmp .z |
808 | @@: |
868 | @@: |
809 | cmp word [esi], '..' |
869 | cmp word [esi], '..' |
810 | jnz .c |
870 | jnz .c |
811 | cmp byte [esi+2], 0 |
871 | cmp byte [esi+2], 0 |
812 | jz .ret |
872 | jz .ret |
813 | cmp byte [esi+2], '/' |
873 | cmp byte [esi+2], '/' |
814 | jnz .c |
874 | jnz .c |
815 | add esi, 3 |
875 | add esi, 3 |
816 | @@: |
876 | @@: |
817 | dec edi |
877 | dec edi |
818 | cmp edi, saved_file_name |
878 | cmp edi, saved_file_name |
819 | jbe .ret |
879 | jbe .ret |
820 | cmp byte [edi-1], '/' |
880 | cmp byte [edi-1], '/' |
821 | jnz @b |
881 | jnz @b |
822 | jmp .z |
882 | jmp .z |
823 | .c: |
883 | .c: |
824 | lodsb |
884 | lodsb |
825 | stosb |
885 | stosb |
826 | test al, al |
886 | test al, al |
827 | jz @f |
887 | jz @f |
828 | cmp edi, saved_file_name+1024 |
888 | cmp edi, saved_file_name+1024 |
829 | jb .c |
889 | jb .c |
830 | mov esi, execdata |
890 | mov esi, execdata |
831 | call load_dll_and_import.big |
891 | call load_dll_and_import.big |
832 | .ret: |
892 | .ret: |
833 | mov al, 1 |
893 | mov al, 1 |
834 | ret 12 |
894 | ret 12 |
835 | @@: |
895 | @@: |
836 | .absolute: |
896 | .absolute: |
837 | ; allocate space for plugin info |
897 | ; allocate space for plugin info |
838 | mov eax, [num_plugins] |
898 | mov eax, [num_plugins] |
839 | inc eax |
899 | inc eax |
840 | mov [num_plugins], eax |
900 | mov [num_plugins], eax |
841 | imul ecx, eax, PluginInfo.size |
901 | imul ecx, eax, PluginInfo.size |
842 | cmp ecx, [alloc_plugins] |
902 | cmp ecx, [alloc_plugins] |
843 | jbe .norealloc |
903 | jbe .norealloc |
844 | mov edx, [plugins] |
904 | mov edx, [plugins] |
845 | call xpgrealloc |
905 | call xpgrealloc |
846 | test eax, eax |
906 | test eax, eax |
847 | jnz @f |
907 | jnz @f |
848 | .dec_ret: |
908 | .dec_ret: |
849 | dec [num_plugins] |
909 | dec [num_plugins] |
850 | jmp .ret |
910 | jmp .ret |
851 | @@: |
911 | @@: |
852 | mov [plugins], eax |
912 | mov [plugins], eax |
853 | lea eax, [ecx+0xFFF] |
913 | lea eax, [ecx+0xFFF] |
854 | and eax, not 0xFFF |
914 | and eax, not 0xFFF |
855 | mov [alloc_plugins], eax |
915 | mov [alloc_plugins], eax |
856 | .norealloc: |
916 | .norealloc: |
857 | mov esi, [plugins] |
917 | mov esi, [plugins] |
858 | lea esi, [esi+ecx-PluginInfo.size] |
918 | lea esi, [esi+ecx-PluginInfo.size] |
859 | ; load plugin DLL |
919 | ; load plugin DLL |
860 | or ebp, -1 |
920 | or ebp, -1 |
861 | mov eax, saved_file_name |
921 | mov eax, saved_file_name |
862 | call load_dll_and_import.do |
922 | call load_dll_and_import.do |
863 | test eax, eax |
923 | test eax, eax |
864 | jnz .dec_ret |
924 | jnz .dec_ret |
865 | ; find exported functions |
925 | ; find exported functions |
866 | mov eax, aVersion |
926 | mov eax, aVersion |
867 | call load_dll_and_import.find_exported_function |
927 | call load_dll_and_import.find_exported_function |
868 | jnc @f |
928 | jnc @f |
869 | xor eax, eax |
929 | xor eax, eax |
870 | @@: |
930 | @@: |
871 | MIN_INTERFACE_VER = 2 |
931 | MIN_INTERFACE_VER = 3 |
872 | MAX_INTERFACE_VER = 2 |
932 | MAX_INTERFACE_VER = 3 |
873 | cmp eax, MIN_INTERFACE_VER |
933 | cmp eax, MIN_INTERFACE_VER |
874 | jb @f |
934 | jb @f |
875 | cmp eax, MAX_INTERFACE_VER |
935 | cmp eax, MAX_INTERFACE_VER |
876 | jbe .version_ok |
936 | jbe .version_ok |
877 | @@: |
937 | @@: |
878 | push aIncompatibleVersion |
938 | push aIncompatibleVersion |
879 | .cantload: |
939 | .cantload: |
880 | push saved_file_name |
940 | push saved_file_name |
881 | push aCannotLoadPlugin |
941 | push aCannotLoadPlugin |
882 | mov eax, esp |
942 | mov eax, esp |
883 | push ContinueBtn |
943 | push ContinueBtn |
884 | push 1 |
944 | push 1 |
885 | push eax |
945 | push eax |
886 | push 3 |
946 | push 3 |
887 | call SayErr |
947 | call SayErr |
888 | add esp, 12 |
948 | add esp, 12 |
889 | jmp .dec_ret |
949 | jmp .dec_ret |
890 | .version_ok: |
950 | .version_ok: |
891 | mov edi, esi |
951 | mov edi, esi |
892 | mov esi, plugin_exported |
952 | mov esi, plugin_exported |
893 | .import: |
953 | .import: |
894 | lodsd |
954 | lodsd |
895 | test eax, eax |
955 | test eax, eax |
896 | jz .import_done |
956 | jz .import_done |
897 | call load_dll_and_import.find_exported_function |
957 | call load_dll_and_import.find_exported_function |
898 | jnc @f |
958 | jnc @f |
899 | mov eax, [esi-4+plugin_exported_default-plugin_exported] |
959 | mov eax, [esi-4+plugin_exported_default-plugin_exported] |
900 | @@: |
960 | @@: |
901 | stosd |
961 | stosd |
902 | jmp .import |
962 | jmp .import |
903 | .import_done: |
963 | .import_done: |
904 | ; initialize plugin |
964 | ; initialize plugin |
905 | mov eax, aPluginLoad |
965 | mov eax, aPluginLoad |
906 | call load_dll_and_import.find_exported_function |
966 | call load_dll_and_import.find_exported_function |
907 | jc .ok |
967 | jc .ok |
908 | push kfar_info |
968 | push kfar_info |
909 | call eax |
969 | call eax |
910 | cmp eax, 1 |
970 | cmp eax, 1 |
911 | jb .ok |
971 | jb .ok |
912 | ja .dec_ret |
972 | ja .dec_ret |
913 | push aInitFailed |
973 | push aInitFailed |
914 | jmp .cantload |
974 | jmp .cantload |
915 | .ok: |
975 | .ok: |
916 | mov al, 1 |
976 | mov al, 1 |
917 | ret 12 |
977 | ret 12 |
918 | 978 | ||
919 | plugin_unload_default: |
979 | plugin_unload_default: |
920 | ret |
980 | ret |
921 | 981 | ||
922 | OpenFilePlugin_default: |
982 | OpenFilePlugin_default: |
923 | xor eax, eax |
983 | xor eax, eax |
924 | ret 28 |
984 | ret 28 |
925 | GetFiles_default: |
985 | GetFiles_default: |
926 | xor eax, eax |
986 | xor eax, eax |
927 | ret 20 |
987 | ret 20 |
928 | 988 | ||
929 | ClosePlugin_default: |
989 | ClosePlugin_default: |
930 | ret 4 |
990 | ret 4 |
931 | 991 | ||
932 | GetOpenPluginInfo_default: |
992 | GetOpenPluginInfo_default: |
933 | ret 8 |
993 | ret 8 |
934 | 994 | ||
935 | SetFolder_default: |
995 | SetFolder_default: |
936 | open_default: |
996 | open_default: |
937 | xor eax, eax |
997 | xor eax, eax |
938 | ret 12 |
998 | ret 12 |
939 | 999 | ||
940 | new_screen: |
1000 | new_screen: |
941 | ; in: ecx=sizeof(screen data), edx->vtable |
1001 | ; in: ecx=sizeof(screen data), edx->vtable |
942 | ; out: ebp=pointer or NULL, eax!=0 if successful |
1002 | ; out: ebp=pointer or NULL, eax!=0 if successful |
943 | ; destroys ebx,ecx |
1003 | ; destroys ebx,ecx |
944 | call xpgalloc |
1004 | call xpgalloc |
945 | test eax, eax |
1005 | test eax, eax |
946 | jnz @f |
1006 | jnz @f |
947 | ret |
1007 | ret |
948 | @@: |
1008 | @@: |
949 | mov ebp, eax |
1009 | mov ebp, eax |
950 | mov eax, [screens] |
1010 | mov eax, [screens] |
951 | mov ecx, [num_screens] |
1011 | mov ecx, [num_screens] |
952 | inc ecx |
1012 | inc ecx |
953 | shl ecx, 3 |
1013 | shl ecx, 3 |
954 | test ecx, 0xFFF |
1014 | test ecx, 0xFFF |
955 | jnz .norealloc |
1015 | jnz .norealloc |
956 | push edx |
1016 | push edx |
957 | mov edx, eax |
1017 | mov edx, eax |
958 | call xpgrealloc |
1018 | call xpgrealloc |
959 | pop edx |
1019 | pop edx |
960 | test eax, eax |
1020 | test eax, eax |
961 | jnz @f |
1021 | jnz @f |
962 | mov ecx, ebp |
1022 | mov ecx, ebp |
963 | call pgfree |
1023 | call pgfree |
964 | xor eax, eax |
1024 | xor eax, eax |
965 | ret |
1025 | ret |
966 | @@: |
1026 | @@: |
967 | mov [screens], eax |
1027 | mov [screens], eax |
968 | .norealloc: |
1028 | .norealloc: |
969 | inc [num_screens] |
1029 | inc [num_screens] |
970 | mov [eax+ecx-8], edx |
1030 | mov [eax+ecx-8], edx |
971 | mov [eax+ecx-4], ebp |
1031 | mov [eax+ecx-4], ebp |
972 | mov eax, [num_screens] |
1032 | mov eax, [num_screens] |
973 | dec eax |
1033 | dec eax |
974 | mov [active_screen], eax |
1034 | mov [active_screen], eax |
975 | mov [active_screen_vtable], edx |
1035 | mov [active_screen_vtable], edx |
976 | mov [active_screen_data], ebp |
1036 | mov [active_screen_data], ebp |
977 | jmp draw_keybar |
1037 | jmp draw_keybar |
978 | 1038 | ||
979 | next_screen: |
1039 | next_screen: |
980 | mov eax, [active_screen] |
1040 | mov eax, [active_screen] |
981 | inc eax |
1041 | inc eax |
982 | cmp eax, [num_screens] |
1042 | cmp eax, [num_screens] |
983 | jnz @f |
1043 | jnz @f |
984 | xor eax, eax |
1044 | xor eax, eax |
985 | @@: mov [active_screen], eax |
1045 | @@: mov [active_screen], eax |
986 | jmp change_screen |
1046 | jmp change_screen |
987 | 1047 | ||
988 | delete_active_screen: |
1048 | delete_active_screen: |
989 | mov edi, [screens] |
1049 | mov edi, [screens] |
990 | mov eax, [active_screen] |
1050 | mov eax, [active_screen] |
991 | shl eax, 3 |
1051 | shl eax, 3 |
992 | add edi, eax |
1052 | add edi, eax |
993 | push dword [edi+4] |
1053 | push dword [edi+4] |
994 | lea esi, [edi+8] |
1054 | lea esi, [edi+8] |
995 | mov ecx, [num_screens] |
1055 | mov ecx, [num_screens] |
996 | sub ecx, [active_screen] |
1056 | sub ecx, [active_screen] |
997 | dec ecx |
1057 | dec ecx |
998 | add ecx, ecx |
1058 | add ecx, ecx |
999 | rep movsd |
1059 | rep movsd |
1000 | dec [num_screens] |
1060 | dec [num_screens] |
1001 | mov ecx, [num_screens] |
1061 | mov ecx, [num_screens] |
1002 | shl ecx, 3 |
1062 | shl ecx, 3 |
1003 | test ecx, 0xFFF |
1063 | test ecx, 0xFFF |
1004 | jnz .norealloc |
1064 | jnz .norealloc |
1005 | mov edx, [screens] |
1065 | mov edx, [screens] |
1006 | call pgrealloc ; must succeed, because we decrease size |
1066 | call pgrealloc ; must succeed, because we decrease size |
1007 | mov [screens], eax |
1067 | mov [screens], eax |
1008 | .norealloc: |
1068 | .norealloc: |
1009 | pop ecx |
1069 | pop ecx |
1010 | call pgfree |
1070 | call pgfree |
1011 | and [active_screen], 0 |
1071 | and [active_screen], 0 |
1012 | 1072 | ||
1013 | change_screen: |
1073 | change_screen: |
1014 | pusha |
1074 | pusha |
1015 | mov eax, [active_screen] |
1075 | mov eax, [active_screen] |
1016 | mov esi, [screens] |
1076 | mov esi, [screens] |
1017 | mov ebp, [esi+eax*8+4] |
1077 | mov ebp, [esi+eax*8+4] |
1018 | mov eax, [esi+eax*8] |
1078 | mov eax, [esi+eax*8] |
1019 | mov [active_screen_vtable], eax |
1079 | mov [active_screen_vtable], eax |
1020 | mov [active_screen_data], ebp |
1080 | mov [active_screen_data], ebp |
1021 | call draw_keybar |
1081 | call draw_keybar |
- | 1082 | mov [cursor_size], cursor_normal_size |
|
1022 | call [eax+screen_vtable.OnRedraw] |
1083 | call [eax+screen_vtable.OnRedraw] |
1023 | popa |
1084 | popa |
1024 | ret |
1085 | ret |
1025 | 1086 | ||
1026 | F12: |
1087 | F12: |
1027 | mov eax, [cur_width] |
1088 | mov eax, [cur_width] |
1028 | add eax, 8 |
1089 | add eax, 8 |
1029 | mov esi, eax |
1090 | mov esi, eax |
1030 | mul [num_screens] |
1091 | mul [num_screens] |
1031 | mov ecx, eax |
1092 | mov ecx, eax |
1032 | call xpgalloc |
1093 | call xpgalloc |
1033 | test eax, eax |
1094 | test eax, eax |
1034 | jnz @f |
1095 | jnz @f |
1035 | ret |
1096 | ret |
1036 | @@: |
1097 | @@: |
1037 | mov ebx, eax |
1098 | mov ebx, eax |
1038 | mov edi, eax |
1099 | mov edi, eax |
1039 | xor ecx, ecx |
1100 | xor ecx, ecx |
1040 | .next: |
1101 | .next: |
1041 | xor eax, eax |
1102 | xor eax, eax |
1042 | stosd |
1103 | stosd |
1043 | inc ecx |
1104 | inc ecx |
1044 | cmp ecx, [num_screens] |
1105 | cmp ecx, [num_screens] |
1045 | jz @f |
1106 | jz @f |
1046 | lea eax, [edi+esi-4] |
1107 | lea eax, [edi+esi-4] |
1047 | mov dword [edi-4], eax |
1108 | mov dword [edi-4], eax |
1048 | @@: |
1109 | @@: |
1049 | xor eax, eax |
1110 | xor eax, eax |
1050 | stosd |
1111 | stosd |
1051 | dec ecx |
1112 | dec ecx |
1052 | jz @f |
1113 | jz @f |
1053 | lea eax, [edi-8] |
1114 | lea eax, [edi-8] |
1054 | sub eax, esi |
1115 | sub eax, esi |
1055 | mov dword [edi-4], eax |
1116 | mov dword [edi-4], eax |
1056 | @@: |
1117 | @@: |
1057 | mov al, '&' |
1118 | mov al, '&' |
1058 | stosb |
1119 | stosb |
1059 | cmp ecx, 36 |
1120 | cmp ecx, 36 |
1060 | jae .noletter |
1121 | jae .noletter |
1061 | lea eax, [ecx+'0'] |
1122 | lea eax, [ecx+'0'] |
1062 | cmp al, '9' |
1123 | cmp al, '9' |
1063 | jbe @f |
1124 | jbe @f |
1064 | add al, 7 |
1125 | add al, 7 |
1065 | @@: |
1126 | @@: |
1066 | stosb |
1127 | stosb |
1067 | mov al, '.' |
1128 | mov al, '.' |
1068 | stosb |
1129 | stosb |
1069 | jmp .letter_done |
1130 | jmp .letter_done |
1070 | .noletter: |
1131 | .noletter: |
1071 | mov al, ' ' |
1132 | mov al, ' ' |
1072 | stosb |
1133 | stosb |
1073 | stosb |
1134 | stosb |
1074 | .letter_done: |
1135 | .letter_done: |
1075 | mov al, ' ' |
1136 | mov al, ' ' |
1076 | stosb |
1137 | stosb |
1077 | pushad |
1138 | pushad |
1078 | mov eax, [screens] |
1139 | mov eax, [screens] |
1079 | mov ebp, [eax+ecx*8+4] |
1140 | mov ebp, [eax+ecx*8+4] |
1080 | mov eax, [eax+ecx*8] |
1141 | mov eax, [eax+ecx*8] |
1081 | mov ecx, [cur_width] |
1142 | mov ecx, [cur_width] |
1082 | sub ecx, 12 |
1143 | sub ecx, 12 |
1083 | call [eax + screen_vtable.getname] |
1144 | call [eax + screen_vtable.getname] |
1084 | popad |
1145 | popad |
1085 | sub edi, 4 |
1146 | sub edi, 4 |
1086 | add edi, [cur_width] |
1147 | add edi, [cur_width] |
1087 | inc ecx |
1148 | inc ecx |
1088 | cmp ecx, [num_screens] |
1149 | cmp ecx, [num_screens] |
1089 | jb .next |
1150 | jb .next |
1090 | mov eax, [active_screen] |
1151 | mov eax, [active_screen] |
1091 | mul esi |
1152 | mul esi |
1092 | add eax, ebx |
1153 | add eax, ebx |
1093 | push 1 |
1154 | push 1 |
1094 | push dword aScreens |
1155 | push dword aScreens |
1095 | push eax |
1156 | push eax |
1096 | call menu |
1157 | call menu |
1097 | cmp eax, -1 |
1158 | cmp eax, -1 |
1098 | jz @f |
1159 | jz @f |
1099 | sub eax, ebx |
1160 | sub eax, ebx |
1100 | div esi |
1161 | div esi |
1101 | mov [active_screen], eax |
1162 | mov [active_screen], eax |
1102 | @@: |
1163 | @@: |
1103 | mov ecx, ebx |
1164 | mov ecx, ebx |
1104 | call pgfree |
1165 | call pgfree |
1105 | jmp change_screen |
1166 | jmp change_screen |
1106 | 1167 | ||
1107 | panels_OnKey: |
1168 | panels_OnKey: |
- | 1169 | ; restore screen hidden by quick search box |
|
- | 1170 | cmp [bDisplayQuickSearch], 0 |
|
- | 1171 | jz @f |
|
- | 1172 | mov [bDisplayQuickSearch], 0 |
|
- | 1173 | push 0 |
|
- | 1174 | push QuickSearchDlg |
|
- | 1175 | call HideDialogBox |
|
- | 1176 | @@: |
|
1108 | mov ebp, [active_panel] |
1177 | mov ebp, [active_panel] |
1109 | mov ecx, [ebp + panel1_index - panel1_data] |
1178 | mov ecx, [ebp + panel1_index - panel1_data] |
1110 | mov edx, [ebp + panel1_start - panel1_data] |
1179 | mov edx, [ebp + panel1_start - panel1_data] |
1111 | mov ebx, [ebp + panel1_colst - panel1_data] |
1180 | mov ebx, [ebp + panel1_colst - panel1_data] |
1112 | add ebx, edx |
1181 | add ebx, edx |
1113 | mov esi, panels_ctrlkeys |
1182 | mov esi, panels_ctrlkeys |
1114 | jmp process_ctrl_keys |
1183 | call process_ctrl_keys |
- | 1184 | jc .nostdkey |
|
- | 1185 | mov [bQuickSearchMode], 0 |
|
- | 1186 | ret |
|
- | 1187 | .leaveqsmode: |
|
- | 1188 | mov [bQuickSearchMode], 0 |
|
- | 1189 | call draw_image |
|
- | 1190 | ret |
|
- | 1191 | .keepqsmode: |
|
- | 1192 | push QuickSearchDlg |
|
- | 1193 | call ShowDialogBox |
|
- | 1194 | mov [bDisplayQuickSearch], 1 |
|
- | 1195 | ret |
|
- | 1196 | .nostdkey: |
|
- | 1197 | cmp [bQuickSearchMode], 0 |
|
- | 1198 | jz .noqsmode |
|
- | 1199 | test al, al |
|
- | 1200 | js .keepqsmode |
|
- | 1201 | cmp al, 40h |
|
- | 1202 | jae .leaveqsmode |
|
- | 1203 | cmp al, 0Eh |
|
- | 1204 | jz .qsbackspace |
|
- | 1205 | cmp al, 1Ch |
|
- | 1206 | jz .test_enter |
|
- | 1207 | movzx eax, al |
|
- | 1208 | cmp byte [scan2ascii+eax], 0 |
|
- | 1209 | jz .leaveqsmode |
|
- | 1210 | call get_ascii_char |
|
- | 1211 | mov ecx, dword [quick_search_buf + 4] |
|
- | 1212 | cmp ecx, quicksearch_maxlen |
|
- | 1213 | jae .keepqsmode |
|
- | 1214 | mov byte [quick_search_buf + 12 + ecx], al |
|
- | 1215 | mov byte [quick_search_buf + 12 + ecx + 1], 0 |
|
- | 1216 | push ecx |
|
- | 1217 | call quick_find |
|
- | 1218 | pop ecx |
|
- | 1219 | jnc @f |
|
- | 1220 | mov byte [quick_search_buf + 12 + ecx], 0 |
|
- | 1221 | jmp .keepqsmode |
|
- | 1222 | @@: |
|
- | 1223 | inc dword [quick_search_buf + 4] |
|
- | 1224 | sub ecx, 16 |
|
- | 1225 | jae @f |
|
- | 1226 | xor ecx, ecx |
|
- | 1227 | @@: |
|
- | 1228 | mov dword [quick_search_buf + 8], ecx |
|
- | 1229 | jmp .keepqsmode |
|
- | 1230 | .qsbackspace: |
|
- | 1231 | mov ecx, dword [quick_search_buf + 4] |
|
- | 1232 | jecxz .keepqsmode2 |
|
- | 1233 | dec ecx |
|
- | 1234 | mov byte [quick_search_buf + 12 + ecx], 0 |
|
- | 1235 | dec dword [quick_search_buf + 4] |
|
- | 1236 | .keepqsmode2: |
|
- | 1237 | jmp .keepqsmode |
|
- | 1238 | .test_enter: |
|
- | 1239 | test [ctrlstate], 0Ch ; LCtrl or RCtrl pressed? |
|
- | 1240 | jz .keepqsmode2 |
|
- | 1241 | test [ctrlstate], 3 ; Shift pressed? |
|
- | 1242 | jnz @f |
|
- | 1243 | call quick_find_next |
|
- | 1244 | jmp .keepqsmode2 |
|
- | 1245 | @@: |
|
- | 1246 | call quick_find_prev |
|
- | 1247 | jmp .keepqsmode2 |
|
- | 1248 | .noqsmode: |
|
- | 1249 | ; handle Alt+ |
|
- | 1250 | test [ctrlstate], 30h ; LAlt or RAlt pressed? |
|
- | 1251 | jz .noalt ; no => skip |
|
- | 1252 | test [ctrlstate], 0Ch ; LCtrl or RCtrl pressed? |
|
- | 1253 | jnz .noalt ; yes => skip |
|
- | 1254 | cmp al, 40h |
|
- | 1255 | jae .noalt |
|
- | 1256 | movzx eax, al |
|
- | 1257 | cmp byte [scan2ascii+eax], 0 |
|
- | 1258 | jz .noalt |
|
- | 1259 | call get_ascii_char |
|
- | 1260 | mov edi, quick_search_buf + 12 |
|
- | 1261 | mov dword [edi-12], quicksearch_maxlen-1 |
|
- | 1262 | mov dword [edi-8], 1 |
|
- | 1263 | and dword [edi-4], 0 |
|
- | 1264 | stosb |
|
- | 1265 | mov byte [edi], 0 |
|
- | 1266 | call quick_find |
|
- | 1267 | jnc @f |
|
- | 1268 | mov byte [quick_search_buf + 12], 0 |
|
- | 1269 | and dword [quick_search_buf + 4], 0 |
|
- | 1270 | @@: |
|
- | 1271 | mov ebx, QuickSearchDlg |
|
- | 1272 | mov eax, [ebp + panel1_left - panel1_data] |
|
- | 1273 | add eax, 10 |
|
- | 1274 | mov edx, [cur_width] |
|
- | 1275 | sub edx, 21 |
|
- | 1276 | cmp eax, edx |
|
- | 1277 | jb @f |
|
- | 1278 | mov eax, edx |
|
- | 1279 | @@: |
|
- | 1280 | mov [ebx + dlgtemplate.x], eax |
|
- | 1281 | mov eax, [ebp + panel1_top - panel1_data] |
|
- | 1282 | add eax, [ebp + panel1_height - panel1_data] |
|
- | 1283 | mov edx, [cur_height] |
|
- | 1284 | sub edx, 2 |
|
- | 1285 | cmp eax, edx |
|
- | 1286 | jb @f |
|
- | 1287 | mov eax, edx |
|
- | 1288 | @@: |
|
- | 1289 | mov [ebx + dlgtemplate.y], eax |
|
- | 1290 | push ebx |
|
- | 1291 | call ShowDialogBox |
|
- | 1292 | mov [bQuickSearchMode], 1 |
|
- | 1293 | mov [bDisplayQuickSearch], 1 |
|
- | 1294 | .find_letter_done: |
|
- | 1295 | .noalt: |
|
1115 | .ret: |
1296 | .ret: |
1116 | ret |
1297 | ret |
1117 | .up: |
1298 | .up: |
1118 | jecxz .ret |
1299 | jecxz .ret |
1119 | dec ecx |
1300 | dec ecx |
1120 | mov [ebp + panel1_index - panel1_data], ecx |
1301 | mov [ebp + panel1_index - panel1_data], ecx |
1121 | cmp ecx, edx |
1302 | cmp ecx, edx |
1122 | jae .done_redraw |
1303 | jae .done_redraw |
1123 | mov [ebp + panel1_start - panel1_data], ecx |
1304 | mov [ebp + panel1_start - panel1_data], ecx |
1124 | .done_redraw: |
1305 | .done_redraw: |
1125 | ; call draw_panel |
1306 | ; call draw_panel |
1126 | ; ret |
1307 | ; ret |
1127 | jmp draw_panel |
1308 | jmp draw_panel |
1128 | .insert: |
1309 | .insert: |
1129 | lea eax, [ecx*4] |
1310 | lea eax, [ecx*4] |
1130 | add eax, [ebp + panel1_files - panel1_data] |
1311 | add eax, [ebp + panel1_files - panel1_data] |
1131 | mov eax, [eax] |
1312 | mov eax, [eax] |
1132 | cmp word [eax+40], '..' |
1313 | cmp word [eax+40], '..' |
1133 | jnz @f |
1314 | jnz @f |
1134 | cmp byte [eax+42], 0 |
1315 | cmp byte [eax+42], 0 |
1135 | jz .insert.down |
1316 | jz .insert.down |
1136 | @@: |
1317 | @@: |
1137 | xor byte [eax+303], 1 |
1318 | xor byte [eax+303], 1 |
1138 | mov edx, [eax+32] |
1319 | mov edx, [eax+32] |
1139 | test byte [eax+303], 1 |
1320 | test byte [eax+303], 1 |
1140 | mov eax, [eax+36] |
1321 | mov eax, [eax+36] |
1141 | jnz .insert.increase |
1322 | jnz .insert.increase |
1142 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
1323 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
1143 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1324 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1144 | dec [ebp + panel1_selected_num - panel1_data] |
1325 | dec [ebp + panel1_selected_num - panel1_data] |
1145 | jmp .insert.down |
1326 | jmp .insert.down |
1146 | .insert.increase: |
1327 | .insert.increase: |
1147 | add dword [ebp + panel1_selected_size - panel1_data], edx |
1328 | add dword [ebp + panel1_selected_size - panel1_data], edx |
1148 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1329 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1149 | inc [ebp + panel1_selected_num - panel1_data] |
1330 | inc [ebp + panel1_selected_num - panel1_data] |
1150 | .insert.down: |
1331 | .insert.down: |
1151 | inc ecx |
1332 | inc ecx |
1152 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1333 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1153 | jae .done_redraw |
1334 | jae .done_redraw |
1154 | jmp @f |
1335 | jmp @f |
1155 | .down: |
1336 | .down: |
1156 | inc ecx |
1337 | inc ecx |
1157 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1338 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1158 | jae .ret |
1339 | jae .ret |
1159 | @@: |
1340 | @@: |
1160 | mov [ebp + panel1_index - panel1_data], ecx |
1341 | mov [ebp + panel1_index - panel1_data], ecx |
1161 | cmp ecx, ebx |
1342 | cmp ecx, ebx |
1162 | jb .done_redraw |
1343 | jb .done_redraw |
1163 | sub ecx, [ebp + panel1_colst - panel1_data] |
1344 | sub ecx, [ebp + panel1_colst - panel1_data] |
1164 | inc ecx |
1345 | inc ecx |
1165 | mov [ebp + panel1_start - panel1_data], ecx |
1346 | mov [ebp + panel1_start - panel1_data], ecx |
1166 | jmp .done_redraw |
1347 | jmp .done_redraw |
1167 | .left: |
1348 | .left: |
1168 | test ecx, ecx |
1349 | test ecx, ecx |
1169 | jnz @f |
1350 | jnz @f |
1170 | ret |
1351 | ret |
1171 | @@: |
1352 | @@: |
1172 | mov eax, [ebp + panel1_colsz - panel1_data] |
1353 | mov eax, [ebp + panel1_colsz - panel1_data] |
1173 | sub ecx, eax |
1354 | sub ecx, eax |
1174 | jae @f |
1355 | jae @f |
1175 | xor ecx, ecx |
1356 | xor ecx, ecx |
1176 | @@: |
1357 | @@: |
1177 | mov [ebp + panel1_index - panel1_data], ecx |
1358 | mov [ebp + panel1_index - panel1_data], ecx |
1178 | .finalize_left: |
1359 | .finalize_left: |
1179 | cmp ecx, edx |
1360 | cmp ecx, edx |
1180 | jae .done_redraw |
1361 | jae .done_redraw |
1181 | sub edx, eax |
1362 | sub edx, eax |
1182 | jae @f |
1363 | jae @f |
1183 | xor edx, edx |
1364 | xor edx, edx |
1184 | @@: |
1365 | @@: |
1185 | mov [ebp + panel1_start - panel1_data], edx |
1366 | mov [ebp + panel1_start - panel1_data], edx |
1186 | jmp .done_redraw |
1367 | jmp .done_redraw |
1187 | .pgup: |
1368 | .pgup: |
1188 | mov eax, [ebp + panel1_colst - panel1_data] |
1369 | mov eax, [ebp + panel1_colst - panel1_data] |
1189 | dec eax |
1370 | dec eax |
1190 | jnz @f |
1371 | jnz @f |
1191 | inc eax |
1372 | inc eax |
1192 | @@: |
1373 | @@: |
1193 | test ecx, ecx |
1374 | test ecx, ecx |
1194 | jnz @f |
1375 | jnz @f |
1195 | ret |
1376 | ret |
1196 | @@: |
1377 | @@: |
1197 | sub ecx, eax |
1378 | sub ecx, eax |
1198 | jae @f |
1379 | jae @f |
1199 | xor ecx, ecx |
1380 | xor ecx, ecx |
1200 | @@: |
1381 | @@: |
1201 | mov [ebp + panel1_index - panel1_data], ecx |
1382 | mov [ebp + panel1_index - panel1_data], ecx |
1202 | dec ecx |
1383 | dec ecx |
1203 | jmp .finalize_left |
1384 | jmp .finalize_left |
1204 | .right: |
1385 | .right: |
1205 | mov eax, [ebp + panel1_colsz - panel1_data] |
1386 | mov eax, [ebp + panel1_colsz - panel1_data] |
1206 | add ecx, eax |
1387 | add ecx, eax |
1207 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1388 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1208 | jb @f |
1389 | jb @f |
1209 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1390 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1210 | dec ecx |
1391 | dec ecx |
1211 | @@: |
1392 | @@: |
1212 | mov [ebp + panel1_index - panel1_data], ecx |
1393 | mov [ebp + panel1_index - panel1_data], ecx |
1213 | .finalize_right: |
1394 | .finalize_right: |
1214 | cmp ecx, ebx |
1395 | cmp ecx, ebx |
1215 | jb .done_redraw |
1396 | jb .done_redraw |
1216 | add ebx, eax |
1397 | add ebx, eax |
1217 | cmp ebx, [ebp + panel1_numfiles - panel1_data] |
1398 | cmp ebx, [ebp + panel1_numfiles - panel1_data] |
1218 | jbe @f |
1399 | jbe @f |
1219 | mov ebx, [ebp + panel1_numfiles - panel1_data] |
1400 | mov ebx, [ebp + panel1_numfiles - panel1_data] |
1220 | @@: |
1401 | @@: |
1221 | sub ebx, [ebp + panel1_colst - panel1_data] |
1402 | sub ebx, [ebp + panel1_colst - panel1_data] |
1222 | jae @f |
1403 | jae @f |
1223 | xor ebx, ebx |
1404 | xor ebx, ebx |
1224 | @@: |
1405 | @@: |
1225 | mov [ebp + panel1_start - panel1_data], ebx |
1406 | mov [ebp + panel1_start - panel1_data], ebx |
1226 | jmp .done_redraw |
1407 | jmp .done_redraw |
1227 | .pgdn: |
1408 | .pgdn: |
1228 | mov eax, [ebp + panel1_colst - panel1_data] |
1409 | mov eax, [ebp + panel1_colst - panel1_data] |
1229 | dec eax |
1410 | dec eax |
1230 | jnz @f |
1411 | jnz @f |
1231 | inc eax |
1412 | inc eax |
1232 | @@: |
1413 | @@: |
1233 | add ecx, eax |
1414 | add ecx, eax |
1234 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1415 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1235 | jb @f |
1416 | jb @f |
1236 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1417 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1237 | dec ecx |
1418 | dec ecx |
1238 | @@: |
1419 | @@: |
1239 | mov [ebp + panel1_index - panel1_data], ecx |
1420 | mov [ebp + panel1_index - panel1_data], ecx |
1240 | inc ecx |
1421 | inc ecx |
1241 | jmp .finalize_right |
1422 | jmp .finalize_right |
1242 | .tab: |
1423 | .tab: |
1243 | xor [active_panel], panel1_data xor panel2_data |
1424 | xor [active_panel], panel1_data xor panel2_data |
1244 | call draw_cmdbar |
1425 | call draw_cmdbar |
1245 | call draw_panel |
1426 | call draw_panel |
1246 | mov ebp, [active_panel] |
1427 | mov ebp, [active_panel] |
1247 | jmp .done_redraw |
1428 | jmp .done_redraw |
1248 | .home: |
1429 | .home: |
1249 | and [ebp + panel1_start - panel1_data], 0 |
1430 | and [ebp + panel1_start - panel1_data], 0 |
1250 | and [ebp + panel1_index - panel1_data], 0 |
1431 | and [ebp + panel1_index - panel1_data], 0 |
1251 | jmp .done_redraw |
1432 | jmp .done_redraw |
1252 | .end: |
1433 | .end: |
1253 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1434 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1254 | dec eax |
1435 | dec eax |
1255 | mov [ebp + panel1_index - panel1_data], eax |
1436 | mov [ebp + panel1_index - panel1_data], eax |
1256 | inc eax |
1437 | inc eax |
1257 | sub eax, [ebp + panel1_colst - panel1_data] |
1438 | sub eax, [ebp + panel1_colst - panel1_data] |
1258 | jae @f |
1439 | jae @f |
1259 | xor eax, eax |
1440 | xor eax, eax |
1260 | @@: |
1441 | @@: |
1261 | mov [ebp + panel1_start - panel1_data], eax |
1442 | mov [ebp + panel1_start - panel1_data], eax |
1262 | jmp .done_redraw |
1443 | jmp .done_redraw |
1263 | .enter: |
1444 | .enter: |
- | 1445 | cmp [bQuickSearchMode], 0 |
|
- | 1446 | jz @f |
|
- | 1447 | call draw_image |
|
- | 1448 | @@: |
|
1264 | call get_curfile_folder_entry |
1449 | call get_curfile_folder_entry |
1265 | test byte [ecx], 10h |
1450 | test byte [ecx], 10h |
1266 | jnz .enter_folder |
1451 | jnz .enter_folder |
1267 | ; todo: add |
1452 | ; todo: add |
1268 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1453 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1269 | jnz .ret |
1454 | jnz .ret |
1270 | ; generate full file name |
1455 | ; generate full file name |
1271 | lea esi, [ebp + panel1_dir - panel1_data] |
1456 | lea esi, [ebp + panel1_dir - panel1_data] |
1272 | mov edi, execdata |
1457 | mov edi, execdata |
1273 | @@: |
1458 | @@: |
1274 | lodsb |
1459 | lodsb |
1275 | test al, al |
1460 | test al, al |
1276 | jz @f |
1461 | jz @f |
1277 | stosb |
1462 | stosb |
1278 | cmp edi, execdataend-1 |
1463 | cmp edi, execdataend-1 |
1279 | jae .bigfilename |
1464 | jae .bigfilename |
1280 | jmp @b |
1465 | jmp @b |
1281 | @@: |
1466 | @@: |
1282 | lea esi, [ecx+40] |
1467 | lea esi, [ecx+40] |
1283 | mov al, '/' |
1468 | mov al, '/' |
1284 | stosb |
1469 | stosb |
1285 | @@: |
1470 | @@: |
1286 | lodsb |
1471 | lodsb |
1287 | stosb |
1472 | stosb |
1288 | cmp edi, execdataend |
1473 | cmp edi, execdataend |
1289 | ja .bigfilename |
1474 | ja .bigfilename |
1290 | test al, al |
1475 | test al, al |
1291 | jnz @b |
1476 | jnz @b |
1292 | ; try to open file and look for all plugins |
1477 | ; try to open file and look for all plugins |
1293 | push O_READ |
1478 | push O_READ |
1294 | push execdata |
1479 | push execdata |
1295 | call open |
1480 | call open |
1296 | test eax, eax |
1481 | test eax, eax |
1297 | jz .noplugins ; if can't open, just try to execute |
1482 | jz .noplugins ; if can't open, just try to execute |
1298 | mov esi, eax ; save handle |
1483 | mov esi, eax ; save handle |
1299 | push filedata_buffer_size |
1484 | push filedata_buffer_size |
1300 | push filedata_buffer |
1485 | push filedata_buffer |
1301 | push esi |
1486 | push esi |
1302 | call read |
1487 | call read |
1303 | mov edi, eax ; save size of read data |
1488 | mov edi, eax ; save size of read data |
1304 | ; test for Kolibri executable |
1489 | ; test for Kolibri executable |
1305 | cmp eax, 24h |
1490 | cmp eax, 24h |
1306 | jb .enter.noexec |
1491 | jb .enter.noexec |
1307 | cmp dword [filedata_buffer], 'MENU' |
1492 | cmp dword [filedata_buffer], 'MENU' |
1308 | jnz @f |
1493 | jnz @f |
1309 | cmp word [filedata_buffer+4], 'ET' |
1494 | cmp word [filedata_buffer+4], 'ET' |
1310 | jnz @f |
1495 | jnz @f |
1311 | .close_run: |
1496 | .close_run: |
1312 | push esi |
1497 | push esi |
1313 | call close |
1498 | call close |
1314 | jmp .run_app |
1499 | jmp .run_app |
1315 | @@: |
1500 | @@: |
1316 | cmp dword [filedata_buffer], 'KPCK' |
1501 | cmp dword [filedata_buffer], 'KPCK' |
1317 | jnz @f |
1502 | jnz @f |
1318 | cmp dword [filedata_buffer+12], 0x26914601 |
1503 | cmp dword [filedata_buffer+12], 0x26914601 |
1319 | jz .close_run |
1504 | jz .close_run |
1320 | @@: |
1505 | @@: |
1321 | .enter.noexec: |
1506 | .enter.noexec: |
1322 | mov ecx, [num_plugins] |
1507 | mov ecx, [num_plugins] |
1323 | mov edx, [plugins] |
1508 | mov edx, [plugins] |
1324 | sub edx, PluginInfo.size |
1509 | sub edx, PluginInfo.size |
1325 | .plugloop: |
1510 | .plugloop: |
1326 | add edx, PluginInfo.size |
1511 | add edx, PluginInfo.size |
1327 | dec ecx |
1512 | dec ecx |
1328 | js .plugdone |
1513 | js .plugdone |
1329 | pushad |
1514 | pushad |
1330 | push execdata |
1515 | push execdata |
1331 | push [ebp+panel1_hFile-panel1_data] |
1516 | push [ebp+panel1_hFile-panel1_data] |
1332 | push [ebp+panel1_hPlugin-panel1_data] |
1517 | push [ebp+panel1_hPlugin-panel1_data] |
1333 | push edi |
1518 | push edi |
1334 | push filedata_buffer |
1519 | push filedata_buffer |
1335 | call get_curfile_folder_entry |
1520 | call get_curfile_folder_entry |
1336 | push ecx |
1521 | push ecx |
1337 | push esi |
1522 | push esi |
1338 | call [edx+PluginInfo.OpenFilePlugin] |
1523 | call [edx+PluginInfo.OpenFilePlugin] |
1339 | mov [esp+28], eax |
1524 | mov [esp+28], eax |
1340 | popad |
1525 | popad |
1341 | test eax, eax |
1526 | test eax, eax |
1342 | jz .plugloop |
1527 | jz .plugloop |
1343 | cmp eax, -1 |
1528 | cmp eax, -1 |
1344 | jnz .pluginok |
1529 | jnz .pluginok |
1345 | push esi |
1530 | push esi |
1346 | call close |
1531 | call close |
1347 | ret |
1532 | ret |
1348 | .pluginok: |
1533 | .pluginok: |
1349 | ; save current directory and set root directory of hPlugin |
1534 | ; save current directory and set root directory of hPlugin |
1350 | mov edi, eax ; save handle |
1535 | mov edi, eax ; save handle |
1351 | mov esi, execdata |
1536 | mov esi, execdata |
1352 | @@: |
1537 | @@: |
1353 | lodsb |
1538 | lodsb |
1354 | test al, al |
1539 | test al, al |
1355 | jnz @b |
1540 | jnz @b |
1356 | sub esi, execdata-9 |
1541 | sub esi, execdata-9 |
1357 | ; allocate esi bytes in buffer 'parents' |
1542 | ; allocate esi bytes in buffer 'parents' |
1358 | mov ecx, [ebp + panel1_parents_sz - panel1_data] |
1543 | mov ecx, [ebp + panel1_parents_sz - panel1_data] |
1359 | add ecx, esi |
1544 | add ecx, esi |
1360 | cmp ecx, [ebp + panel1_parents_alloc - panel1_data] |
1545 | cmp ecx, [ebp + panel1_parents_alloc - panel1_data] |
1361 | jbe .enter.norealloc |
1546 | jbe .enter.norealloc |
1362 | push edx |
1547 | push edx |
1363 | mov edx, [ebp + panel1_parents - panel1_data] |
1548 | mov edx, [ebp + panel1_parents - panel1_data] |
1364 | call xpgrealloc |
1549 | call xpgrealloc |
1365 | pop edx |
1550 | pop edx |
1366 | test eax, eax |
1551 | test eax, eax |
1367 | jnz @f |
1552 | jnz @f |
1368 | push edi |
1553 | push edi |
1369 | call [edx+PluginInfo.ClosePlugin] |
1554 | call [edx+PluginInfo.ClosePlugin] |
1370 | ret |
1555 | ret |
1371 | @@: |
1556 | @@: |
1372 | mov [ebp + panel1_parents - panel1_data], eax |
1557 | mov [ebp + panel1_parents - panel1_data], eax |
1373 | .enter.norealloc: |
1558 | .enter.norealloc: |
1374 | mov [ebp + panel1_parents_sz - panel1_data], ecx |
1559 | mov [ebp + panel1_parents_sz - panel1_data], ecx |
1375 | ; save current state to the end of buffer |
1560 | ; save current state to the end of buffer |
1376 | sub ecx, esi |
1561 | sub ecx, esi |
1377 | add ecx, [ebp + panel1_parents - panel1_data] |
1562 | add ecx, [ebp + panel1_parents - panel1_data] |
1378 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
1563 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
1379 | mov [ecx], edx |
1564 | mov [ecx], edx |
1380 | xchg edi, [ebp + panel1_hFile - panel1_data] |
1565 | xchg edi, [ebp + panel1_hFile - panel1_data] |
1381 | mov [ecx+4], edi |
1566 | mov [ecx+4], edi |
1382 | mov byte [ecx+8], 0 |
1567 | mov byte [ecx+8], 0 |
1383 | lea edi, [ecx+9] |
1568 | lea edi, [ecx+9] |
1384 | lea ecx, [esi-9] |
1569 | lea ecx, [esi-9] |
1385 | mov esi, execdata |
1570 | mov esi, execdata |
1386 | rep movsb |
1571 | rep movsb |
1387 | mov word [ebp + panel1_dir - panel1_data], '/' |
1572 | mov word [ebp + panel1_dir - panel1_data], '/' |
1388 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1573 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1389 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
1574 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
1390 | and dword [ebx], 0 |
1575 | and dword [ebx], 0 |
1391 | push ebp |
1576 | push ebp |
1392 | push ebx |
1577 | push ebx |
1393 | push [ebp + panel1_hFile - panel1_data] |
1578 | push [ebp + panel1_hFile - panel1_data] |
1394 | call [eax+PluginInfo.GetOpenPluginInfo] |
1579 | call [eax+PluginInfo.GetOpenPluginInfo] |
1395 | pop ebp |
1580 | pop ebp |
1396 | call get_curfile_folder_entry |
1581 | call get_curfile_folder_entry |
1397 | mov esi, ecx |
1582 | mov esi, ecx |
1398 | mov edi, left_dotdot_entry |
1583 | mov edi, left_dotdot_entry |
1399 | cmp ebp, panel1_data |
1584 | cmp ebp, panel1_data |
1400 | jz @f |
1585 | jz @f |
1401 | add edi, right_dotdot_entry-left_dotdot_entry |
1586 | add edi, right_dotdot_entry-left_dotdot_entry |
1402 | @@: |
1587 | @@: |
1403 | mov ecx, 10 |
1588 | mov ecx, 10 |
1404 | rep movsd |
1589 | rep movsd |
1405 | mov byte [edi-40], 10h ; attributes: folder |
1590 | mov byte [edi-40], 10h ; attributes: folder |
1406 | mov eax, '..' |
1591 | mov eax, '..' |
1407 | stosd |
1592 | stosd |
1408 | jmp .reread |
1593 | jmp .reread |
1409 | .plugdone: |
1594 | .plugdone: |
1410 | push esi |
1595 | push esi |
1411 | call close |
1596 | call close |
1412 | .noplugins: |
1597 | .noplugins: |
1413 | ; run program or association |
1598 | ; run program or association |
1414 | call get_curfile_folder_entry |
1599 | call get_curfile_folder_entry |
1415 | call find_extension |
1600 | call find_extension |
1416 | jc .run_app |
1601 | jc .run_app |
1417 | .run_association: |
1602 | .run_association: |
1418 | cmp byte [edi], 0 |
1603 | cmp byte [edi], 0 |
1419 | jz .l1 |
1604 | jz .l1 |
1420 | cmp byte [edi], ';' |
1605 | cmp byte [edi], ';' |
1421 | jnz @f |
1606 | jnz @f |
1422 | .l1: |
1607 | .l1: |
1423 | ret |
1608 | ret |
1424 | @@: |
1609 | @@: |
1425 | mov esi, edi |
1610 | mov esi, edi |
1426 | @@: |
1611 | @@: |
1427 | lodsb |
1612 | lodsb |
1428 | test al, al |
1613 | test al, al |
1429 | jz @f |
1614 | jz @f |
1430 | cmp al, ';' |
1615 | cmp al, ';' |
1431 | jnz @b |
1616 | jnz @b |
1432 | dec esi |
1617 | dec esi |
1433 | mov byte [esi], 0 |
1618 | mov byte [esi], 0 |
1434 | mov [restore_semicolon], esi |
1619 | mov [restore_semicolon], esi |
1435 | @@: |
1620 | @@: |
1436 | .run_association2: |
1621 | .run_association2: |
1437 | mov [execparams], execdata |
1622 | mov [execparams], execdata |
1438 | mov [execptr], edi |
1623 | mov [execptr], edi |
1439 | jmp .dorun |
1624 | jmp .dorun |
1440 | .run_app: |
1625 | .run_app: |
1441 | mov [execptr], execdata |
1626 | mov [execptr], execdata |
1442 | and [execparams], 0 |
1627 | and [execparams], 0 |
1443 | .dorun: |
1628 | .dorun: |
- | 1629 | lea esi, [ebp + panel1_dir - panel1_data] |
|
- | 1630 | mov edi, execdata |
|
- | 1631 | @@: |
|
- | 1632 | lodsb |
|
- | 1633 | test al, al |
|
- | 1634 | jz @f |
|
- | 1635 | stosb |
|
- | 1636 | cmp edi, execdataend-1 |
|
- | 1637 | jae .bigfilename |
|
- | 1638 | jmp @b |
|
- | 1639 | @@: |
|
- | 1640 | lea esi, [ecx+40] |
|
- | 1641 | mov al, '/' |
|
- | 1642 | stosb |
|
- | 1643 | @@: |
|
- | 1644 | lodsb |
|
- | 1645 | stosb |
|
- | 1646 | cmp edi, execdataend |
|
- | 1647 | ja .bigfilename |
|
- | 1648 | test al, al |
|
- | 1649 | jnz @b |
|
1444 | ; for fasm call - special handling, because |
1650 | ; for fasm call - special handling, because |
1445 | ; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile |
1651 | ; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile |
1446 | ; 2) fasm will probably create new file in directory, so we want to reload panel data |
1652 | ; 2) fasm will probably create new file in directory, so we want to reload panel data |
1447 | xor edx, edx |
1653 | xor edx, edx |
1448 | cmp [execparams], edx |
1654 | cmp [execparams], edx |
1449 | jz .nofasm |
1655 | jz .nofasm |
1450 | mov esi, [execptr] |
1656 | mov esi, [execptr] |
1451 | @@: |
1657 | @@: |
1452 | lodsb |
1658 | lodsb |
1453 | test al, al |
1659 | test al, al |
1454 | jnz @b |
1660 | jnz @b |
1455 | mov eax, [esi-5] |
1661 | mov eax, [esi-5] |
1456 | or eax, 0x20202020 |
1662 | or eax, 0x20202020 |
1457 | cmp eax, 'fasm' |
1663 | cmp eax, 'fasm' |
1458 | jnz .nofasm |
1664 | jnz .nofasm |
1459 | cmp edi, execdata+(execdataend-execdata)/2 |
1665 | cmp edi, execdata+(execdataend-execdata)/2 |
1460 | ja .bigfilename |
1666 | ja .bigfilename |
1461 | mov esi, execdata |
1667 | mov esi, execdata |
1462 | @@: |
1668 | @@: |
1463 | lodsb |
1669 | lodsb |
1464 | stosb |
1670 | stosb |
1465 | test al, al |
1671 | test al, al |
1466 | jnz @b |
1672 | jnz @b |
1467 | mov byte [esi-1], ',' |
1673 | mov byte [esi-1], ',' |
1468 | inc edx |
1674 | inc edx |
1469 | ; output file: no extension if input file has extension, '.bin' otherwise |
1675 | ; output file: no extension if input file has extension, '.bin' otherwise |
1470 | push edi |
1676 | push edi |
1471 | @@: |
1677 | @@: |
1472 | dec edi |
1678 | dec edi |
1473 | cmp byte [edi], '.' |
1679 | cmp byte [edi], '.' |
1474 | jz .ptfound |
1680 | jz .ptfound |
1475 | cmp byte [edi], '/' |
1681 | cmp byte [edi], '/' |
1476 | jnz @b |
1682 | jnz @b |
1477 | pop edi |
1683 | pop edi |
1478 | cmp edi, execdataend-4 |
1684 | cmp edi, execdataend-4 |
1479 | ja .bigfilename |
1685 | ja .bigfilename |
1480 | mov dword [edi-1], '.bin' |
1686 | mov dword [edi-1], '.bin' |
1481 | mov byte [edi+3], 0 |
1687 | mov byte [edi+3], 0 |
1482 | jmp .nofasm |
1688 | jmp .nofasm |
1483 | .ptfound: |
1689 | .ptfound: |
1484 | mov byte [edi], 0 |
1690 | mov byte [edi], 0 |
1485 | pop edi |
1691 | pop edi |
1486 | .nofasm: |
1692 | .nofasm: |
1487 | mov ebx, execinfo |
1693 | mov ebx, execinfo |
1488 | ; if command line is more than 256 symbols, the kernel will truncate it |
1694 | ; if command line is more than 256 symbols, the kernel will truncate it |
1489 | ; we do not want this! |
1695 | ; we do not want this! |
1490 | ; N.B. We know that command line is either NULL or execdata, which is always ASCIIZ string, |
1696 | ; N.B. We know that command line is either NULL or execdata, which is always ASCIIZ string, |
1491 | ; but can be up to 1023 symbols |
1697 | ; but can be up to 1023 symbols |
1492 | mov esi, [ebx+8] |
1698 | mov esi, [ebx+8] |
1493 | test esi, esi |
1699 | test esi, esi |
1494 | jz .cmdlinelenok |
1700 | jz .cmdlinelenok |
1495 | @@: |
1701 | @@: |
1496 | lodsb |
1702 | lodsb |
1497 | test al, al |
1703 | test al, al |
1498 | jnz @b |
1704 | jnz @b |
1499 | sub esi, [ebx+8] |
1705 | sub esi, [ebx+8] |
1500 | dec esi |
1706 | dec esi |
1501 | cmp esi, 256 |
1707 | cmp esi, 256 |
1502 | ja .bigcmdline |
1708 | ja .bigcmdline |
1503 | .cmdlinelenok: |
1709 | .cmdlinelenok: |
1504 | push 70 |
1710 | push 70 |
1505 | pop eax |
1711 | pop eax |
1506 | int 40h |
1712 | int 40h |
1507 | xor esi, esi |
1713 | xor esi, esi |
1508 | xchg esi, [restore_semicolon] |
1714 | xchg esi, [restore_semicolon] |
1509 | test esi, esi |
1715 | test esi, esi |
1510 | jz @f |
1716 | jz @f |
1511 | mov byte [esi], ';' |
1717 | mov byte [esi], ';' |
1512 | @@: |
1718 | @@: |
1513 | neg eax |
1719 | neg eax |
1514 | js @f |
1720 | js @f |
1515 | call get_error_msg |
1721 | call get_error_msg |
1516 | push eax |
1722 | push eax |
1517 | push dword aRunError |
1723 | push dword aRunError |
1518 | mov eax, esp |
1724 | mov eax, esp |
1519 | push ContinueBtn |
1725 | push ContinueBtn |
1520 | push 1 |
1726 | push 1 |
1521 | push eax |
1727 | push eax |
1522 | push 2 |
1728 | push 2 |
1523 | call SayErr |
1729 | call SayErr |
1524 | pop eax |
1730 | pop eax |
1525 | pop eax |
1731 | pop eax |
1526 | ret |
1732 | ret |
1527 | @@: |
1733 | @@: |
1528 | test edx, edx |
1734 | test edx, edx |
1529 | jz @f |
1735 | jz @f |
1530 | push 5 |
1736 | push 5 |
1531 | pop eax |
1737 | pop eax |
1532 | push 20 |
1738 | push 20 |
1533 | pop ebx |
1739 | pop ebx |
1534 | int 0x40 |
1740 | int 0x40 |
1535 | jmp .ctrl_r |
1741 | jmp .ctrl_r |
1536 | @@: |
1742 | @@: |
1537 | ret |
1743 | ret |
1538 | .bigfilename3: |
1744 | .bigfilename3: |
1539 | pop esi |
1745 | pop esi |
1540 | .bigfilename2: |
1746 | .bigfilename2: |
1541 | pop esi |
1747 | pop esi |
1542 | .bigfilename: |
1748 | .bigfilename: |
1543 | mov eax, aFileNameTooBig |
1749 | mov eax, aFileNameTooBig |
1544 | .l2: |
1750 | .l2: |
1545 | xor esi, esi |
1751 | xor esi, esi |
1546 | xchg esi, [restore_semicolon] |
1752 | xchg esi, [restore_semicolon] |
1547 | test esi, esi |
1753 | test esi, esi |
1548 | jz @f |
1754 | jz @f |
1549 | mov byte [esi], ';' |
1755 | mov byte [esi], ';' |
1550 | @@: |
1756 | @@: |
1551 | push eax |
1757 | push eax |
1552 | mov eax, esp |
1758 | mov eax, esp |
1553 | push ContinueBtn |
1759 | push ContinueBtn |
1554 | push 1 |
1760 | push 1 |
1555 | push eax |
1761 | push eax |
1556 | push 1 |
1762 | push 1 |
1557 | call SayErr |
1763 | call SayErr |
1558 | pop eax |
1764 | pop eax |
1559 | ret |
1765 | ret |
1560 | .bigcmdline: |
1766 | .bigcmdline: |
1561 | mov eax, aCmdLineTooBig |
1767 | mov eax, aCmdLineTooBig |
1562 | jmp .l2 |
1768 | jmp .l2 |
1563 | .bigfoldername2: |
1769 | .bigfoldername2: |
1564 | mov esi, prev_dir |
1770 | mov esi, prev_dir |
1565 | lea edi, [ebp + panel1_dir - panel1_data] |
1771 | lea edi, [ebp + panel1_dir - panel1_data] |
1566 | @@: |
1772 | @@: |
1567 | lodsb |
1773 | lodsb |
1568 | stosb |
1774 | stosb |
1569 | test al, al |
1775 | test al, al |
1570 | jnz @b |
1776 | jnz @b |
1571 | .bigfoldername: |
1777 | .bigfoldername: |
1572 | mov eax, aFolderNameTooBig |
1778 | mov eax, aFolderNameTooBig |
1573 | jmp .l2 |
1779 | jmp .l2 |
1574 | .enter_folder: |
1780 | .enter_folder: |
1575 | lea esi, [ecx+40] |
1781 | lea esi, [ecx+40] |
1576 | cmp word [esi], '..' |
1782 | cmp word [esi], '..' |
1577 | jnz @f |
1783 | jnz @f |
1578 | cmp byte [esi+2], 0 |
1784 | cmp byte [esi+2], 0 |
1579 | jz .dotdot |
1785 | jz .dotdot |
1580 | @@: |
1786 | @@: |
1581 | push esi |
1787 | push esi |
1582 | lea esi, [ebp + panel1_dir - panel1_data] |
1788 | lea esi, [ebp + panel1_dir - panel1_data] |
1583 | mov edi, prev_dir |
1789 | mov edi, prev_dir |
1584 | @@: |
1790 | @@: |
1585 | lodsb |
1791 | lodsb |
1586 | stosb |
1792 | stosb |
1587 | test al, al |
1793 | test al, al |
1588 | jnz @b |
1794 | jnz @b |
1589 | lea edi, [esi-1] |
1795 | lea edi, [esi-1] |
1590 | lea edx, [ebp + panel1_dir - panel1_data + 1024] |
1796 | lea edx, [ebp + panel1_dir - panel1_data + 1024] |
1591 | cmp esi, edx |
1797 | cmp esi, edx |
1592 | pop esi |
1798 | pop esi |
1593 | jae .bigfoldername |
1799 | jae .bigfoldername |
1594 | mov al, '/' |
1800 | mov al, '/' |
1595 | cmp [edi-1], al |
1801 | cmp [edi-1], al |
1596 | jz @f |
1802 | jz @f |
1597 | stosb |
1803 | stosb |
1598 | @@: |
1804 | @@: |
1599 | lodsb |
1805 | lodsb |
1600 | cmp edi, edx |
1806 | cmp edi, edx |
1601 | jae .bigfoldername2 |
1807 | jae .bigfoldername2 |
1602 | stosb |
1808 | stosb |
1603 | test al, al |
1809 | test al, al |
1604 | jnz @b |
1810 | jnz @b |
1605 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1811 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1606 | test eax, eax |
1812 | test eax, eax |
1607 | jz .reread |
1813 | jz .reread |
1608 | push ebp |
1814 | push ebp |
1609 | lea esi, [ebp + panel1_dir - panel1_data] |
1815 | lea esi, [ebp + panel1_dir - panel1_data] |
1610 | push esi |
1816 | push esi |
1611 | add ecx, 40 |
1817 | add ecx, 40 |
1612 | push ecx |
1818 | push ecx |
1613 | push [ebp + panel1_hFile - panel1_data] |
1819 | push [ebp + panel1_hFile - panel1_data] |
1614 | call [eax+PluginInfo.SetFolder] |
1820 | call [eax+PluginInfo.SetFolder] |
1615 | pop ebp |
1821 | pop ebp |
1616 | test al, al |
1822 | test al, al |
1617 | jnz .reread |
1823 | jnz .reread |
1618 | mov esi, prev_dir |
1824 | mov esi, prev_dir |
1619 | lea edi, [ebp + panel1_dir - panel1_data] |
1825 | lea edi, [ebp + panel1_dir - panel1_data] |
1620 | @@: |
1826 | @@: |
1621 | lodsb |
1827 | lodsb |
1622 | stosb |
1828 | stosb |
1623 | test al, al |
1829 | test al, al |
1624 | jnz @b |
1830 | jnz @b |
1625 | .retd: |
1831 | .retd: |
1626 | ret |
1832 | ret |
1627 | .reread: |
1833 | .reread: |
1628 | call read_folder |
1834 | call read_folder |
1629 | .done_cmdbar: |
1835 | .done_cmdbar: |
1630 | call draw_cmdbar |
1836 | call draw_cmdbar |
1631 | jmp .done_redraw |
1837 | jmp .done_redraw |
1632 | .dotdot: |
1838 | .dotdot: |
1633 | lea edi, [ebp + panel1_dir - panel1_data] |
1839 | lea edi, [ebp + panel1_dir - panel1_data] |
1634 | cmp word [edi], '/' |
1840 | cmp word [edi], '/' |
1635 | jnz .dotdot_noroot |
1841 | jnz .dotdot_noroot |
1636 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1842 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1637 | jz .retd |
1843 | jz .retd |
1638 | call close_plugin_panel |
1844 | call close_plugin_panel |
1639 | jmp .dotdot |
1845 | jmp .dotdot |
1640 | .dotdot_noroot: |
1846 | .dotdot_noroot: |
1641 | mov edx, edi |
1847 | mov edx, edi |
1642 | mov al, 0 |
1848 | mov al, 0 |
1643 | or ecx, -1 |
1849 | or ecx, -1 |
1644 | repnz scasb |
1850 | repnz scasb |
1645 | dec edi |
1851 | dec edi |
1646 | mov al, '/' |
1852 | mov al, '/' |
1647 | std |
1853 | std |
1648 | repnz scasb |
1854 | repnz scasb |
1649 | cld |
1855 | cld |
1650 | inc edi |
1856 | inc edi |
1651 | cmp edi, edx |
1857 | cmp edi, edx |
1652 | jnz @f |
1858 | jnz @f |
1653 | inc edi |
1859 | inc edi |
1654 | @@: |
1860 | @@: |
1655 | push dword [edi] |
1861 | push dword [edi] |
1656 | mov byte [edi], 0 |
1862 | mov byte [edi], 0 |
1657 | push edi |
1863 | push edi |
1658 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1864 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1659 | test eax, eax |
1865 | test eax, eax |
1660 | jz .dotdot_native |
1866 | jz .dotdot_native |
1661 | push ebp |
1867 | push ebp |
1662 | lea esi, [ebp + panel1_dir - panel1_data] |
1868 | lea esi, [ebp + panel1_dir - panel1_data] |
1663 | push esi |
1869 | push esi |
1664 | push aDotDot |
1870 | push aDotDot |
1665 | push [ebp + panel1_hFile - panel1_data] |
1871 | push [ebp + panel1_hFile - panel1_data] |
1666 | call [eax+PluginInfo.SetFolder] |
1872 | call [eax+PluginInfo.SetFolder] |
1667 | pop ebp |
1873 | pop ebp |
1668 | test al, al |
1874 | test al, al |
1669 | jnz .dotdot_native |
1875 | jnz .dotdot_native |
1670 | pop edi |
1876 | pop edi |
1671 | pop dword [edi] |
1877 | pop dword [edi] |
1672 | ret |
1878 | ret |
1673 | .dotdot_native: |
1879 | .dotdot_native: |
1674 | call read_folder |
1880 | call read_folder |
1675 | pop edi |
1881 | pop edi |
1676 | pop dword [edi] |
1882 | pop dword [edi] |
1677 | push edi |
1883 | push edi |
1678 | cmp byte [edi], '/' |
1884 | cmp byte [edi], '/' |
1679 | jnz @f |
1885 | jnz @f |
1680 | inc edi |
1886 | inc edi |
1681 | @@: |
1887 | @@: |
1682 | mov edx, [ebp + panel1_files - panel1_data] |
1888 | mov edx, [ebp + panel1_files - panel1_data] |
1683 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1889 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1684 | .scanloop: |
1890 | .scanloop: |
1685 | mov esi, [edx] |
1891 | mov esi, [edx] |
1686 | add esi, 40 |
1892 | add esi, 40 |
1687 | push esi edi |
1893 | push esi edi |
1688 | @@: |
1894 | @@: |
1689 | lodsb |
1895 | lodsb |
1690 | call match_symbol |
1896 | call match_symbol |
1691 | jnz @f |
1897 | jnz @f |
1692 | inc edi |
1898 | inc edi |
1693 | test al, al |
1899 | test al, al |
1694 | jnz @b |
1900 | jnz @b |
1695 | @@: |
1901 | @@: |
1696 | pop edi esi |
1902 | pop edi esi |
1697 | jz .scanfound |
1903 | jz .scanfound |
1698 | add edx, 4 |
1904 | add edx, 4 |
1699 | loop .scanloop |
1905 | loop .scanloop |
1700 | jmp .scandone |
1906 | jmp .scandone |
1701 | .scanfound: |
1907 | .scanfound: |
1702 | sub edx, [ebp + panel1_files - panel1_data] |
1908 | sub edx, [ebp + panel1_files - panel1_data] |
1703 | shr edx, 2 |
1909 | shr edx, 2 |
1704 | mov [ebp + panel1_index - panel1_data], edx |
1910 | mov [ebp + panel1_index - panel1_data], edx |
1705 | sub edx, [ebp + panel1_colst - panel1_data] |
1911 | sub edx, [ebp + panel1_colst - panel1_data] |
1706 | jb .scandone |
1912 | jb .scandone |
1707 | inc edx |
1913 | inc edx |
1708 | mov [ebp + panel1_start - panel1_data], edx |
1914 | mov [ebp + panel1_start - panel1_data], edx |
1709 | .scandone: |
1915 | .scandone: |
1710 | pop edi |
1916 | pop edi |
1711 | mov byte [edi], 0 |
1917 | mov byte [edi], 0 |
1712 | jmp .done_cmdbar |
1918 | jmp .done_cmdbar |
1713 | .ctrl_f39: |
1919 | .ctrl_f39: |
1714 | sub al, 0x3D |
1920 | sub al, 0x3D |
1715 | add al, al |
1921 | add al, al |
1716 | mov ah, [ebp + panel1_sortmode - panel1_data] |
1922 | mov ah, [ebp + panel1_sortmode - panel1_data] |
1717 | and ah, 0xFE |
1923 | and ah, 0xFE |
1718 | cmp al, ah |
1924 | cmp al, ah |
1719 | jnz @f |
1925 | jnz @f |
1720 | and [ebp + panel1_sortmode - panel1_data], 1 |
1926 | and [ebp + panel1_sortmode - panel1_data], 1 |
1721 | or al, [ebp + panel1_sortmode - panel1_data] |
1927 | or al, [ebp + panel1_sortmode - panel1_data] |
1722 | xor al, 1 |
1928 | xor al, 1 |
1723 | @@: |
1929 | @@: |
1724 | mov [ebp + panel1_sortmode - panel1_data], al |
1930 | mov [ebp + panel1_sortmode - panel1_data], al |
1725 | mov eax, [ebp + panel1_index - panel1_data] |
1931 | mov eax, [ebp + panel1_index - panel1_data] |
1726 | mov ecx, [ebp + panel1_files - panel1_data] |
1932 | mov ecx, [ebp + panel1_files - panel1_data] |
1727 | push dword [ecx+eax*4] |
1933 | push dword [ecx+eax*4] |
1728 | push ecx |
1934 | push ecx |
1729 | call sort_files |
1935 | call sort_files |
1730 | pop edi |
1936 | pop edi |
1731 | pop eax |
1937 | pop eax |
1732 | or ecx, -1 |
1938 | or ecx, -1 |
1733 | repnz scasd |
1939 | repnz scasd |
1734 | not ecx |
1940 | not ecx |
1735 | dec ecx |
1941 | dec ecx |
1736 | mov [ebp + panel1_index - panel1_data], ecx |
1942 | mov [ebp + panel1_index - panel1_data], ecx |
1737 | sub ecx, [ebp + panel1_start - panel1_data] |
1943 | sub ecx, [ebp + panel1_start - panel1_data] |
1738 | jb .less_start |
1944 | jb .less_start |
1739 | sub ecx, [ebp + panel1_colst - panel1_data] |
1945 | sub ecx, [ebp + panel1_colst - panel1_data] |
1740 | jae .gr_end |
1946 | jae .gr_end |
1741 | @@: jmp .done_redraw |
1947 | @@: jmp .done_redraw |
1742 | .less_start: |
1948 | .less_start: |
1743 | add [ebp + panel1_start - panel1_data], ecx |
1949 | add [ebp + panel1_start - panel1_data], ecx |
1744 | jmp @b |
1950 | jmp @b |
1745 | .gr_end: |
1951 | .gr_end: |
1746 | inc ecx |
1952 | inc ecx |
1747 | add [ebp + panel1_start - panel1_data], ecx |
1953 | add [ebp + panel1_start - panel1_data], ecx |
1748 | jmp @b |
1954 | jmp @b |
1749 | .alt_f12: |
1955 | .alt_f12: |
1750 | mov ebp, panel1_data |
1956 | mov ebp, panel1_data |
1751 | cmp al, 0x3B |
1957 | cmp al, 0x3B |
1752 | jz @f |
1958 | jz @f |
1753 | mov ebp, panel2_data |
1959 | mov ebp, panel2_data |
1754 | @@: |
1960 | @@: |
1755 | ; get drives list |
1961 | ; get drives list |
1756 | mov ebx, dirinfo |
1962 | mov ebx, dirinfo |
1757 | mov [ebx+dirinfo.size-dirinfo], 1 |
1963 | mov [ebx+dirinfo.size-dirinfo], 1 |
1758 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
1964 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
1759 | mov [ebx+dirinfo.name-dirinfo], tmpname |
1965 | mov [ebx+dirinfo.name-dirinfo], tmpname |
1760 | mov byte [tmpname], '/' |
1966 | mov byte [tmpname], '/' |
1761 | xor edx, edx |
1967 | xor edx, edx |
1762 | xor ecx, ecx |
1968 | xor ecx, ecx |
1763 | .drive_loop_e: |
1969 | .drive_loop_e: |
1764 | mov byte [tmpname+1], 0 |
1970 | mov byte [tmpname+1], 0 |
1765 | push 70 |
1971 | push 70 |
1766 | pop eax |
1972 | pop eax |
1767 | int 40h |
1973 | int 40h |
1768 | mov ebx, dirinfo |
1974 | mov ebx, dirinfo |
1769 | test eax, eax |
1975 | test eax, eax |
1770 | jnz .drive_loop_e_done |
1976 | jnz .drive_loop_e_done |
1771 | mov esi, driveinfo+32+40 |
1977 | mov esi, driveinfo+32+40 |
1772 | mov edi, tmpname+1 |
1978 | mov edi, tmpname+1 |
1773 | @@: |
1979 | @@: |
1774 | lodsb |
1980 | lodsb |
1775 | stosb |
1981 | stosb |
1776 | test al, al |
1982 | test al, al |
1777 | jnz @b |
1983 | jnz @b |
1778 | push [ebx+dirinfo.first-dirinfo] |
1984 | push [ebx+dirinfo.first-dirinfo] |
1779 | and [ebx+dirinfo.first-dirinfo], 0 |
1985 | and [ebx+dirinfo.first-dirinfo], 0 |
1780 | .drive_loop_i: |
1986 | .drive_loop_i: |
1781 | push 70 |
1987 | push 70 |
1782 | pop eax |
1988 | pop eax |
1783 | int 40h |
1989 | int 40h |
1784 | mov ebx, dirinfo |
1990 | mov ebx, dirinfo |
1785 | test eax, eax |
1991 | test eax, eax |
1786 | jnz .drive_loop_i_done |
1992 | jnz .drive_loop_i_done |
1787 | add ecx, 32+8 |
1993 | add ecx, 32+8 |
1788 | push ecx |
1994 | push ecx |
1789 | and ecx, 0xFFF |
1995 | and ecx, 0xFFF |
1790 | cmp ecx, 32+8 |
1996 | cmp ecx, 32+8 |
1791 | pop ecx |
1997 | pop ecx |
1792 | ja @f |
1998 | ja @f |
1793 | call xpgrealloc |
1999 | call xpgrealloc |
1794 | mov edx, eax |
2000 | mov edx, eax |
1795 | test eax, eax |
2001 | test eax, eax |
1796 | jnz @f |
2002 | jnz @f |
1797 | pop eax |
2003 | pop eax |
1798 | ret |
2004 | ret |
1799 | @@: |
2005 | @@: |
1800 | lea edi, [edx+ecx-32] |
2006 | lea edi, [edx+ecx-32] |
1801 | mov esi, tmpname |
2007 | mov esi, tmpname |
1802 | @@: |
2008 | @@: |
1803 | lodsb |
2009 | lodsb |
1804 | test al, al |
2010 | test al, al |
1805 | jz @f |
2011 | jz @f |
1806 | stosb |
2012 | stosb |
1807 | jmp @b |
2013 | jmp @b |
1808 | @@: |
2014 | @@: |
1809 | mov esi, driveinfo+32+40 |
2015 | mov esi, driveinfo+32+40 |
1810 | mov al, '/' |
2016 | mov al, '/' |
1811 | stosb |
2017 | stosb |
1812 | @@: |
2018 | @@: |
1813 | lodsb |
2019 | lodsb |
1814 | stosb |
2020 | stosb |
1815 | test al, al |
2021 | test al, al |
1816 | jnz @b |
2022 | jnz @b |
1817 | inc [ebx+dirinfo.first-dirinfo] |
2023 | inc [ebx+dirinfo.first-dirinfo] |
1818 | jmp .drive_loop_i |
2024 | jmp .drive_loop_i |
1819 | .drive_loop_i_done: |
2025 | .drive_loop_i_done: |
1820 | pop [ebx+dirinfo.first-dirinfo] |
2026 | pop [ebx+dirinfo.first-dirinfo] |
1821 | inc [ebx+dirinfo.first-dirinfo] |
2027 | inc [ebx+dirinfo.first-dirinfo] |
1822 | jmp .drive_loop_e |
2028 | jmp .drive_loop_e |
1823 | .drive_loop_e_done: |
2029 | .drive_loop_e_done: |
1824 | and [ebx+dirinfo.first-dirinfo], 0 |
2030 | and [ebx+dirinfo.first-dirinfo], 0 |
1825 | mov edi, edx |
2031 | mov edi, edx |
1826 | xor esi, esi |
2032 | xor esi, esi |
1827 | add ecx, edx |
2033 | add ecx, edx |
1828 | @@: |
2034 | @@: |
1829 | and dword [edi], 0 |
2035 | and dword [edi], 0 |
1830 | mov dword [edi+4], esi |
2036 | mov dword [edi+4], esi |
1831 | mov esi, edi |
2037 | mov esi, edi |
1832 | add edi, 32+8 |
2038 | add edi, 32+8 |
1833 | cmp edi, ecx |
2039 | cmp edi, ecx |
1834 | jae @f |
2040 | jae @f |
1835 | mov [esi], edi |
2041 | mov [esi], edi |
1836 | jmp @b |
2042 | jmp @b |
1837 | @@: |
2043 | @@: |
1838 | mov ecx, edx |
2044 | mov ecx, edx |
1839 | lea edi, [ebp + panel1_dir - panel1_data] |
2045 | lea edi, [ebp + panel1_dir - panel1_data] |
1840 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2046 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1841 | jz .find_cur_drive_loop |
2047 | jz .find_cur_drive_loop |
1842 | mov edi, [ebp + panel1_parents - panel1_data] |
2048 | mov edi, [ebp + panel1_parents - panel1_data] |
1843 | add edi, 8 |
2049 | add edi, 8 |
1844 | .find_cur_drive_loop: |
2050 | .find_cur_drive_loop: |
1845 | push edi |
2051 | push edi |
1846 | lea esi, [ecx+8] |
2052 | lea esi, [ecx+8] |
1847 | @@: |
2053 | @@: |
1848 | lodsb |
2054 | lodsb |
1849 | test al, al |
2055 | test al, al |
1850 | jz .cur_drive_found |
2056 | jz .cur_drive_found |
1851 | call match_symbol |
2057 | call match_symbol |
1852 | jnz @f |
2058 | jnz @f |
1853 | inc edi |
2059 | inc edi |
1854 | jmp @b |
2060 | jmp @b |
1855 | @@: |
2061 | @@: |
1856 | cmp dword [ecx], 0 |
2062 | cmp dword [ecx], 0 |
1857 | jz @f |
2063 | jz @f |
1858 | pop edi |
2064 | pop edi |
1859 | mov ecx, [ecx] |
2065 | mov ecx, [ecx] |
1860 | jmp .find_cur_drive_loop |
2066 | jmp .find_cur_drive_loop |
1861 | @@: |
2067 | @@: |
1862 | mov ecx, edx |
2068 | mov ecx, edx |
1863 | .cur_drive_found: |
2069 | .cur_drive_found: |
1864 | pop edi |
2070 | pop edi |
1865 | push 1 |
2071 | push 1 |
1866 | push aDrive |
2072 | push aDrive |
1867 | push ecx |
2073 | push ecx |
1868 | mov eax, [ebp + panel1_height - panel1_data] |
2074 | mov eax, [ebp + panel1_height - panel1_data] |
1869 | sub eax, 2 |
2075 | sub eax, 2 |
1870 | jae @f |
2076 | jae @f |
1871 | add eax, 2 |
2077 | add eax, 2 |
1872 | @@: |
2078 | @@: |
1873 | push eax |
2079 | push eax |
1874 | push [ebp + panel1_width - panel1_data] |
2080 | push [ebp + panel1_width - panel1_data] |
1875 | push [ebp + panel1_top - panel1_data] |
2081 | push [ebp + panel1_top - panel1_data] |
1876 | push [ebp + panel1_left - panel1_data] |
2082 | push [ebp + panel1_left - panel1_data] |
1877 | call menu_centered_in |
2083 | call menu_centered_in |
1878 | cmp eax, -1 |
2084 | cmp eax, -1 |
1879 | jnz @f |
2085 | jnz @f |
1880 | mov ecx, edx |
2086 | mov ecx, edx |
1881 | call pgfree |
2087 | call pgfree |
1882 | ret |
2088 | ret |
1883 | @@: |
2089 | @@: |
1884 | push eax |
2090 | push eax |
1885 | push edx |
2091 | push edx |
1886 | call close_plugin_panels |
2092 | call close_plugin_panels |
1887 | pop edx |
2093 | pop edx |
1888 | lea edi, [ebp + panel1_dir - panel1_data] |
2094 | lea edi, [ebp + panel1_dir - panel1_data] |
1889 | push edi |
2095 | push edi |
1890 | mov esi, edi |
2096 | mov esi, edi |
1891 | mov edi, prev_dir |
2097 | mov edi, prev_dir |
1892 | mov ecx, 1024/4 |
2098 | mov ecx, 1024/4 |
1893 | rep movsd |
2099 | rep movsd |
1894 | pop edi |
2100 | pop edi |
1895 | pop esi |
2101 | pop esi |
1896 | add esi, 8 |
2102 | add esi, 8 |
1897 | @@: |
2103 | @@: |
1898 | lodsb |
2104 | lodsb |
1899 | stosb |
2105 | stosb |
1900 | test al, al |
2106 | test al, al |
1901 | jnz @b |
2107 | jnz @b |
1902 | mov ecx, edx |
2108 | mov ecx, edx |
1903 | call pgfree |
2109 | call pgfree |
1904 | call read_folder |
2110 | call read_folder |
1905 | jmp .done_redraw |
2111 | jmp .done_redraw |
1906 | .shift_f5: |
2112 | .shift_f5: |
1907 | ; todo: copy to plugin panel |
2113 | ; todo: copy to plugin panel |
1908 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2114 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1909 | jz @f |
2115 | jz @f |
1910 | ret |
2116 | ret |
1911 | @@: |
2117 | @@: |
1912 | mov esi, ebp |
2118 | mov esi, ebp |
1913 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2119 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
1914 | jnz .f5_2 |
2120 | jnz .f5_2 |
1915 | call get_curfile_folder_entry |
2121 | call get_curfile_folder_entry |
1916 | lea esi, [ecx+40] |
2122 | lea esi, [ecx+40] |
1917 | mov edi, CopyDestEditBuf |
2123 | mov edi, CopyDestEditBuf |
1918 | mov eax, CopyDestEditBuf.length |
2124 | mov eax, CopyDestEditBuf.length |
1919 | stosd |
2125 | stosd |
1920 | scasd |
2126 | scasd |
1921 | xor eax, eax |
2127 | xor eax, eax |
1922 | stosd |
2128 | stosd |
1923 | mov edx, edi |
2129 | mov edx, edi |
1924 | @@: |
2130 | @@: |
1925 | lodsb |
2131 | lodsb |
1926 | test al, al |
2132 | test al, al |
1927 | jz .f5_common |
2133 | jz .f5_common |
1928 | stosb |
2134 | stosb |
1929 | jmp @b |
2135 | jmp @b |
1930 | .f5: |
2136 | .f5: |
1931 | ; todo: copy to plugin panel |
2137 | ; todo: copy to plugin panel |
1932 | mov esi, ebp |
2138 | mov esi, ebp |
1933 | xor esi, panel1_data xor panel2_data |
2139 | xor esi, panel1_data xor panel2_data |
1934 | cmp [esi + panel1_hPlugin - panel1_data], 0 |
2140 | cmp [esi + panel1_hPlugin - panel1_data], 0 |
1935 | jz .f5_2 |
2141 | jz .f5_2 |
1936 | ret |
2142 | ret |
1937 | .f5_2: |
2143 | .f5_2: |
1938 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
- | |
1939 | mov [source_hModule], eax |
- | |
1940 | mov eax, [ebp + panel1_hFile - panel1_data] |
- | |
1941 | mov [source_hPlugin], eax |
- | |
1942 | mov eax, left_dotdot_entry |
- | |
1943 | cmp ebp, panel1_data |
- | |
1944 | jz @f |
- | |
1945 | add eax, right_dotdot_entry-left_dotdot_entry |
- | |
1946 | @@: |
- | |
1947 | mov [default_attr], eax |
- | |
1948 | add esi, panel1_dir - panel1_data |
2144 | add esi, panel1_dir - panel1_data |
1949 | mov edi, CopyDestEditBuf |
2145 | mov edi, CopyDestEditBuf |
1950 | mov eax, CopyDestEditBuf.length |
2146 | mov eax, CopyDestEditBuf.length |
1951 | stosd |
2147 | stosd |
1952 | scasd |
2148 | scasd |
1953 | xor eax, eax |
2149 | xor eax, eax |
1954 | stosd |
2150 | stosd |
1955 | mov edx, edi |
2151 | mov edx, edi |
1956 | @@: |
2152 | @@: |
1957 | lodsb |
2153 | lodsb |
1958 | test al, al |
2154 | test al, al |
1959 | jz @f |
2155 | jz @f |
1960 | cmp edi, CopyDestEditBuf+12+511 |
2156 | cmp edi, CopyDestEditBuf+12+511 |
1961 | jae .bigfoldername |
2157 | jae .bigfoldername |
1962 | stosb |
2158 | stosb |
1963 | jmp @b |
2159 | jmp @b |
1964 | @@: |
2160 | @@: |
1965 | mov al, '/' |
2161 | mov al, '/' |
1966 | stosb |
2162 | stosb |
1967 | .f5_common: |
2163 | .f5_common: |
- | 2164 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
|
- | 2165 | mov [source_hModule], eax |
|
- | 2166 | mov eax, [ebp + panel1_hFile - panel1_data] |
|
- | 2167 | mov [source_hPlugin], eax |
|
- | 2168 | mov eax, left_dotdot_entry |
|
- | 2169 | cmp ebp, panel1_data |
|
- | 2170 | jz @f |
|
- | 2171 | add eax, right_dotdot_entry-left_dotdot_entry |
|
- | 2172 | @@: |
|
- | 2173 | mov [default_attr], eax |
|
1968 | mov byte [edi], 0 |
2174 | mov byte [edi], 0 |
1969 | sub edi, edx |
2175 | sub edi, edx |
1970 | mov [edx-8], edi |
2176 | mov [edx-8], edi |
1971 | mov edi, CopySourceTextBuf |
2177 | mov edi, CopySourceTextBuf |
1972 | mov esi, aCopy1 |
2178 | mov esi, aCopy1 |
1973 | @@: |
2179 | @@: |
1974 | lodsb |
2180 | lodsb |
1975 | test al, al |
2181 | test al, al |
1976 | jz @f |
2182 | jz @f |
1977 | stosb |
2183 | stosb |
1978 | jmp @b |
2184 | jmp @b |
1979 | @@: |
2185 | @@: |
1980 | mov eax, [ebp + panel1_selected_num - panel1_data] |
2186 | mov eax, [ebp + panel1_selected_num - panel1_data] |
1981 | test eax, eax |
2187 | test eax, eax |
1982 | jz .f5_noselected1 |
2188 | jz .f5_noselected1 |
1983 | mov ebx, eax |
2189 | mov ebx, eax |
1984 | push 10 |
2190 | push 10 |
1985 | pop ecx |
2191 | pop ecx |
1986 | push -'0' |
2192 | push -'0' |
1987 | @@: |
2193 | @@: |
1988 | xor edx, edx |
2194 | xor edx, edx |
1989 | div ecx |
2195 | div ecx |
1990 | push edx |
2196 | push edx |
1991 | test eax, eax |
2197 | test eax, eax |
1992 | jnz @b |
2198 | jnz @b |
1993 | @@: |
2199 | @@: |
1994 | pop eax |
2200 | pop eax |
1995 | add al, '0' |
2201 | add al, '0' |
1996 | jz @f |
2202 | jz @f |
1997 | stosb |
2203 | stosb |
1998 | jmp @b |
2204 | jmp @b |
1999 | @@: |
2205 | @@: |
2000 | if lang eq ru |
2206 | if lang eq ru |
2001 | mov dword [edi], ' í«¥' |
2207 | mov dword [edi], ' í«¥' |
2002 | mov dword [edi+4], '¬¥â' |
2208 | mov dword [edi+4], '¬¥â' |
2003 | add edi, 8 |
2209 | add edi, 8 |
2004 | cmp ebx, 1 |
2210 | cmp ebx, 1 |
2005 | jz @f |
2211 | jz @f |
2006 | mov al, ' ' |
2212 | mov al, ' ' |
2007 | stosb |
2213 | stosb |
2008 | cmp ebx, 4 |
2214 | cmp ebx, 4 |
2009 | jbe @f |
2215 | jbe @f |
2010 | mov word [edi-1], '®¢' |
2216 | mov word [edi-1], '®¢' |
2011 | inc edi |
2217 | inc edi |
2012 | @@: |
2218 | @@: |
2013 | else |
2219 | else |
2014 | mov dword [edi], ' ite' |
2220 | mov dword [edi], ' ite' |
2015 | mov byte [edi+4], 'm' |
2221 | mov byte [edi+4], 'm' |
2016 | add edi, 5 |
2222 | add edi, 5 |
2017 | cmp ebx, 1 |
2223 | cmp ebx, 1 |
2018 | jz @f |
2224 | jz @f |
2019 | mov al, 's' |
2225 | mov al, 's' |
2020 | stosb |
2226 | stosb |
2021 | @@: |
2227 | @@: |
2022 | end if |
2228 | end if |
2023 | jmp .f5_selected1 |
2229 | jmp .f5_selected1 |
2024 | .f5_noselected1: |
2230 | .f5_noselected1: |
2025 | mov al, '"' |
2231 | mov al, '"' |
2026 | stosb |
2232 | stosb |
2027 | call get_curfile_folder_entry |
2233 | call get_curfile_folder_entry |
2028 | lea esi, [ecx+40] |
2234 | lea esi, [ecx+40] |
2029 | lea eax, [esi+1] |
2235 | lea eax, [esi+1] |
2030 | @@: |
2236 | @@: |
2031 | inc esi |
2237 | inc esi |
2032 | cmp byte [esi-1], 0 |
2238 | cmp byte [esi-1], 0 |
2033 | jnz @b |
2239 | jnz @b |
2034 | sub esi, eax |
2240 | sub esi, eax |
2035 | xchg eax, esi |
2241 | xchg eax, esi |
2036 | dec esi |
2242 | dec esi |
2037 | mov edx, [cur_width] |
2243 | mov edx, [cur_width] |
2038 | sub edx, 50 |
2244 | sub edx, 50 |
2039 | sub eax, edx |
2245 | sub eax, edx |
2040 | jbe @f |
2246 | jbe @f |
2041 | add esi, eax |
2247 | add esi, eax |
2042 | mov al, '.' |
2248 | mov al, '.' |
2043 | stosb |
2249 | stosb |
2044 | stosb |
2250 | stosb |
2045 | stosb |
2251 | stosb |
2046 | @@: |
2252 | @@: |
2047 | lodsb |
2253 | lodsb |
2048 | test al, al |
2254 | test al, al |
2049 | jz @f |
2255 | jz @f |
2050 | stosb |
2256 | stosb |
2051 | jmp @b |
2257 | jmp @b |
2052 | @@: |
2258 | @@: |
2053 | mov al, '"' |
2259 | mov al, '"' |
2054 | stosb |
2260 | stosb |
2055 | .f5_selected1: |
2261 | .f5_selected1: |
2056 | mov esi, aCopy2 |
2262 | mov esi, aCopy2 |
2057 | @@: |
2263 | @@: |
2058 | lodsb |
2264 | lodsb |
2059 | stosb |
2265 | stosb |
2060 | test al, al |
2266 | test al, al |
2061 | jnz @b |
2267 | jnz @b |
2062 | mov ebx, copy_dlgdata |
2268 | mov ebx, copy_dlgdata |
2063 | mov eax, [cur_width] |
2269 | mov eax, [cur_width] |
2064 | sub eax, 12 |
2270 | sub eax, 12 |
2065 | mov [ebx + dlgtemplate.width], eax |
2271 | mov [ebx + dlgtemplate.width], eax |
2066 | dec eax |
2272 | dec eax |
2067 | dec eax |
2273 | dec eax |
2068 | mov [ebx - copy_dlgdata + copy_dlgdata.width2], eax |
2274 | mov [ebx - copy_dlgdata + copy_dlgdata.width2], eax |
2069 | mov [ebx - copy_dlgdata + copy_dlgdata.width3], eax |
2275 | mov [ebx - copy_dlgdata + copy_dlgdata.width3], eax |
2070 | shr eax, 1 |
2276 | shr eax, 1 |
2071 | dec eax |
2277 | dec eax |
2072 | dec eax |
2278 | dec eax |
2073 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x2], eax |
2279 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x2], eax |
2074 | sub eax, aCopyLength-1 |
2280 | sub eax, aCopyLength-1 |
2075 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x1], eax |
2281 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x1], eax |
2076 | add eax, aCopyLength+3 |
2282 | add eax, aCopyLength+3 |
2077 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x1], eax |
2283 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x1], eax |
2078 | add eax, aCancelBLength - 1 |
2284 | add eax, aCancelBLength - 1 |
2079 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x2], eax |
2285 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x2], eax |
2080 | mov byte [ebx - copy_dlgdata + copy_dlgdata.flags0], 0xC |
2286 | mov byte [ebx - copy_dlgdata + copy_dlgdata.flags0], 0xC |
2081 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags1], not 4 |
2287 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags1], not 4 |
2082 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags2], not 4 |
2288 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags2], not 4 |
2083 | push ebx |
2289 | push ebx |
2084 | call DialogBox |
2290 | call DialogBox |
2085 | cmp eax, copy_dlgdata.copy_btn |
2291 | cmp eax, copy_dlgdata.copy_btn |
2086 | jnz .ret2 |
2292 | jnz .ret2 |
2087 | ; ®¯¨à㥬 |
2293 | ; ®¯¨à㥬 |
2088 | mov esi, CopyDestEditBuf+12 |
2294 | mov esi, CopyDestEditBuf+12 |
2089 | mov edi, esi |
2295 | mov edi, esi |
2090 | xor eax, eax |
2296 | xor eax, eax |
2091 | or ecx, -1 |
2297 | or ecx, -1 |
2092 | repnz scasb |
2298 | repnz scasb |
2093 | dec edi |
2299 | dec edi |
2094 | dec edi |
2300 | dec edi |
2095 | cmp edi, esi |
2301 | cmp edi, esi |
2096 | jb .ret2 |
2302 | jb .ret2 |
2097 | mov [bEndSlash], 0 |
2303 | mov [bEndSlash], 0 |
2098 | cmp byte [edi], '/' |
2304 | cmp byte [edi], '/' |
2099 | jnz @f |
2305 | jnz @f |
2100 | cmp edi, esi |
2306 | cmp edi, esi |
2101 | jz @f |
2307 | jz @f |
2102 | mov byte [edi], 0 |
2308 | mov byte [edi], 0 |
2103 | dec edi |
2309 | dec edi |
2104 | mov [bEndSlash], 1 |
2310 | mov [bEndSlash], 1 |
2105 | @@: |
2311 | @@: |
2106 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
2312 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
2107 | cmp byte [esi], '/' |
2313 | cmp byte [esi], '/' |
2108 | jz .copy_absolute_path |
2314 | jz .copy_absolute_path |
2109 | push esi |
2315 | push esi |
2110 | push edi |
2316 | push edi |
2111 | lea edi, [ebp + panel1_dir - panel1_data] |
2317 | lea edi, [ebp + panel1_dir - panel1_data] |
2112 | or ecx, -1 |
2318 | or ecx, -1 |
2113 | xor eax, eax |
2319 | xor eax, eax |
2114 | repnz scasb |
2320 | repnz scasb |
2115 | not ecx |
2321 | not ecx |
2116 | pop edi |
2322 | pop edi |
2117 | push edi |
2323 | push edi |
2118 | add edi, ecx |
2324 | add edi, ecx |
2119 | cmp edi, CopyDestEditBuf+12+513 |
2325 | cmp edi, CopyDestEditBuf+12+513 |
2120 | pop edi |
2326 | pop edi |
2121 | jb @f |
2327 | jb @f |
2122 | pop esi |
2328 | pop esi |
2123 | jmp .bigfilename |
2329 | jmp .bigfilename |
2124 | @@: |
2330 | @@: |
2125 | lea edx, [edi+2] |
2331 | lea edx, [edi+2] |
2126 | sub edx, esi |
2332 | sub edx, esi |
2127 | lea edi, [edi+ecx+1] |
2333 | lea edi, [edi+ecx+1] |
2128 | xchg ecx, edx |
2334 | xchg ecx, edx |
2129 | std |
2335 | std |
2130 | lea esi, [esi+ecx-1] |
2336 | lea esi, [esi+ecx-1] |
2131 | rep movsb |
2337 | rep movsb |
2132 | cld |
2338 | cld |
2133 | pop edi |
2339 | pop edi |
2134 | lea esi, [ebp + panel1_dir - panel1_data] |
2340 | lea esi, [ebp + panel1_dir - panel1_data] |
2135 | push edi |
2341 | push edi |
2136 | mov ecx, edx |
2342 | mov ecx, edx |
2137 | rep movsb |
2343 | rep movsb |
2138 | mov byte [edi-1], '/' |
2344 | mov byte [edi-1], '/' |
2139 | pop esi |
2345 | pop esi |
2140 | .copy_absolute_path: |
2346 | .copy_absolute_path: |
2141 | ; ç « ᮧ¤ ñ¬ ¢á¥ ¢ë襫¥¦ 騥 ¯ ¯ª¨, ª®â®àë¥ ¥éñ ¥ áãé¥áâ¢ãîâ |
2347 | ; ç « ᮧ¤ ñ¬ ¢á¥ ¢ë襫¥¦ 騥 ¯ ¯ª¨, ª®â®àë¥ ¥éñ ¥ áãé¥áâ¢ãîâ |
2142 | ; ®á«¥¤¨© ¨§ í«¥¬¥â®¢ ¬®¦¥â ¡ëâì ª ª ä ©«®¬, â ª ¨ ¯ ¯ª®©; |
2348 | ; ®á«¥¤¨© ¨§ í«¥¬¥â®¢ ¬®¦¥â ¡ëâì ª ª ä ©«®¬, â ª ¨ ¯ ¯ª®©; |
2143 | ; ä®àá¨à㥬 ¯ ¯ªã ¢ á«ãç ¥, ¥á«¨ å®âï ¡ë ®¤¨ ¨§ ¨áâ®ç¨ª®¢ ï¥âáï ¯ ¯ª®© |
2349 | ; ä®àá¨à㥬 ¯ ¯ªã ¢ á«ãç ¥, ¥á«¨ å®âï ¡ë ®¤¨ ¨§ ¨áâ®ç¨ª®¢ ï¥âáï ¯ ¯ª®© |
2144 | xor edx, edx |
2350 | xor edx, edx |
2145 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2351 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2146 | jz .f5_noselected2 |
2352 | jz .f5_noselected2 |
2147 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2353 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2148 | mov edi, [ebp + panel1_files - panel1_data] |
2354 | mov edi, [ebp + panel1_files - panel1_data] |
2149 | .scanselected2: |
2355 | .scanselected2: |
2150 | mov eax, [edi] |
2356 | mov eax, [edi] |
2151 | add edi, 4 |
2357 | add edi, 4 |
2152 | test byte [eax+303], 1 |
2358 | test byte [eax+303], 1 |
2153 | jz @f |
2359 | jz @f |
2154 | test byte [eax], 10h |
2360 | test byte [eax], 10h |
2155 | jz @f |
2361 | jz @f |
2156 | inc edx |
2362 | inc edx |
2157 | @@: |
2363 | @@: |
2158 | loop .scanselected2 |
2364 | loop .scanselected2 |
2159 | jmp .f5_selected2 |
2365 | jmp .f5_selected2 |
2160 | .f5_noselected2: |
2366 | .f5_noselected2: |
2161 | call get_curfile_folder_entry |
2367 | call get_curfile_folder_entry |
2162 | test byte [ecx], 10h |
2368 | test byte [ecx], 10h |
2163 | setnz dl |
2369 | setnz dl |
2164 | .f5_selected2: |
2370 | .f5_selected2: |
2165 | xor eax, eax |
2371 | xor eax, eax |
2166 | mov edi, esi |
2372 | mov edi, esi |
2167 | .countslashloop: |
2373 | .countslashloop: |
2168 | cmp byte [edi], '/' |
2374 | cmp byte [edi], '/' |
2169 | jnz @f |
2375 | jnz @f |
2170 | inc eax |
2376 | inc eax |
2171 | mov ecx, edi |
2377 | mov ecx, edi |
2172 | @@: |
2378 | @@: |
2173 | inc edi |
2379 | inc edi |
2174 | cmp byte [edi], 0 |
2380 | cmp byte [edi], 0 |
2175 | jnz .countslashloop |
2381 | jnz .countslashloop |
2176 | mov [bNeedRestoreName], 0 |
2382 | mov [bNeedRestoreName], 0 |
2177 | ; "/file-system/partition" folders already exist, so we don't need to create them |
2383 | ; "/file-system/partition" folders already exist, so we don't need to create them |
2178 | cmp eax, 2 |
2384 | cmp eax, 2 |
2179 | jbe .createupdone |
2385 | jbe .createupdone |
2180 | ; we interpret destination as folder if edx!=0 or bEndSlash!=0 |
2386 | ; we interpret destination as folder if edx!=0 or bEndSlash!=0 |
2181 | test edx, edx |
2387 | test edx, edx |
2182 | jnz @f |
2388 | jnz @f |
2183 | cmp [bEndSlash], 0 |
2389 | cmp [bEndSlash], 0 |
2184 | jnz @f |
2390 | jnz @f |
2185 | mov edi, ecx |
2391 | mov edi, ecx |
2186 | dec eax |
2392 | dec eax |
2187 | @@: |
2393 | @@: |
2188 | mov [attrinfo.name], esi |
2394 | mov [attrinfo.name], esi |
2189 | mov ecx, eax |
2395 | mov ecx, eax |
2190 | ; ¨é¥¬ ¯®á«¥¤îî ¯ ¯ªã, ª®â®à ï ¥éñ áãé¥áâ¢ã¥â |
2396 | ; ¨é¥¬ ¯®á«¥¤îî ¯ ¯ªã, ª®â®à ï ¥éñ áãé¥áâ¢ã¥â |
2191 | .createuploop1: |
2397 | .createuploop1: |
2192 | cmp eax, 2 |
2398 | cmp eax, 2 |
2193 | jbe .createupdone1 |
2399 | jbe .createupdone1 |
2194 | mov dl, [edi] |
2400 | mov dl, [edi] |
2195 | mov byte [edi], 0 |
2401 | mov byte [edi], 0 |
2196 | push eax |
2402 | push eax |
2197 | push 70 |
2403 | push 70 |
2198 | pop eax |
2404 | pop eax |
2199 | mov ebx, attrinfo |
2405 | mov ebx, attrinfo |
2200 | int 0x40 |
2406 | int 0x40 |
2201 | test eax, eax |
2407 | test eax, eax |
2202 | pop eax |
2408 | pop eax |
2203 | mov byte [edi], dl |
2409 | mov byte [edi], dl |
2204 | jnz .createupcont1 |
2410 | jnz .createupcont1 |
2205 | test byte [attrinfo.attr], 10h |
2411 | test byte [attrinfo.attr], 10h |
2206 | jnz .createupdone1 |
2412 | jnz .createupdone1 |
2207 | ; the item required to be a folder, but is file |
2413 | ; the item required to be a folder, but is file |
2208 | push aNotFolder |
2414 | push aNotFolder |
2209 | push esi |
2415 | push esi |
2210 | mov eax, esp |
2416 | mov eax, esp |
2211 | push ContinueBtn |
2417 | push ContinueBtn |
2212 | push 1 |
2418 | push 1 |
2213 | push eax |
2419 | push eax |
2214 | push 2 |
2420 | push 2 |
2215 | call SayErr |
2421 | call SayErr |
2216 | pop eax |
2422 | pop eax |
2217 | pop eax |
2423 | pop eax |
2218 | .ret3: |
2424 | .ret3: |
2219 | ret |
2425 | ret |
2220 | .createupcont1: |
2426 | .createupcont1: |
2221 | dec eax |
2427 | dec eax |
2222 | @@: |
2428 | @@: |
2223 | dec edi |
2429 | dec edi |
2224 | cmp byte [edi], '/' |
2430 | cmp byte [edi], '/' |
2225 | jnz @b |
2431 | jnz @b |
2226 | jmp .createuploop1 |
2432 | jmp .createuploop1 |
2227 | .createupdone1: |
2433 | .createupdone1: |
2228 | ; ᮧ¤ ñ¬ ¢á¥ ¯ ¯ª¨, ª®â®àë¥ ¬ ã¦ë |
2434 | ; ᮧ¤ ñ¬ ¢á¥ ¯ ¯ª¨, ª®â®àë¥ ¬ ã¦ë |
2229 | cmp eax, ecx |
2435 | cmp eax, ecx |
2230 | jae .createupdone |
2436 | jae .createupdone |
2231 | @@: |
2437 | @@: |
2232 | inc edi |
2438 | inc edi |
2233 | cmp byte [edi], 0 |
2439 | cmp byte [edi], 0 |
2234 | jz @f |
2440 | jz @f |
2235 | cmp byte [edi], '/' |
2441 | cmp byte [edi], '/' |
2236 | jnz @b |
2442 | jnz @b |
2237 | @@: |
2443 | @@: |
2238 | mov dl, byte [edi] |
2444 | mov dl, byte [edi] |
2239 | mov byte [edi], 0 |
2445 | mov byte [edi], 0 |
2240 | push eax |
2446 | push eax |
2241 | push RetryOrCancelBtn |
2447 | push RetryOrCancelBtn |
2242 | push 2 |
2448 | push 2 |
2243 | call makedir |
2449 | call makedir |
2244 | mov byte [edi], dl |
2450 | mov byte [edi], dl |
2245 | mov [bNeedRestoreName], 1 |
2451 | mov [bNeedRestoreName], 1 |
2246 | pop eax |
2452 | pop eax |
2247 | jnz .ret3 |
2453 | jnz .ret3 |
2248 | inc eax |
2454 | inc eax |
2249 | jmp .createupdone1 |
2455 | jmp .createupdone1 |
2250 | .createupdone: |
2456 | .createupdone: |
2251 | mov dl, 1 |
2457 | mov dl, 1 |
2252 | cmp byte [edi], 1 |
2458 | cmp byte [edi], 1 |
2253 | sbb eax, -1 |
2459 | sbb eax, -1 |
2254 | cmp eax, 2 |
2460 | cmp eax, 2 |
2255 | jbe .docopy |
2461 | jbe .docopy |
2256 | mov [attrinfo.attr], 0 ; assume zero attributes if error |
2462 | mov [attrinfo.attr], 0 ; assume zero attributes if error |
2257 | push 70 |
2463 | push 70 |
2258 | pop eax |
2464 | pop eax |
2259 | mov ebx, attrinfo |
2465 | mov ebx, attrinfo |
2260 | int 0x40 |
2466 | int 0x40 |
2261 | test [attrinfo.attr], 10h |
2467 | test [attrinfo.attr], 10h |
2262 | setnz dl |
2468 | setnz dl |
2263 | .docopy: |
2469 | .docopy: |
2264 | call get_curfile_folder_entry |
2470 | call get_curfile_folder_entry |
2265 | mov eax, ecx |
2471 | mov eax, ecx |
2266 | cmp [bNeedRestoreName], 0 |
2472 | cmp [bNeedRestoreName], 0 |
2267 | jz @f |
2473 | jz @f |
2268 | cmp [bEndSlash], 0 |
2474 | cmp [bEndSlash], 0 |
2269 | jnz @f |
2475 | jnz @f |
2270 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2476 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2271 | jnz @f |
2477 | jnz @f |
2272 | test byte [eax], 10h |
2478 | test byte [eax], 10h |
2273 | jz @f |
2479 | jz @f |
2274 | mov dl, 0 |
2480 | mov dl, 0 |
2275 | @@: |
2481 | @@: |
2276 | ; ç¨ ¥¬ ᮡá⢥® ª®¯¨à®¢ ¨¥ |
2482 | ; ç¨ ¥¬ ᮡá⢥® ª®¯¨à®¢ ¨¥ |
2277 | mov [bDestIsFolder], dl |
2483 | mov [bDestIsFolder], dl |
2278 | mov [copy_bSkipAll], 0 |
2484 | mov [copy_bSkipAll], 0 |
2279 | mov [copy_bSkipAll2], 0 |
2485 | mov [copy_bSkipAll2], 0 |
2280 | mov [copy_bSkipAll3], 0 |
2486 | mov [copy_bSkipAll3], 0 |
2281 | test [ebp + panel1_plugin_flags - panel1_data], 2 |
2487 | test [ebp + panel1_plugin_flags - panel1_data], 2 |
2282 | jnz .copy_GetFiles |
2488 | jnz .copy_GetFiles |
2283 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2489 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2284 | jnz .f5_selected3 |
2490 | jnz .f5_selected3 |
2285 | call copy_file |
2491 | call copy_file |
2286 | .copydone: |
2492 | .copydone: |
2287 | push ebp |
2493 | push ebp |
2288 | call .ctrl_r |
2494 | call .ctrl_r |
2289 | pop ebp |
2495 | pop ebp |
2290 | xor ebp, panel1_data xor panel2_data |
2496 | xor ebp, panel1_data xor panel2_data |
2291 | jmp .ctrl_r |
2497 | jmp .ctrl_r |
2292 | .f5_selected3: |
2498 | .f5_selected3: |
2293 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2499 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2294 | mov esi, [ebp + panel1_files - panel1_data] |
2500 | mov esi, [ebp + panel1_files - panel1_data] |
2295 | .f5_selected_copyloop: |
2501 | .f5_selected_copyloop: |
2296 | lodsd |
2502 | lodsd |
2297 | test byte [eax+303], 1 |
2503 | test byte [eax+303], 1 |
2298 | jz .f5_selected_copycont |
2504 | jz .f5_selected_copycont |
2299 | mov [bDestIsFolder], dl |
2505 | mov [bDestIsFolder], dl |
2300 | call copy_file |
2506 | call copy_file |
2301 | ja .f5_multiple_cancel |
2507 | ja .f5_multiple_cancel |
2302 | and byte [eax+303], not 1 |
2508 | and byte [eax+303], not 1 |
2303 | pushad |
2509 | pushad |
2304 | call draw_panel |
2510 | call draw_panel |
2305 | cmp [bNeedRestoreName], 0 |
2511 | cmp [bNeedRestoreName], 0 |
2306 | jz @f |
2512 | jz @f |
2307 | mov esi, CopyDestEditBuf+12 |
2513 | mov esi, CopyDestEditBuf+12 |
2308 | call delete_last_name_from_end |
2514 | call delete_last_name_from_end |
2309 | @@: |
2515 | @@: |
2310 | popad |
2516 | popad |
2311 | .f5_selected_copycont: |
2517 | .f5_selected_copycont: |
2312 | loop .f5_selected_copyloop |
2518 | loop .f5_selected_copyloop |
2313 | .f5_multiple_cancel: |
2519 | .f5_multiple_cancel: |
2314 | jmp .copydone |
2520 | jmp .copydone |
2315 | .copy_GetFiles: |
2521 | .copy_GetFiles: |
2316 | mov ecx, [ebp + panel1_selected_num - panel1_data] |
2522 | mov ecx, [ebp + panel1_selected_num - panel1_data] |
2317 | cmp ecx, 1 |
2523 | cmp ecx, 1 |
2318 | adc ecx, 0 |
2524 | adc ecx, 0 |
2319 | shl ecx, 2 |
2525 | shl ecx, 2 |
2320 | call xpgalloc |
2526 | call xpgalloc |
2321 | test eax, eax |
2527 | test eax, eax |
2322 | jnz @f |
2528 | jnz @f |
2323 | ret |
2529 | ret |
2324 | @@: |
2530 | @@: |
2325 | push ebp eax ; save |
2531 | push ebp eax ; save |
2326 | push copy_AddDir ; adddir |
2532 | push copy_AddDir ; adddir |
2327 | push copy_AddFile ; addfile |
2533 | push copy_AddFile ; addfile |
2328 | push eax ; items |
2534 | push eax ; items |
2329 | shr ecx, 2 |
2535 | shr ecx, 2 |
2330 | push ecx ; NumItems |
2536 | push ecx ; NumItems |
2331 | push [ebp + panel1_hFile - panel1_data] |
2537 | push [ebp + panel1_hFile - panel1_data] |
2332 | mov edi, eax |
2538 | mov edi, eax |
2333 | call get_curfile_folder_entry |
2539 | call get_curfile_folder_entry |
2334 | mov [edi], ecx |
2540 | mov [edi], ecx |
2335 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2541 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2336 | jz .cgf1 |
2542 | jz .cgf1 |
2337 | mov esi, [ebp + panel1_files - panel1_data] |
2543 | mov esi, [ebp + panel1_files - panel1_data] |
2338 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2544 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2339 | .cgf0: |
2545 | .cgf0: |
2340 | lodsd |
2546 | lodsd |
2341 | test byte [eax+303], 1 |
2547 | test byte [eax+303], 1 |
2342 | jz @f |
2548 | jz @f |
2343 | stosd |
2549 | stosd |
2344 | @@: |
2550 | @@: |
2345 | loop .cgf0 |
2551 | loop .cgf0 |
2346 | .cgf1: |
2552 | .cgf1: |
2347 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2553 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2348 | call [eax+PluginInfo.GetFiles] |
2554 | call [eax+PluginInfo.GetFiles] |
2349 | pop ecx ebp |
2555 | pop ecx ebp |
2350 | call pgfree |
2556 | call pgfree |
2351 | jmp .copydone |
2557 | jmp .copydone |
2352 | 2558 | ||
2353 | .f3: |
2559 | .f3: |
2354 | call view_file |
2560 | call view_file |
2355 | .ret2: |
2561 | .ret2: |
2356 | ret |
2562 | ret |
- | 2563 | .f4: |
|
- | 2564 | call edit_file |
|
- | 2565 | ret |
|
2357 | .f8_has_selected: |
2566 | .f8_has_selected: |
2358 | mov edi, saved_file_name+511 |
2567 | mov edi, saved_file_name+511 |
2359 | mov byte [edi], 0 |
2568 | mov byte [edi], 0 |
2360 | mov eax, [ebp + panel1_selected_num - panel1_data] |
2569 | mov eax, [ebp + panel1_selected_num - panel1_data] |
2361 | if lang eq ru |
2570 | if lang eq ru |
2362 | cmp eax, 1 |
2571 | cmp eax, 1 |
2363 | jz @f |
2572 | jz @f |
2364 | dec edi |
2573 | dec edi |
2365 | mov byte [edi], ' ' |
2574 | mov byte [edi], ' ' |
2366 | cmp eax, 4 |
2575 | cmp eax, 4 |
2367 | jbe @f |
2576 | jbe @f |
2368 | dec edi |
2577 | dec edi |
2369 | mov word [edi], '®¢' |
2578 | mov word [edi], '®¢' |
2370 | @@: |
2579 | @@: |
2371 | mov dword [edi-4], '¬¥â' |
2580 | mov dword [edi-4], '¬¥â' |
2372 | mov dword [edi-8], ' í«¥' |
2581 | mov dword [edi-8], ' í«¥' |
2373 | sub edi, 8 |
2582 | sub edi, 8 |
2374 | else |
2583 | else |
2375 | cmp eax, 1 |
2584 | cmp eax, 1 |
2376 | jz @f |
2585 | jz @f |
2377 | dec edi |
2586 | dec edi |
2378 | mov byte [edi], 's' |
2587 | mov byte [edi], 's' |
2379 | @@: |
2588 | @@: |
2380 | mov dword [edi-4], 'item' |
2589 | mov dword [edi-4], 'item' |
2381 | mov byte [edi-5], ' ' |
2590 | mov byte [edi-5], ' ' |
2382 | sub edi, 5 |
2591 | sub edi, 5 |
2383 | end if |
2592 | end if |
2384 | xor edx, edx |
2593 | xor edx, edx |
2385 | push 10 |
2594 | push 10 |
2386 | pop ecx |
2595 | pop ecx |
2387 | @@: |
2596 | @@: |
2388 | div ecx |
2597 | div ecx |
2389 | add dl, '0' |
2598 | add dl, '0' |
2390 | dec edi |
2599 | dec edi |
2391 | mov [edi], dl |
2600 | mov [edi], dl |
2392 | xor edx, edx |
2601 | xor edx, edx |
2393 | test eax, eax |
2602 | test eax, eax |
2394 | jnz @b |
2603 | jnz @b |
2395 | push edi |
2604 | push edi |
2396 | push aConfirmDeleteText |
2605 | push aConfirmDeleteText |
2397 | mov eax, esp |
2606 | mov eax, esp |
2398 | push DeleteOrCancelBtn |
2607 | push DeleteOrCancelBtn |
2399 | push 2 |
2608 | push 2 |
2400 | push eax |
2609 | push eax |
2401 | push 2 |
2610 | push 2 |
2402 | push aDeleteCaption |
2611 | push aDeleteCaption |
2403 | call Message |
2612 | call Message |
2404 | add esp, 8 |
2613 | add esp, 8 |
2405 | test eax, eax |
2614 | test eax, eax |
2406 | jnz .ret2 |
2615 | jnz .ret2 |
2407 | mov [del_bSkipAll], 0 |
2616 | mov [del_bSkipAll], 0 |
2408 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2617 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2409 | jecxz .ret2 |
2618 | jecxz .ret2 |
2410 | mov esi, [ebp + panel1_files - panel1_data] |
2619 | mov esi, [ebp + panel1_files - panel1_data] |
2411 | .f8_loop: |
2620 | .f8_loop: |
2412 | lodsd |
2621 | lodsd |
2413 | test byte [eax+303], 1 |
2622 | test byte [eax+303], 1 |
2414 | jz @f |
2623 | jz @f |
2415 | call delete_file |
2624 | call delete_file |
2416 | ja .f8_multiple_cancel |
2625 | ja .f8_multiple_cancel |
2417 | @@: |
2626 | @@: |
2418 | loop .f8_loop |
2627 | loop .f8_loop |
2419 | .f8_multiple_cancel: |
2628 | .f8_multiple_cancel: |
2420 | jmp .copydone |
2629 | jmp .copydone |
2421 | .f8: |
2630 | .f8: |
2422 | ; todo: delete files from plugin panel |
2631 | ; todo: delete files from plugin panel |
2423 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2632 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2424 | jz @f |
2633 | jz @f |
2425 | ret |
2634 | ret |
2426 | @@: |
2635 | @@: |
2427 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2636 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2428 | jnz .f8_has_selected |
2637 | jnz .f8_has_selected |
2429 | call get_curfile_folder_entry |
2638 | call get_curfile_folder_entry |
- | 2639 | cmp word [ecx+40], '..' |
|
- | 2640 | jnz @f |
|
- | 2641 | cmp byte [ecx+42], 0 |
|
- | 2642 | jz .f8_not_allowed |
|
- | 2643 | @@: |
|
2430 | cmp [bConfirmDelete], 0 |
2644 | cmp [bConfirmDelete], 0 |
2431 | jz .f8_allowed |
2645 | jz .f8_allowed |
2432 | lea eax, [ecx+40] |
2646 | lea eax, [ecx+40] |
2433 | push eax |
2647 | push eax |
2434 | mov esi, aConfirmDeleteText |
2648 | mov esi, aConfirmDeleteText |
2435 | mov edi, aConfirmDeleteTextBuf |
2649 | mov edi, aConfirmDeleteTextBuf |
2436 | push edi |
2650 | push edi |
2437 | @@: |
2651 | @@: |
2438 | lodsb |
2652 | lodsb |
2439 | stosb |
2653 | stosb |
2440 | test al, al |
2654 | test al, al |
2441 | jnz @b |
2655 | jnz @b |
2442 | dec edi |
2656 | dec edi |
2443 | mov esi, aDeleteFolder |
2657 | mov esi, aDeleteFolder |
2444 | test byte [ecx], 10h |
2658 | test byte [ecx], 10h |
2445 | jnz @f |
2659 | jnz @f |
2446 | mov esi, aDeleteFile |
2660 | mov esi, aDeleteFile |
2447 | @@: |
2661 | @@: |
2448 | lodsb |
2662 | lodsb |
2449 | stosb |
2663 | stosb |
2450 | test al, al |
2664 | test al, al |
2451 | jnz @b |
2665 | jnz @b |
2452 | mov eax, esp |
2666 | mov eax, esp |
2453 | push DeleteOrCancelBtn |
2667 | push DeleteOrCancelBtn |
2454 | push 2 |
2668 | push 2 |
2455 | push eax |
2669 | push eax |
2456 | push 2 |
2670 | push 2 |
2457 | push aDeleteCaption |
2671 | push aDeleteCaption |
2458 | call Message |
2672 | call Message |
2459 | add esp, 8 |
2673 | add esp, 8 |
2460 | test eax, eax |
2674 | test eax, eax |
2461 | jz .f8_allowed |
2675 | jz .f8_allowed |
- | 2676 | .f8_not_allowed: |
|
2462 | ret |
2677 | ret |
2463 | .f8_allowed: |
2678 | .f8_allowed: |
2464 | mov [del_bSkipAll], 0 |
2679 | mov [del_bSkipAll], 0 |
2465 | mov eax, ecx |
2680 | mov eax, ecx |
2466 | call delete_file |
2681 | call delete_file |
2467 | jmp .copydone |
2682 | jmp .copydone |
2468 | .ctrl_r: |
2683 | .ctrl_r: |
2469 | ; Rescan panel |
2684 | ; Rescan panel |
2470 | ; call read_folder |
2685 | ; call read_folder |
2471 | ; jmp .done_redraw |
2686 | ; jmp .done_redraw |
2472 | mov eax, [ebp + panel1_index - panel1_data] |
2687 | mov eax, [ebp + panel1_index - panel1_data] |
2473 | push eax |
2688 | push eax |
2474 | call get_curfile_name |
2689 | call get_curfile_name |
2475 | mov esi, ecx |
2690 | mov esi, ecx |
2476 | mov edi, saved_file_name |
2691 | mov edi, saved_file_name |
2477 | @@: |
2692 | @@: |
2478 | lodsb |
2693 | lodsb |
2479 | stosb |
2694 | stosb |
2480 | test al, al |
2695 | test al, al |
2481 | jnz @b |
2696 | jnz @b |
2482 | push [ebp + panel1_start - panel1_data] |
2697 | push [ebp + panel1_start - panel1_data] |
2483 | call read_folder |
2698 | call read_folder |
2484 | pop [ebp + panel1_start - panel1_data] |
2699 | pop [ebp + panel1_start - panel1_data] |
2485 | pop [ebp + panel1_index - panel1_data] |
2700 | pop [ebp + panel1_index - panel1_data] |
2486 | or eax, -1 |
2701 | or eax, -1 |
2487 | @@: |
2702 | @@: |
2488 | inc eax |
2703 | inc eax |
2489 | cmp eax, [ebp + panel1_numfiles - panel1_data] |
2704 | cmp eax, [ebp + panel1_numfiles - panel1_data] |
2490 | jae .ctrl_r.notfound |
2705 | jae .ctrl_r.notfound |
2491 | mov ecx, [ebp + panel1_files - panel1_data] |
2706 | mov ecx, [ebp + panel1_files - panel1_data] |
2492 | mov esi, [ecx+eax*4] |
2707 | mov esi, [ecx+eax*4] |
2493 | add esi, 40 |
2708 | add esi, 40 |
2494 | mov edi, saved_file_name |
2709 | mov edi, saved_file_name |
2495 | call strcmpi |
2710 | call strcmpi |
2496 | jnz @b |
2711 | jnz @b |
2497 | .ctrl_r.found: |
2712 | .ctrl_r.found: |
2498 | mov [ebp + panel1_index - panel1_data], eax |
2713 | mov [ebp + panel1_index - panel1_data], eax |
2499 | .ctrl_r.notfound: |
2714 | .ctrl_r.notfound: |
2500 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2715 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2501 | dec eax |
2716 | dec eax |
2502 | cmp [ebp + panel1_index - panel1_data], eax |
2717 | cmp [ebp + panel1_index - panel1_data], eax |
2503 | jbe @f |
2718 | jbe @f |
2504 | mov [ebp + panel1_index - panel1_data], eax |
2719 | mov [ebp + panel1_index - panel1_data], eax |
2505 | @@: |
2720 | @@: |
2506 | mov eax, [ebp + panel1_index - panel1_data] |
2721 | mov eax, [ebp + panel1_index - panel1_data] |
2507 | cmp [ebp + panel1_start - panel1_data], eax |
2722 | cmp [ebp + panel1_start - panel1_data], eax |
2508 | jbe @f |
2723 | jbe @f |
2509 | mov [ebp + panel1_start - panel1_data], eax |
2724 | mov [ebp + panel1_start - panel1_data], eax |
2510 | @@: |
2725 | @@: |
2511 | inc eax |
2726 | inc eax |
2512 | sub eax, [ebp + panel1_colst - panel1_data] |
2727 | sub eax, [ebp + panel1_colst - panel1_data] |
2513 | jae @f |
2728 | jae @f |
2514 | xor eax, eax |
2729 | xor eax, eax |
2515 | @@: |
2730 | @@: |
2516 | cmp [ebp + panel1_start - panel1_data], eax |
2731 | cmp [ebp + panel1_start - panel1_data], eax |
2517 | jae @f |
2732 | jae @f |
2518 | mov [ebp + panel1_start - panel1_data], eax |
2733 | mov [ebp + panel1_start - panel1_data], eax |
2519 | @@: |
2734 | @@: |
2520 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2735 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2521 | sub eax, [ebp + panel1_colst - panel1_data] |
2736 | sub eax, [ebp + panel1_colst - panel1_data] |
2522 | jbe @f |
2737 | jbe @f |
2523 | cmp [ebp + panel1_start - panel1_data], eax |
2738 | cmp [ebp + panel1_start - panel1_data], eax |
2524 | jbe @f |
2739 | jbe @f |
2525 | mov [ebp + panel1_start - panel1_data], eax |
2740 | mov [ebp + panel1_start - panel1_data], eax |
2526 | @@: |
2741 | @@: |
2527 | jmp .done_redraw |
2742 | jmp .done_redraw |
2528 | .menu: |
2743 | .menu: |
2529 | ; todo: context menu for plugin panel |
2744 | ; todo: context menu for plugin panel |
2530 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2745 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2531 | jz @f |
2746 | jz @f |
2532 | ret |
2747 | ret |
2533 | @@: |
2748 | @@: |
2534 | ; display context menu |
2749 | ; display context menu |
2535 | ; ignore folders |
2750 | ; ignore folders |
2536 | call get_curfile_folder_entry |
2751 | call get_curfile_folder_entry |
2537 | test byte [ecx], 10h |
2752 | test byte [ecx], 10h |
2538 | jz @f |
2753 | jz @f |
2539 | .menuret: |
2754 | .menuret: |
2540 | ret |
2755 | ret |
2541 | @@: |
2756 | @@: |
2542 | call find_extension |
2757 | call find_extension |
2543 | jc .menuret |
2758 | jc .menuret |
2544 | ; known extension |
2759 | ; known extension |
2545 | @@: |
2760 | @@: |
2546 | cmp byte [edi], 0 |
2761 | cmp byte [edi], 0 |
2547 | jz .menuret |
2762 | jz .menuret |
2548 | cmp byte [edi], ';' |
2763 | cmp byte [edi], ';' |
2549 | jz @f |
2764 | jz @f |
2550 | inc edi |
2765 | inc edi |
2551 | jmp @b |
2766 | jmp @b |
2552 | @@: |
2767 | @@: |
2553 | inc edi |
2768 | inc edi |
2554 | @@: |
2769 | @@: |
2555 | inc edi |
2770 | inc edi |
2556 | cmp byte [edi-1], ' ' |
2771 | cmp byte [edi-1], ' ' |
2557 | jz @b |
2772 | jz @b |
2558 | cmp byte [edi-1], 9 |
2773 | cmp byte [edi-1], 9 |
2559 | jz @b |
2774 | jz @b |
2560 | dec edi |
2775 | dec edi |
2561 | cmp byte [edi], 0 |
2776 | cmp byte [edi], 0 |
2562 | jz .menuret |
2777 | jz .menuret |
2563 | mov ecx, esi |
2778 | mov ecx, esi |
2564 | @@: |
2779 | @@: |
2565 | inc ecx |
2780 | inc ecx |
2566 | cmp byte [ecx-1], 0 |
2781 | cmp byte [ecx-1], 0 |
2567 | jnz @b |
2782 | jnz @b |
2568 | sub ecx, esi ; ecx = ¤«¨ ¨¬¥¨ ä ©« +1 = ¤«¨ § £®«®¢ª +1 |
2783 | sub ecx, esi ; ecx = ¤«¨ ¨¬¥¨ ä ©« +1 = ¤«¨ § £®«®¢ª +1 |
2569 | cmp ecx, 15 |
2784 | cmp ecx, 15 |
2570 | jb @f |
2785 | jb @f |
2571 | mov cl, 15 |
2786 | mov cl, 15 |
2572 | @@: |
2787 | @@: |
2573 | xor edx, edx |
2788 | xor edx, edx |
2574 | xor ebp, ebp |
2789 | xor ebp, ebp |
2575 | push edx |
2790 | push edx |
2576 | .menucreateloop: |
2791 | .menucreateloop: |
2577 | mov eax, edi |
2792 | mov eax, edi |
2578 | xor ebx, ebx |
2793 | xor ebx, ebx |
2579 | @@: |
2794 | @@: |
2580 | cmp byte [edi], ',' |
2795 | cmp byte [edi], ',' |
2581 | jz @f |
2796 | jz @f |
2582 | cmp byte [edi], bl |
2797 | cmp byte [edi], bl |
2583 | jz @f |
2798 | jz @f |
2584 | inc edi |
2799 | inc edi |
2585 | jmp @b |
2800 | jmp @b |
2586 | @@: |
2801 | @@: |
2587 | xchg bl, [edi] |
2802 | xchg bl, [edi] |
2588 | pushad |
2803 | pushad |
2589 | push nullstr |
2804 | push nullstr |
2590 | push 1024 |
2805 | push 1024 |
2591 | push saved_file_name |
2806 | push saved_file_name |
2592 | push eax |
2807 | push eax |
2593 | push aMenu |
2808 | push aMenu |
2594 | push app_path |
2809 | push app_path |
2595 | call [ini.get_str] |
2810 | call [ini.get_str] |
2596 | popad |
2811 | popad |
2597 | mov [edi], bl |
2812 | mov [edi], bl |
2598 | mov eax, saved_file_name |
2813 | mov eax, saved_file_name |
2599 | @@: |
2814 | @@: |
2600 | cmp byte [eax], 0 |
2815 | cmp byte [eax], 0 |
2601 | jz .menucreatecont |
2816 | jz .menucreatecont |
2602 | cmp byte [eax], ',' |
2817 | cmp byte [eax], ',' |
2603 | jz @f |
2818 | jz @f |
2604 | inc eax |
2819 | inc eax |
2605 | jmp @b |
2820 | jmp @b |
2606 | @@: |
2821 | @@: |
2607 | mov byte [eax], 0 |
2822 | mov byte [eax], 0 |
2608 | push eax |
2823 | push eax |
2609 | sub eax, saved_file_name-1 |
2824 | sub eax, saved_file_name-1 |
2610 | cmp eax, ecx |
2825 | cmp eax, ecx |
2611 | ja @f |
2826 | ja @f |
2612 | mov eax, ecx |
2827 | mov eax, ecx |
2613 | @@: |
2828 | @@: |
2614 | xchg eax, [esp] |
2829 | xchg eax, [esp] |
2615 | inc eax |
2830 | inc eax |
2616 | push eax |
2831 | push eax |
2617 | @@: |
2832 | @@: |
2618 | inc eax |
2833 | inc eax |
2619 | cmp byte [eax-1], 0 |
2834 | cmp byte [eax-1], 0 |
2620 | jnz @b |
2835 | jnz @b |
2621 | sub eax, [esp] |
2836 | sub eax, [esp] |
2622 | add [esp+4], eax |
2837 | add [esp+4], eax |
2623 | pop eax eax |
2838 | pop eax eax |
2624 | add eax, 8 |
2839 | add eax, 8 |
2625 | add ebp, eax |
2840 | add ebp, eax |
2626 | push ebp |
2841 | push ebp |
2627 | and ebp, 0xFFF |
2842 | and ebp, 0xFFF |
2628 | cmp ebp, eax |
2843 | cmp ebp, eax |
2629 | pop ebp |
2844 | pop ebp |
2630 | ja @f |
2845 | ja @f |
2631 | push eax |
2846 | push eax |
2632 | xchg edx, [esp+4] |
2847 | xchg edx, [esp+4] |
2633 | push ecx |
2848 | push ecx |
2634 | mov ecx, ebp |
2849 | mov ecx, ebp |
2635 | call xpgrealloc |
2850 | call xpgrealloc |
2636 | pop ecx |
2851 | pop ecx |
2637 | pop edx |
2852 | pop edx |
2638 | xchg edx, [esp] |
2853 | xchg edx, [esp] |
2639 | test eax, eax |
2854 | test eax, eax |
2640 | xchg eax, [esp] |
2855 | xchg eax, [esp] |
2641 | jz .menucreated |
2856 | jz .menucreated |
2642 | @@: |
2857 | @@: |
2643 | neg eax |
2858 | neg eax |
2644 | add eax, ebp |
2859 | add eax, ebp |
2645 | add eax, [esp] |
2860 | add eax, [esp] |
2646 | and dword [eax], 0 |
2861 | and dword [eax], 0 |
2647 | and dword [eax+4], 0 |
2862 | and dword [eax+4], 0 |
2648 | test edx, edx |
2863 | test edx, edx |
2649 | jz @f |
2864 | jz @f |
2650 | sub eax, [esp] |
2865 | sub eax, [esp] |
2651 | mov [edx], eax |
2866 | mov [edx], eax |
2652 | add eax, [esp] |
2867 | add eax, [esp] |
2653 | sub edx, [esp] |
2868 | sub edx, [esp] |
2654 | mov [eax+4], edx |
2869 | mov [eax+4], edx |
2655 | @@: |
2870 | @@: |
2656 | mov edx, eax |
2871 | mov edx, eax |
2657 | push esi edi |
2872 | push esi edi |
2658 | mov esi, saved_file_name |
2873 | mov esi, saved_file_name |
2659 | lea edi, [eax+8] |
2874 | lea edi, [eax+8] |
2660 | @@: |
2875 | @@: |
2661 | lodsb |
2876 | lodsb |
2662 | stosb |
2877 | stosb |
2663 | test al, al |
2878 | test al, al |
2664 | jnz @b |
2879 | jnz @b |
2665 | push esi |
2880 | push esi |
2666 | sub esi, saved_file_name |
2881 | sub esi, saved_file_name |
2667 | sub esi, ecx |
2882 | sub esi, ecx |
2668 | jae .menunoadd |
2883 | jae .menunoadd |
2669 | neg esi |
2884 | neg esi |
2670 | @@: |
2885 | @@: |
2671 | mov byte [edi-1], ' ' |
2886 | mov byte [edi-1], ' ' |
2672 | stosb |
2887 | stosb |
2673 | dec esi |
2888 | dec esi |
2674 | jnz @b |
2889 | jnz @b |
2675 | .menunoadd: |
2890 | .menunoadd: |
2676 | pop esi |
2891 | pop esi |
2677 | @@: |
2892 | @@: |
2678 | lodsb |
2893 | lodsb |
2679 | stosb |
2894 | stosb |
2680 | test al, al |
2895 | test al, al |
2681 | jnz @b |
2896 | jnz @b |
2682 | pop edi esi |
2897 | pop edi esi |
2683 | .menucreatecont: |
2898 | .menucreatecont: |
2684 | inc edi |
2899 | inc edi |
2685 | cmp byte [edi-1], ',' |
2900 | cmp byte [edi-1], ',' |
2686 | jz .menucreateloop |
2901 | jz .menucreateloop |
2687 | .menucreated: |
2902 | .menucreated: |
2688 | test edx, edx |
2903 | test edx, edx |
2689 | jz .menuret_free |
2904 | jz .menuret_free |
2690 | and dword [edx], 0 |
2905 | and dword [edx], 0 |
2691 | pop edx |
2906 | pop edx |
2692 | mov ecx, edx |
2907 | mov ecx, edx |
2693 | add [ecx], edx |
2908 | add [ecx], edx |
2694 | @@: |
2909 | @@: |
2695 | mov ecx, [ecx] |
2910 | mov ecx, [ecx] |
2696 | cmp dword [ecx], 0 |
2911 | cmp dword [ecx], 0 |
2697 | jz @f |
2912 | jz @f |
2698 | add [ecx], edx |
2913 | add [ecx], edx |
2699 | add [ecx+4], edx |
2914 | add [ecx+4], edx |
2700 | jmp @b |
2915 | jmp @b |
2701 | @@: |
2916 | @@: |
2702 | add [ecx+4], edx |
2917 | add [ecx+4], edx |
2703 | push edx |
2918 | push edx |
2704 | push 1 |
2919 | push 1 |
2705 | push esi |
2920 | push esi |
2706 | push edx |
2921 | push edx |
2707 | call menu |
2922 | call menu |
2708 | cmp eax, -1 |
2923 | cmp eax, -1 |
2709 | jz .menuret_free |
2924 | jz .menuret_free |
2710 | lea edi, [eax+8] |
2925 | lea edi, [eax+8] |
2711 | @@: |
2926 | @@: |
2712 | inc edi |
2927 | inc edi |
2713 | cmp byte [edi-1], 0 |
2928 | cmp byte [edi-1], 0 |
2714 | jnz @b |
2929 | jnz @b |
2715 | mov ebp, [active_panel] |
2930 | mov ebp, [active_panel] |
2716 | call get_curfile_folder_entry |
2931 | call get_curfile_folder_entry |
2717 | call .run_association2 |
2932 | call .run_association2 |
2718 | .menuret_free: |
2933 | .menuret_free: |
2719 | pop ecx |
2934 | pop ecx |
2720 | jmp pgfree |
2935 | jmp pgfree |
2721 | .f7: |
2936 | .f7: |
2722 | mov dword [CopyDestEditBuf], CopyDestEditBuf.length |
2937 | mov dword [CopyDestEditBuf], CopyDestEditBuf.length |
2723 | and dword [CopyDestEditBuf+4], 0 |
2938 | and dword [CopyDestEditBuf+4], 0 |
2724 | and dword [CopyDestEditBuf+8], 0 |
2939 | and dword [CopyDestEditBuf+8], 0 |
2725 | mov byte [CopyDestEditBuf+12], 0 |
2940 | mov byte [CopyDestEditBuf+12], 0 |
2726 | mov ebx, mkdir_dlgdata |
2941 | mov ebx, mkdir_dlgdata |
2727 | mov eax, [cur_width] |
2942 | mov eax, [cur_width] |
2728 | sub eax, 12 |
2943 | sub eax, 12 |
2729 | mov [ebx + dlgtemplate.width], eax |
2944 | mov [ebx + dlgtemplate.width], eax |
2730 | dec eax |
2945 | dec eax |
2731 | dec eax |
2946 | dec eax |
2732 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.width2], eax |
2947 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.width2], eax |
2733 | shr eax, 1 |
2948 | shr eax, 1 |
2734 | dec eax |
2949 | dec eax |
2735 | dec eax |
2950 | dec eax |
2736 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x2], eax |
2951 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x2], eax |
2737 | sub eax, a_ContinueLength-1 |
2952 | sub eax, a_ContinueLength-1 |
2738 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x1], eax |
2953 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x1], eax |
2739 | add eax, a_ContinueLength+3 |
2954 | add eax, a_ContinueLength+3 |
2740 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x1], eax |
2955 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x1], eax |
2741 | add eax, aCancelBLength - 1 |
2956 | add eax, aCancelBLength - 1 |
2742 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x2], eax |
2957 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x2], eax |
2743 | mov byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags0], 0xC |
2958 | mov byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags0], 0xC |
2744 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags1], not 4 |
2959 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags1], not 4 |
2745 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags2], not 4 |
2960 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags2], not 4 |
2746 | push ebx |
2961 | push ebx |
2747 | call DialogBox |
2962 | call DialogBox |
2748 | cmp eax, mkdir_dlgdata.cont_btn |
2963 | cmp eax, mkdir_dlgdata.cont_btn |
2749 | jnz .ret2 |
2964 | jnz .ret2 |
2750 | mov esi, CopyDestEditBuf+12 |
2965 | mov esi, CopyDestEditBuf+12 |
2751 | cmp byte [esi], 0 |
2966 | cmp byte [esi], 0 |
2752 | jz .ret2 |
2967 | jz .ret2 |
2753 | cmp byte [esi], '/' |
2968 | cmp byte [esi], '/' |
2754 | jz .mkdir_absolute_path |
2969 | jz .mkdir_absolute_path |
2755 | push esi |
2970 | push esi |
2756 | lea edi, [ebp + panel1_dir - panel1_data] |
2971 | lea edi, [ebp + panel1_dir - panel1_data] |
2757 | or ecx, -1 |
2972 | or ecx, -1 |
2758 | xor eax, eax |
2973 | xor eax, eax |
2759 | repnz scasb |
2974 | repnz scasb |
2760 | not ecx |
2975 | not ecx |
2761 | mov edi, esi |
2976 | mov edi, esi |
2762 | @@: |
2977 | @@: |
2763 | cmp byte [edi+1], 0 |
2978 | cmp byte [edi+1], 0 |
2764 | jz @f |
2979 | jz @f |
2765 | inc edi |
2980 | inc edi |
2766 | jmp @b |
2981 | jmp @b |
2767 | @@: |
2982 | @@: |
2768 | push edi |
2983 | push edi |
2769 | add edi, ecx |
2984 | add edi, ecx |
2770 | cmp edi, CopyDestEditBuf+12+513 |
2985 | cmp edi, CopyDestEditBuf+12+513 |
2771 | pop edi |
2986 | pop edi |
2772 | jb @f |
2987 | jb @f |
2773 | pop esi |
2988 | pop esi |
2774 | jmp .bigfilename |
2989 | jmp .bigfilename |
2775 | @@: |
2990 | @@: |
2776 | lea edx, [edi+2] |
2991 | lea edx, [edi+2] |
2777 | sub edx, esi |
2992 | sub edx, esi |
2778 | lea edi, [edi+ecx+1] |
2993 | lea edi, [edi+ecx+1] |
2779 | xchg ecx, edx |
2994 | xchg ecx, edx |
2780 | std |
2995 | std |
2781 | lea esi, [esi+ecx-1] |
2996 | lea esi, [esi+ecx-1] |
2782 | rep movsb |
2997 | rep movsb |
2783 | cld |
2998 | cld |
2784 | pop edi |
2999 | pop edi |
2785 | lea esi, [ebp + panel1_dir - panel1_data] |
3000 | lea esi, [ebp + panel1_dir - panel1_data] |
2786 | push edi |
3001 | push edi |
2787 | mov ecx, edx |
3002 | mov ecx, edx |
2788 | rep movsb |
3003 | rep movsb |
2789 | mov byte [edi-1], '/' |
3004 | mov byte [edi-1], '/' |
2790 | pop esi |
3005 | pop esi |
2791 | .mkdir_absolute_path: |
3006 | .mkdir_absolute_path: |
2792 | push RetryOrCancelBtn |
3007 | push RetryOrCancelBtn |
2793 | push 2 |
3008 | push 2 |
2794 | call makedir |
3009 | call makedir |
2795 | jmp .copydone |
3010 | jmp .copydone |
2796 | .change_mode: |
3011 | .change_mode: |
2797 | dec eax |
3012 | dec eax |
2798 | mov [ebp + panel1_colmode - panel1_data], eax |
3013 | mov [ebp + panel1_colmode - panel1_data], eax |
2799 | call calc_colwidths |
3014 | call calc_colwidths |
2800 | jmp draw_panel |
3015 | jmp draw_panel |
2801 | .quick_jump: |
3016 | .quick_jump: |
2802 | dec eax |
3017 | dec eax |
2803 | cmp al, 10 |
3018 | cmp al, 10 |
2804 | jnz @f |
3019 | jnz @f |
2805 | xor eax, eax |
3020 | xor eax, eax |
2806 | @@: |
3021 | @@: |
2807 | mov eax, [FolderShortcuts+eax*4] |
3022 | mov eax, [FolderShortcuts+eax*4] |
2808 | test eax, eax |
3023 | test eax, eax |
2809 | jnz @f |
3024 | jnz @f |
2810 | ret |
3025 | ret |
2811 | @@: |
3026 | @@: |
2812 | push eax |
3027 | push eax |
2813 | call close_plugin_panels |
3028 | call close_plugin_panels |
2814 | lea esi, [ebp + panel1_dir - panel1_data] |
3029 | lea esi, [ebp + panel1_dir - panel1_data] |
2815 | push esi |
3030 | push esi |
2816 | mov edi, prev_dir |
3031 | mov edi, prev_dir |
2817 | @@: |
3032 | @@: |
2818 | lodsb |
3033 | lodsb |
2819 | stosb |
3034 | stosb |
2820 | test al, al |
3035 | test al, al |
2821 | jnz @b |
3036 | jnz @b |
2822 | pop edi esi |
3037 | pop edi esi |
2823 | @@: |
3038 | @@: |
2824 | lodsb |
3039 | lodsb |
2825 | stosb |
3040 | stosb |
2826 | test al, al |
3041 | test al, al |
2827 | jnz @b |
3042 | jnz @b |
2828 | jmp .reread |
3043 | jmp .reread |
2829 | .greyplus: |
3044 | .greyplus: |
2830 | push 0 |
3045 | push 0 |
2831 | mov ecx, aSelect |
3046 | mov ecx, aSelect |
2832 | jmp @f |
3047 | jmp @f |
2833 | .greyminus: |
3048 | .greyminus: |
2834 | push 1 |
3049 | push 1 |
2835 | mov ecx, aDeselect |
3050 | mov ecx, aDeselect |
2836 | @@: |
3051 | @@: |
2837 | mov eax, mark_dlgdata |
3052 | mov eax, mark_dlgdata |
2838 | mov [eax+mark_dlgdata.title-mark_dlgdata], ecx |
3053 | mov [eax+mark_dlgdata.title-mark_dlgdata], ecx |
2839 | mov [eax+mark_dlgdata.flags-mark_dlgdata], 0xC |
3054 | mov [eax+mark_dlgdata.flags-mark_dlgdata], 0xC |
2840 | mov edi, enter_string_buf+12 |
3055 | mov edi, enter_string_buf+12 |
2841 | mov dword [edi-12], 512 |
3056 | mov dword [edi-12], 512 |
2842 | mov dword [edi-8], 1 |
3057 | mov dword [edi-8], 1 |
2843 | and dword [edi-4], 0 |
3058 | and dword [edi-4], 0 |
2844 | mov word [edi], '*' |
3059 | mov word [edi], '*' |
2845 | push eax |
3060 | push eax |
2846 | call DialogBox |
3061 | call DialogBox |
2847 | inc eax |
3062 | inc eax |
2848 | jnz @f |
3063 | jnz @f |
2849 | .noselect: |
3064 | .noselect: |
2850 | pop eax |
3065 | pop eax |
2851 | ret |
3066 | ret |
2852 | @@: |
3067 | @@: |
2853 | xor eax, eax |
3068 | xor eax, eax |
2854 | mov esi, edi |
3069 | mov esi, edi |
2855 | @@: |
3070 | @@: |
2856 | lodsb |
3071 | lodsb |
2857 | mov al, [tolower_table+eax] |
3072 | mov al, [tolower_table+eax] |
2858 | mov [esi-1], al |
3073 | mov [esi-1], al |
2859 | test al, al |
3074 | test al, al |
2860 | jnz @b |
3075 | jnz @b |
2861 | @@: |
3076 | @@: |
2862 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3077 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2863 | mov ebx, [ebp + panel1_files - panel1_data] |
3078 | mov ebx, [ebp + panel1_files - panel1_data] |
2864 | jecxz .noselect |
3079 | jecxz .noselect |
2865 | mov eax, [ebx] |
3080 | mov eax, [ebx] |
2866 | cmp word [eax+40], '..' |
3081 | cmp word [eax+40], '..' |
2867 | jnz .selectloop |
3082 | jnz .selectloop |
2868 | cmp byte [eax+42], 0 |
3083 | cmp byte [eax+42], 0 |
2869 | jnz .selectloop |
3084 | jnz .selectloop |
2870 | dec ecx |
3085 | dec ecx |
2871 | jz .noselect |
3086 | jz .noselect |
2872 | add ebx, 4 |
3087 | add ebx, 4 |
2873 | .selectloop: |
3088 | .selectloop: |
2874 | xor eax, eax |
3089 | xor eax, eax |
2875 | mov esi, [ebx] |
3090 | mov esi, [ebx] |
2876 | add esi, 40 |
3091 | add esi, 40 |
2877 | mov edx, lower_file_name-1 |
3092 | mov edx, lower_file_name-1 |
2878 | @@: |
3093 | @@: |
2879 | lodsb |
3094 | lodsb |
2880 | inc edx |
3095 | inc edx |
2881 | mov al, [tolower_table+eax] |
3096 | mov al, [tolower_table+eax] |
2882 | mov [edx], al |
3097 | mov [edx], al |
2883 | test al, al |
3098 | test al, al |
2884 | jnz @b |
3099 | jnz @b |
2885 | mov esi, lower_file_name |
3100 | mov esi, lower_file_name |
2886 | call match_mask_rev_lowercase |
3101 | call match_mask_rev_lowercase |
2887 | jc @f |
3102 | jc @f |
2888 | mov esi, [ebx] |
3103 | mov esi, [ebx] |
2889 | mov eax, [esi+32] |
3104 | mov eax, [esi+32] |
2890 | cmp byte [esp], 0 |
3105 | cmp byte [esp], 0 |
2891 | jz .doselect |
3106 | jz .doselect |
2892 | test byte [esi+303], 1 |
3107 | test byte [esi+303], 1 |
2893 | jz @f |
3108 | jz @f |
2894 | and byte [esi+303], not 1 |
3109 | and byte [esi+303], not 1 |
2895 | sub dword [ebp + panel1_selected_size - panel1_data], eax |
3110 | sub dword [ebp + panel1_selected_size - panel1_data], eax |
2896 | mov eax, [esi+36] |
3111 | mov eax, [esi+36] |
2897 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
3112 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
2898 | dec dword [ebp + panel1_selected_num - panel1_data] |
3113 | dec dword [ebp + panel1_selected_num - panel1_data] |
2899 | jmp @f |
3114 | jmp @f |
2900 | .doselect: |
3115 | .doselect: |
2901 | test byte [esi+303], 1 |
3116 | test byte [esi+303], 1 |
2902 | jnz @f |
3117 | jnz @f |
2903 | or byte [esi+303], 1 |
3118 | or byte [esi+303], 1 |
2904 | add dword [ebp + panel1_selected_size - panel1_data], eax |
3119 | add dword [ebp + panel1_selected_size - panel1_data], eax |
2905 | mov eax, [esi+36] |
3120 | mov eax, [esi+36] |
2906 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
3121 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
2907 | inc dword [ebp + panel1_selected_num - panel1_data] |
3122 | inc dword [ebp + panel1_selected_num - panel1_data] |
2908 | @@: |
3123 | @@: |
2909 | add ebx, 4 |
3124 | add ebx, 4 |
2910 | dec ecx |
3125 | dec ecx |
2911 | jnz .selectloop |
3126 | jnz .selectloop |
2912 | pop eax |
3127 | pop eax |
2913 | jmp .done_redraw |
3128 | jmp .done_redraw |
2914 | .greyasterisk: |
3129 | .greyasterisk: |
2915 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3130 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2916 | mov esi, [ebp + panel1_files - panel1_data] |
3131 | mov esi, [ebp + panel1_files - panel1_data] |
2917 | jecxz .galoopdone |
3132 | jecxz .galoopdone |
2918 | .galoop: |
3133 | .galoop: |
2919 | lodsd |
3134 | lodsd |
2920 | cmp word [eax+40], '..' |
3135 | cmp word [eax+40], '..' |
2921 | jnz @f |
3136 | jnz @f |
2922 | cmp byte [eax+42], 0 |
3137 | cmp byte [eax+42], 0 |
2923 | jz .gacont |
3138 | jz .gacont |
2924 | @@: |
3139 | @@: |
2925 | xor byte [eax+303], 1 |
3140 | xor byte [eax+303], 1 |
2926 | mov edx, [eax+32] |
3141 | mov edx, [eax+32] |
2927 | test byte [eax+303], 1 |
3142 | test byte [eax+303], 1 |
2928 | jz .gadel |
3143 | jz .gadel |
2929 | add dword [ebp + panel1_selected_size - panel1_data], edx |
3144 | add dword [ebp + panel1_selected_size - panel1_data], edx |
2930 | mov edx, [eax+36] |
3145 | mov edx, [eax+36] |
2931 | adc dword [ebp + panel1_selected_size+4 - panel1_data], edx |
3146 | adc dword [ebp + panel1_selected_size+4 - panel1_data], edx |
2932 | inc dword [ebp + panel1_selected_num - panel1_data] |
3147 | inc dword [ebp + panel1_selected_num - panel1_data] |
2933 | jmp .gacont |
3148 | jmp .gacont |
2934 | .gadel: |
3149 | .gadel: |
2935 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
3150 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
2936 | mov edx, [eax+36] |
3151 | mov edx, [eax+36] |
2937 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], edx |
3152 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], edx |
2938 | dec dword [ebp + panel1_selected_num - panel1_data] |
3153 | dec dword [ebp + panel1_selected_num - panel1_data] |
2939 | .gacont: |
3154 | .gacont: |
2940 | loop .galoop |
3155 | loop .galoop |
2941 | .galoopdone: |
3156 | .galoopdone: |
2942 | jmp .done_redraw |
3157 | jmp .done_redraw |
2943 | 3158 | ||
2944 | @@: |
3159 | @@: |
2945 | call close_plugin_panel |
3160 | call close_plugin_panel |
2946 | close_plugin_panels: |
3161 | close_plugin_panels: |
2947 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
3162 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2948 | jnz @b |
3163 | jnz @b |
2949 | ret |
3164 | ret |
2950 | 3165 | ||
2951 | close_plugin_panel: |
3166 | close_plugin_panel: |
2952 | ; close plugin and restore old directory |
3167 | ; close plugin and restore old directory |
2953 | mov esi, [ebp + panel1_parents - panel1_data] |
3168 | mov esi, [ebp + panel1_parents - panel1_data] |
2954 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3169 | add esi, [ebp + panel1_parents_sz - panel1_data] |
2955 | @@: |
3170 | @@: |
2956 | dec esi |
3171 | dec esi |
2957 | cmp byte [esi-1], 0 |
3172 | cmp byte [esi-1], 0 |
2958 | jnz @b |
3173 | jnz @b |
2959 | push esi |
3174 | push esi |
2960 | lea edi, [ebp + panel1_dir - panel1_data] |
3175 | lea edi, [ebp + panel1_dir - panel1_data] |
2961 | @@: |
3176 | @@: |
2962 | lodsb |
3177 | lodsb |
2963 | stosb |
3178 | stosb |
2964 | test al, al |
3179 | test al, al |
2965 | jnz @b |
3180 | jnz @b |
2966 | pop esi |
3181 | pop esi |
2967 | sub esi, 9 |
3182 | sub esi, 9 |
2968 | mov edx, [esi] ; hPlugin |
3183 | mov edx, [esi] ; hPlugin |
2969 | mov ebx, [esi+4] ; hFile |
3184 | mov ebx, [esi+4] ; hFile |
2970 | sub esi, [ebp + panel1_parents - panel1_data] |
3185 | sub esi, [ebp + panel1_parents - panel1_data] |
2971 | mov [ebp + panel1_parents_sz - panel1_data], esi |
3186 | mov [ebp + panel1_parents_sz - panel1_data], esi |
2972 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
3187 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
2973 | xchg ebx, [ebp + panel1_hFile - panel1_data] |
3188 | xchg ebx, [ebp + panel1_hFile - panel1_data] |
2974 | push edx ebx |
3189 | push edx ebx |
2975 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
3190 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
2976 | and dword [ebx], 0 |
3191 | and dword [ebx], 0 |
2977 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
3192 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2978 | test eax, eax |
3193 | test eax, eax |
2979 | jz @f |
3194 | jz @f |
2980 | push ebp |
3195 | push ebp |
2981 | push ebx |
3196 | push ebx |
2982 | push [ebp + panel1_hFile - panel1_data] |
3197 | push [ebp + panel1_hFile - panel1_data] |
2983 | call [eax+PluginInfo.GetOpenPluginInfo] |
3198 | call [eax+PluginInfo.GetOpenPluginInfo] |
2984 | pop ebp |
3199 | pop ebp |
2985 | @@: |
3200 | @@: |
2986 | pop ebx edx |
3201 | pop ebx edx |
2987 | 3202 | ||
2988 | close_handle_if_unused: |
3203 | close_handle_if_unused: |
2989 | ; edx=hPlugin, ebx=hFile |
3204 | ; edx=hPlugin, ebx=hFile |
2990 | push ebp |
3205 | push ebp |
2991 | xor ecx, ecx |
3206 | xor ecx, ecx |
2992 | @@: |
3207 | @@: |
2993 | mov eax, [screens] |
3208 | mov eax, [screens] |
2994 | mov ebp, [eax+ecx*8+4] |
3209 | mov ebp, [eax+ecx*8+4] |
2995 | mov eax, [eax+ecx*8] |
3210 | mov eax, [eax+ecx*8] |
2996 | call [eax+screen_vtable.IsHandleUsed] |
3211 | call [eax+screen_vtable.IsHandleUsed] |
2997 | jz .used |
3212 | jz .used |
2998 | inc ecx |
3213 | inc ecx |
2999 | cmp ecx, [num_screens] |
3214 | cmp ecx, [num_screens] |
3000 | jb @b |
3215 | jb @b |
3001 | push ebx |
3216 | push ebx |
3002 | call [edx+PluginInfo.ClosePlugin] |
3217 | call [edx+PluginInfo.ClosePlugin] |
3003 | .used: |
3218 | .used: |
3004 | pop ebp |
3219 | pop ebp |
3005 | ret |
3220 | ret |
3006 | 3221 | ||
3007 | panels_IsHandleUsed: |
3222 | panels_IsHandleUsed: |
3008 | ; edx=hPlugin, ebx=hFile |
3223 | ; edx=hPlugin, ebx=hFile |
3009 | mov ebp, panel1_data |
3224 | mov ebp, panel1_data |
3010 | call .1 |
3225 | call .1 |
3011 | jz .ret |
3226 | jz .ret |
3012 | mov ebp, panel2_data |
3227 | mov ebp, panel2_data |
3013 | 3228 | ||
3014 | .1: |
3229 | .1: |
3015 | cmp edx, [ebp+panel1_hPlugin-panel1_data] |
3230 | cmp edx, [ebp+panel1_hPlugin-panel1_data] |
3016 | jnz @f |
3231 | jnz @f |
3017 | cmp ebx, [ebp+panel1_hFile-panel1_data] |
3232 | cmp ebx, [ebp+panel1_hFile-panel1_data] |
3018 | jz .ret |
3233 | jz .ret |
3019 | @@: |
3234 | @@: |
3020 | mov esi, [ebp + panel1_parents_sz - panel1_data] |
3235 | mov esi, [ebp + panel1_parents_sz - panel1_data] |
3021 | test esi, esi |
3236 | test esi, esi |
3022 | jnz @f |
3237 | jnz @f |
3023 | inc esi |
3238 | inc esi |
3024 | .ret: |
3239 | .ret: |
3025 | ret |
3240 | ret |
3026 | @@: |
3241 | @@: |
3027 | add esi, [ebp + panel1_parents - panel1_data] |
3242 | add esi, [ebp + panel1_parents - panel1_data] |
3028 | @@: |
3243 | @@: |
3029 | dec esi |
3244 | dec esi |
3030 | cmp byte [esi-1], 0 |
3245 | cmp byte [esi-1], 0 |
3031 | jnz @b |
3246 | jnz @b |
3032 | sub esi, 9 |
3247 | sub esi, 9 |
3033 | cmp edx, [esi] ; hPlugin |
3248 | cmp edx, [esi] ; hPlugin |
3034 | jnz .no |
3249 | jnz .no |
3035 | mov ebx, [esi+4] ; hFile |
3250 | mov ebx, [esi+4] ; hFile |
3036 | jz .ret |
3251 | jz .ret |
3037 | .no: |
3252 | .no: |
3038 | cmp esi, [ebp + panel1_parents - panel1_data] |
3253 | cmp esi, [ebp + panel1_parents - panel1_data] |
3039 | jnz @b |
3254 | jnz @b |
3040 | inc esi |
3255 | inc esi |
3041 | ret |
3256 | ret |
3042 | 3257 | ||
3043 | panels_OnExit: |
3258 | panels_OnExit: |
3044 | ; close plugin panels |
3259 | ; close plugin panels |
3045 | mov ebp, panel1_data |
3260 | mov ebp, panel1_data |
3046 | call close_plugin_panels |
3261 | call close_plugin_panels |
3047 | mov ebp, panel2_data |
3262 | mov ebp, panel2_data |
3048 | call close_plugin_panels |
3263 | call close_plugin_panels |
3049 | ret |
3264 | ret |
3050 | 3265 | ||
3051 | panels_OnRedraw: |
3266 | panels_OnRedraw: |
- | 3267 | or [cursor_x], -1 |
|
- | 3268 | or [cursor_y], -1 |
|
3052 | call draw_cmdbar |
3269 | call draw_cmdbar |
3053 | mov ebp, panel1_data |
3270 | mov ebp, panel1_data |
3054 | call calc_colwidths |
3271 | call calc_colwidths |
3055 | call draw_panel |
3272 | call draw_panel |
3056 | mov ebp, panel2_data |
3273 | mov ebp, panel2_data |
3057 | call calc_colwidths |
3274 | call calc_colwidths |
3058 | call draw_panel |
3275 | call draw_panel |
3059 | ret |
3276 | ret |
3060 | 3277 | ||
3061 | init_console: |
3278 | init_console: |
3062 | mov ecx, [console_data_ptr] |
3279 | mov ecx, [console_data_ptr] |
3063 | call pgfree |
3280 | call pgfree |
3064 | mov eax, [cur_width] |
3281 | mov eax, [cur_width] |
3065 | mul [cur_height] |
3282 | mul [cur_height] |
3066 | mov ecx, eax |
3283 | mov ecx, eax |
3067 | push ecx |
3284 | push ecx |
3068 | shl ecx, 2 |
3285 | shl ecx, 2 |
3069 | call pgalloc |
3286 | call pgalloc |
3070 | pop ecx |
3287 | pop ecx |
3071 | test eax, eax |
3288 | test eax, eax |
3072 | jz exit |
3289 | jz exit |
3073 | mov [console_data_ptr], eax |
3290 | mov [console_data_ptr], eax |
3074 | mov edi, eax |
3291 | mov edi, eax |
3075 | mov ax, 0720h |
3292 | mov ax, 0720h |
3076 | rep stosw |
3293 | rep stosw |
3077 | mov [panel1_left], ecx |
3294 | mov [panel1_left], ecx |
3078 | mov [panel1_top], ecx |
3295 | mov [panel1_top], ecx |
3079 | mov [panel2_top], ecx |
3296 | mov [panel2_top], ecx |
3080 | mov eax, [cur_width] |
3297 | mov eax, [cur_width] |
3081 | inc eax |
3298 | inc eax |
3082 | shr eax, 1 |
3299 | shr eax, 1 |
3083 | mov [panel1_width], eax |
3300 | mov [panel1_width], eax |
3084 | mov [panel2_left], eax |
3301 | mov [panel2_left], eax |
3085 | sub eax, [cur_width] |
3302 | sub eax, [cur_width] |
3086 | neg eax |
3303 | neg eax |
3087 | mov [panel2_width], eax |
3304 | mov [panel2_width], eax |
3088 | mov eax, [cur_height] |
3305 | mov eax, [cur_height] |
3089 | dec eax |
3306 | dec eax |
3090 | dec eax |
3307 | dec eax |
3091 | mov [panel1_height], eax |
3308 | mov [panel1_height], eax |
3092 | mov [panel2_height], eax |
3309 | mov [panel2_height], eax |
3093 | ret |
3310 | ret |
3094 | 3311 | ||
3095 | get_curfile_folder_entry: |
3312 | get_curfile_folder_entry: |
3096 | mov ecx, [ebp + panel1_index - panel1_data] |
3313 | mov ecx, [ebp + panel1_index - panel1_data] |
3097 | shl ecx, 2 |
3314 | shl ecx, 2 |
3098 | add ecx, [ebp + panel1_files - panel1_data] |
3315 | add ecx, [ebp + panel1_files - panel1_data] |
3099 | mov ecx, [ecx] |
3316 | mov ecx, [ecx] |
3100 | ret |
3317 | ret |
3101 | get_curfile_name: |
3318 | get_curfile_name: |
3102 | call get_curfile_folder_entry |
3319 | call get_curfile_folder_entry |
3103 | add ecx, 40 |
3320 | add ecx, 40 |
3104 | ret |
3321 | ret |
- | 3322 | ||
- | 3323 | quick_find: |
|
- | 3324 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
|
- | 3325 | jz .nof |
|
- | 3326 | mov ecx, [ebp + panel1_index - panel1_data] |
|
- | 3327 | .scanloop: |
|
- | 3328 | mov edi, ecx |
|
- | 3329 | shl edi, 2 |
|
- | 3330 | add edi, [ebp + panel1_files - panel1_data] |
|
- | 3331 | mov edi, [edi] |
|
- | 3332 | add edi, 40 |
|
- | 3333 | mov esi, quick_search_buf + 12 |
|
- | 3334 | @@: |
|
- | 3335 | lodsb |
|
- | 3336 | test al, al |
|
- | 3337 | jz .ok |
|
- | 3338 | call match_symbol |
|
- | 3339 | jnz .no |
|
- | 3340 | inc edi |
|
- | 3341 | jmp @b |
|
- | 3342 | .no: |
|
- | 3343 | inc ecx |
|
- | 3344 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
|
- | 3345 | jb @f |
|
- | 3346 | xor ecx, ecx |
|
- | 3347 | @@: |
|
- | 3348 | cmp ecx, [ebp + panel1_index - panel1_data] |
|
- | 3349 | jnz .scanloop |
|
- | 3350 | .nof: |
|
- | 3351 | stc |
|
- | 3352 | ret |
|
- | 3353 | .ok: |
|
- | 3354 | cmp ecx, [ebp + panel1_index - panel1_data] |
|
- | 3355 | jz .ret |
|
- | 3356 | mov [ebp + panel1_index - panel1_data], ecx |
|
- | 3357 | mov eax, [ebp + panel1_height - panel1_data] |
|
- | 3358 | shr eax, 1 |
|
- | 3359 | sub ecx, eax |
|
- | 3360 | jae @f |
|
- | 3361 | xor ecx, ecx |
|
- | 3362 | @@: |
|
- | 3363 | mov eax, [ebp + panel1_numfiles - panel1_data] |
|
- | 3364 | sub eax, [ebp + panel1_colst - panel1_data] |
|
- | 3365 | jnc @f |
|
- | 3366 | xor eax, eax |
|
- | 3367 | xor ecx, ecx |
|
- | 3368 | @@: |
|
- | 3369 | cmp ecx, eax |
|
- | 3370 | jb @f |
|
- | 3371 | mov ecx, eax |
|
- | 3372 | @@: |
|
- | 3373 | mov [ebp + panel1_start - panel1_data], ecx |
|
- | 3374 | call draw_panel |
|
- | 3375 | .ret: |
|
- | 3376 | clc |
|
- | 3377 | ret |
|
- | 3378 | ||
- | 3379 | quick_find_next: |
|
- | 3380 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
|
- | 3381 | jz quick_find.nof |
|
- | 3382 | mov ecx, [ebp + panel1_index - panel1_data] |
|
- | 3383 | jmp quick_find.no |
|
- | 3384 | ||
- | 3385 | quick_find_prev: |
|
- | 3386 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
|
- | 3387 | jz quick_find.nof |
|
- | 3388 | mov ecx, [ebp + panel1_index - panel1_data] |
|
- | 3389 | .scanloop: |
|
- | 3390 | dec ecx |
|
- | 3391 | jns @f |
|
- | 3392 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
|
- | 3393 | dec ecx |
|
- | 3394 | @@: |
|
- | 3395 | cmp ecx, [ebp + panel1_index - panel1_data] |
|
- | 3396 | jz quick_find.nof |
|
- | 3397 | mov edi, ecx |
|
- | 3398 | shl edi, 2 |
|
- | 3399 | add edi, [ebp + panel1_files - panel1_data] |
|
- | 3400 | mov edi, [edi] |
|
- | 3401 | add edi, 40 |
|
- | 3402 | mov esi, quick_search_buf + 12 |
|
- | 3403 | @@: |
|
- | 3404 | lodsb |
|
- | 3405 | test al, al |
|
- | 3406 | jz quick_find.ok |
|
- | 3407 | call match_symbol |
|
- | 3408 | jnz .scanloop |
|
- | 3409 | inc edi |
|
- | 3410 | jmp @b |
|
3105 | 3411 | ||
3106 | panels_getname: |
3412 | panels_getname: |
3107 | if lang eq ru |
3413 | if lang eq ru |
3108 | mov eax, ' ¥' |
3414 | mov eax, ' ¥' |
3109 | stosd |
3415 | stosd |
3110 | mov eax, 'Ǭ ' |
3416 | mov eax, 'Ǭ ' |
3111 | stosd |
3417 | stosd |
3112 | mov eax, ' ' |
3418 | mov eax, ' ' |
3113 | stosd |
3419 | stosd |
3114 | stosb |
3420 | stosb |
3115 | else |
3421 | else |
3116 | mov eax, 'Pane' |
3422 | mov eax, 'Pane' |
3117 | stosd |
3423 | stosd |
3118 | mov eax, 'ls ' |
3424 | mov eax, 'ls ' |
3119 | stosd |
3425 | stosd |
3120 | mov eax, ' ' |
3426 | mov eax, ' ' |
3121 | stosd |
3427 | stosd |
3122 | stosb |
3428 | stosb |
3123 | end if |
3429 | end if |
3124 | sub ecx, 13 |
3430 | sub ecx, 13 |
3125 | mov ebp, [active_panel] |
3431 | mov ebp, [active_panel] |
3126 | push 3 |
3432 | push 3 |
3127 | pop edx |
3433 | pop edx |
3128 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
3434 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
3129 | jz .native |
3435 | jz .native |
3130 | mov esi, [ebp + panel1_parents - panel1_data] |
3436 | mov esi, [ebp + panel1_parents - panel1_data] |
3131 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3437 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3132 | @@: |
3438 | @@: |
3133 | dec esi |
3439 | dec esi |
3134 | cmp byte [esi-1], 0 |
3440 | cmp byte [esi-1], 0 |
3135 | jz @f |
3441 | jz @f |
3136 | cmp byte [esi-1], '/' |
3442 | cmp byte [esi-1], '/' |
3137 | jnz @b |
3443 | jnz @b |
3138 | @@: |
3444 | @@: |
3139 | push ecx edi |
3445 | push ecx edi |
3140 | shr ecx, 1 |
3446 | shr ecx, 1 |
3141 | @@: |
3447 | @@: |
3142 | lodsb |
3448 | lodsb |
3143 | test al, al |
3449 | test al, al |
3144 | jz @f |
3450 | jz @f |
3145 | stosb |
3451 | stosb |
3146 | loop @b |
3452 | loop @b |
3147 | @@: |
3453 | @@: |
3148 | sub edi, [esp] |
3454 | sub edi, [esp] |
3149 | sub [esp+4], edi |
3455 | sub [esp+4], edi |
3150 | add [esp], edi |
3456 | add [esp], edi |
3151 | pop edi ecx |
3457 | pop edi ecx |
3152 | lea esi, [ebp + panel1_dir - panel1_data] |
3458 | lea esi, [ebp + panel1_dir - panel1_data] |
3153 | cmp byte [esi+1], 0 |
3459 | cmp byte [esi+1], 0 |
3154 | jnz @f |
3460 | jnz @f |
3155 | inc esi |
3461 | inc esi |
3156 | @@: |
3462 | @@: |
3157 | jmp .main |
3463 | jmp .main |
3158 | .native: |
3464 | .native: |
3159 | lea esi, [ebp + panel1_dir - panel1_data] |
3465 | lea esi, [ebp + panel1_dir - panel1_data] |
3160 | @@: |
3466 | @@: |
3161 | lodsb |
3467 | lodsb |
3162 | stosb |
3468 | stosb |
3163 | dec ecx |
3469 | dec ecx |
3164 | test al, al |
3470 | test al, al |
3165 | jz @f |
3471 | jz @f |
3166 | cmp al, '/' |
3472 | cmp al, '/' |
3167 | jnz @b |
3473 | jnz @b |
3168 | dec edx |
3474 | dec edx |
3169 | jnz @b |
3475 | jnz @b |
3170 | @@: |
3476 | @@: |
3171 | test al, al |
3477 | test al, al |
3172 | jnz @f |
3478 | jnz @f |
3173 | dec esi |
3479 | dec esi |
3174 | dec edi |
3480 | dec edi |
3175 | @@: |
3481 | @@: |
3176 | .main: |
3482 | .main: |
3177 | push esi |
3483 | push esi |
3178 | @@: |
3484 | @@: |
3179 | lodsb |
3485 | lodsb |
3180 | test al, al |
3486 | test al, al |
3181 | jnz @b |
3487 | jnz @b |
3182 | dec esi |
3488 | dec esi |
3183 | mov ebx, esi |
3489 | mov ebx, esi |
3184 | sub ebx, [esp] |
3490 | sub ebx, [esp] |
3185 | dec esi |
3491 | dec esi |
3186 | push esi |
3492 | push esi |
3187 | mov esi, [ebp + panel1_index - panel1_data] |
3493 | mov esi, [ebp + panel1_index - panel1_data] |
3188 | shl esi, 2 |
3494 | shl esi, 2 |
3189 | add esi, [ebp + panel1_files - panel1_data] |
3495 | add esi, [ebp + panel1_files - panel1_data] |
3190 | mov esi, [esi] |
3496 | mov esi, [esi] |
3191 | add esi, 40 |
3497 | add esi, 40 |
3192 | push esi |
3498 | push esi |
3193 | @@: |
3499 | @@: |
3194 | lodsb |
3500 | lodsb |
3195 | test al, al |
3501 | test al, al |
3196 | jnz @b |
3502 | jnz @b |
3197 | add ebx, esi |
3503 | add ebx, esi |
3198 | sub ebx, [esp] |
3504 | sub ebx, [esp] |
3199 | dec esi |
3505 | dec esi |
3200 | cmp ebx, ecx |
3506 | cmp ebx, ecx |
3201 | jbe @f |
3507 | jbe @f |
3202 | mov al, '.' |
3508 | mov al, '.' |
3203 | stosb |
3509 | stosb |
3204 | stosb |
3510 | stosb |
3205 | stosb |
3511 | stosb |
3206 | sub ecx, 3 |
3512 | sub ecx, 3 |
3207 | mov ebx, ecx |
3513 | mov ebx, ecx |
3208 | @@: |
3514 | @@: |
3209 | add edi, ebx |
3515 | add edi, ebx |
3210 | inc ecx |
3516 | inc ecx |
3211 | std |
3517 | std |
3212 | @@: |
3518 | @@: |
3213 | movsb |
3519 | movsb |
3214 | dec ecx |
3520 | dec ecx |
3215 | jz .nodir |
3521 | jz .nodir |
3216 | cmp esi, [esp] |
3522 | cmp esi, [esp] |
3217 | jae @b |
3523 | jae @b |
3218 | mov esi, [esp+4] |
3524 | mov esi, [esp+4] |
3219 | mov al, '/' |
3525 | mov al, '/' |
3220 | stosb |
3526 | stosb |
3221 | dec ecx |
3527 | dec ecx |
3222 | jz .nodir |
3528 | jz .nodir |
3223 | @@: |
3529 | @@: |
3224 | cmp esi, [esp+8] |
3530 | cmp esi, [esp+8] |
3225 | jb .nodir |
3531 | jb .nodir |
3226 | movsb |
3532 | movsb |
3227 | loop @b |
3533 | loop @b |
3228 | .nodir: |
3534 | .nodir: |
3229 | cld |
3535 | cld |
3230 | pop eax |
3536 | pop eax |
3231 | pop eax |
3537 | pop eax |
3232 | pop eax |
3538 | pop eax |
3233 | ret |
3539 | ret |
3234 | 3540 | ||
3235 | draw_window: |
3541 | draw_window: |
3236 | push 12 |
3542 | push 12 |
3237 | pop eax |
3543 | pop eax |
3238 | push 1 |
3544 | push 1 |
3239 | pop ebx |
3545 | pop ebx |
3240 | int 40h |
3546 | int 40h |
3241 | mov al, 48 |
3547 | mov al, 48 |
3242 | mov bl, 4 |
3548 | mov bl, 4 |
3243 | int 40h |
3549 | int 40h |
3244 | mov [skinh], eax |
3550 | mov [skinh], eax |
3245 | mov ebx, [cur_width] |
3551 | mov ebx, [cur_width] |
3246 | imul ebx, font_width |
3552 | imul ebx, font_width |
3247 | add ebx, 100*65536 + 5*2-1 |
3553 | add ebx, 100*65536 + 5*2-1 |
3248 | mov ecx, [cur_height] |
3554 | mov ecx, [cur_height] |
3249 | imul ecx, font_height |
3555 | imul ecx, font_height |
3250 | lea ecx, [eax+ecx+5-1+100*65536] |
3556 | lea ecx, [eax+ecx+5-1+100*65536] |
3251 | xor eax, eax |
3557 | xor eax, eax |
3252 | mov edx, 0x53000000 |
3558 | mov edx, 0x53000000 |
3253 | mov edi, header |
3559 | mov edi, header |
3254 | int 40h |
3560 | int 40h |
3255 | mov al, 13 |
3561 | mov al, 13 |
3256 | xor edx, edx |
3562 | xor edx, edx |
3257 | cmp [fill_width], 0 |
3563 | cmp [fill_width], 0 |
3258 | jz @f |
3564 | jz @f |
3259 | mov ebx, [wnd_width] |
3565 | mov ebx, [wnd_width] |
3260 | sub ebx, [fill_width] |
3566 | sub ebx, [fill_width] |
3261 | sub ebx, 5-1 |
3567 | sub ebx, 5-1 |
3262 | shl ebx, 16 |
3568 | shl ebx, 16 |
3263 | mov bx, word [fill_width] |
3569 | mov bx, word [fill_width] |
3264 | mov ecx, [skinh-2] |
3570 | mov ecx, [skinh-2] |
3265 | mov cx, word [wnd_height] |
3571 | mov cx, word [wnd_height] |
3266 | sub cx, word [skinh] |
3572 | sub cx, word [skinh] |
3267 | sub cx, 5-1 |
3573 | sub cx, 5-1 |
3268 | int 0x40 |
3574 | int 0x40 |
3269 | @@: |
3575 | @@: |
3270 | cmp [fill_height], 0 |
3576 | cmp [fill_height], 0 |
3271 | jz @f |
3577 | jz @f |
3272 | xor edx, edx |
3578 | xor edx, edx |
3273 | mov ebx, 50000h |
3579 | mov ebx, 50000h |
3274 | mov bx, word [wnd_width] |
3580 | mov bx, word [wnd_width] |
3275 | sub ebx, 9 |
3581 | sub ebx, 9 |
3276 | mov ecx, [wnd_height] |
3582 | mov ecx, [wnd_height] |
3277 | sub ecx, [fill_height] |
3583 | sub ecx, [fill_height] |
3278 | sub ecx, 5-1 |
3584 | sub ecx, 5-1 |
3279 | shl ecx, 16 |
3585 | shl ecx, 16 |
3280 | mov cx, word [fill_height] |
3586 | mov cx, word [fill_height] |
3281 | int 0x40 |
3587 | int 0x40 |
3282 | @@: |
3588 | @@: |
3283 | ; xor ecx, ecx |
3589 | ; xor ecx, ecx |
3284 | ; call draw_image |
3590 | ; call draw_image |
3285 | mov al, 65 |
3591 | mov al, 65 |
3286 | mov ebx, [MemForImage] |
3592 | mov ebx, [MemForImage] |
3287 | test ebx, ebx |
3593 | test ebx, ebx |
3288 | jz @f |
3594 | jz @f |
3289 | mov ecx, [cur_width] |
3595 | mov ecx, [cur_width] |
3290 | imul ecx, font_width*10000h |
3596 | imul ecx, font_width*10000h |
3291 | mov cx, word [cur_height] |
3597 | mov cx, word [cur_height] |
3292 | imul cx, font_height |
3598 | imul cx, font_height |
3293 | mov edx, [skinh] |
3599 | mov edx, [skinh] |
3294 | add edx, 5*10000h |
3600 | add edx, 5*10000h |
3295 | mov esi, 8 |
3601 | mov esi, 8 |
3296 | mov edi, console_colors |
3602 | mov edi, console_colors |
3297 | xor ebp, ebp |
3603 | xor ebp, ebp |
3298 | int 0x40 |
3604 | int 0x40 |
3299 | @@: |
3605 | @@: |
3300 | mov al, 12 |
3606 | mov al, 12 |
3301 | push 2 |
3607 | push 2 |
3302 | pop ebx |
3608 | pop ebx |
3303 | int 40h |
3609 | int 40h |
3304 | ret |
3610 | ret |
3305 | 3611 | ||
3306 | draw_image.nomem: |
3612 | draw_image.nomem: |
3307 | mov al, 13 |
3613 | mov al, 13 |
3308 | xor edx, edx |
3614 | xor edx, edx |
3309 | mov ebx, [cur_width] |
3615 | mov ebx, [cur_width] |
3310 | imul ebx, font_width |
3616 | imul ebx, font_width |
3311 | add ebx, 5*65536 |
3617 | add ebx, 5*65536 |
3312 | mov ecx, [skinh-2] |
3618 | mov ecx, [skinh-2] |
3313 | mov cx, word [cur_height] |
3619 | mov cx, word [cur_height] |
3314 | imul cx, font_height |
3620 | imul cx, font_height |
3315 | int 40h |
3621 | int 40h |
3316 | mov al, 4 |
3622 | mov al, 4 |
3317 | mov ebx, 32*65536+32 |
3623 | mov ebx, 32*65536+32 |
3318 | mov ecx, 0xFFFFFF |
3624 | mov ecx, 0xFFFFFF |
3319 | mov edx, nomem_draw |
3625 | mov edx, nomem_draw |
3320 | push nomem_draw.size |
3626 | push nomem_draw.size |
3321 | pop esi |
3627 | pop esi |
3322 | int 40h |
3628 | int 40h |
3323 | ret |
3629 | ret |
3324 | 3630 | ||
3325 | draw_image: |
3631 | draw_image: |
3326 | mov [bMemForImageValidData], byte 1 |
3632 | mov [bMemForImageValidData], byte 1 |
3327 | cmp [MemForImage], 0 |
3633 | cmp [MemForImage], 0 |
3328 | jnz .allocated |
3634 | jnz .allocated |
3329 | ; allocate memory for image |
3635 | ; allocate memory for image |
3330 | mov ecx, [cur_width] |
3636 | mov ecx, [cur_width] |
3331 | imul ecx, [cur_height] |
3637 | imul ecx, [cur_height] |
3332 | imul ecx, font_width*font_height |
3638 | imul ecx, font_width*font_height |
3333 | call pgalloc |
3639 | call pgalloc |
3334 | test eax, eax |
3640 | test eax, eax |
3335 | jz draw_image.nomem |
3641 | jz draw_image.nomem |
3336 | mov [MemForImage], eax |
3642 | mov [MemForImage], eax |
3337 | mov [bMemForImageValidData], byte 0 |
3643 | mov [bMemForImageValidData], byte 0 |
3338 | .allocated: |
3644 | .allocated: |
- | 3645 | push ebp |
|
3339 | and [max_x], 0 |
3646 | and [max_x], 0 |
3340 | or [min_x], -1 |
3647 | or [min_x], -1 |
3341 | and [max_y], 0 |
3648 | and [max_y], 0 |
3342 | or [min_y], -1 |
3649 | or [min_y], -1 |
3343 | mov eax, [cursor_y] |
3650 | mov eax, [cursor_y] |
3344 | mul [cur_width] |
3651 | mul [cur_width] |
3345 | add eax, [cursor_x] |
3652 | add eax, [cursor_x] |
3346 | add eax, eax |
3653 | add eax, eax |
3347 | add eax, [console_data_ptr] |
3654 | add eax, [console_data_ptr] |
3348 | xchg [cur_cursor_pos], eax |
3655 | xchg [cur_cursor_pos], eax |
3349 | mov [old_cursor_pos], eax |
3656 | mov [old_cursor_pos], eax |
3350 | mov edi, [MemForImage] |
3657 | mov edi, [MemForImage] |
3351 | mov esi, [console_data_ptr] |
3658 | mov esi, [console_data_ptr] |
3352 | mov ecx, [cur_height] |
3659 | mov ecx, [cur_height] |
3353 | .lh: |
3660 | .lh: |
3354 | push ecx |
3661 | push ecx |
3355 | mov ecx, [cur_width] |
3662 | mov ecx, [cur_width] |
3356 | .lw: |
3663 | .lw: |
3357 | push ecx |
3664 | push ecx |
3358 | mov eax, [cur_width] |
3665 | mov eax, [cur_width] |
3359 | imul eax, [cur_height] |
3666 | imul eax, [cur_height] |
3360 | mov ebx, [esi] |
3667 | mov ebx, [esi] |
3361 | cmp [bMemForImageValidData], 0 |
3668 | cmp [bMemForImageValidData], 0 |
3362 | jz @f |
3669 | jz @f |
3363 | cmp esi, [cur_cursor_pos] |
3670 | cmp esi, [cur_cursor_pos] |
3364 | jz @f |
3671 | jz @f |
3365 | cmp esi, [old_cursor_pos] |
3672 | cmp esi, [old_cursor_pos] |
3366 | jz @f |
3673 | jz @f |
3367 | cmp bx, [eax*2+esi] |
3674 | cmp bx, [eax*2+esi] |
3368 | jnz @f |
3675 | jnz @f |
3369 | inc esi |
3676 | inc esi |
3370 | inc esi |
3677 | inc esi |
3371 | jmp .skip_symbol |
3678 | jmp .skip_symbol |
3372 | @@: |
3679 | @@: |
3373 | mov [eax*2+esi], bx |
3680 | mov [eax*2+esi], bx |
3374 | cmp ecx, [min_x] |
3681 | cmp ecx, [min_x] |
3375 | ja @f |
3682 | ja @f |
3376 | mov [min_x], ecx |
3683 | mov [min_x], ecx |
3377 | @@: |
3684 | @@: |
3378 | cmp ecx, [max_x] |
3685 | cmp ecx, [max_x] |
3379 | jb @f |
3686 | jb @f |
3380 | mov [max_x], ecx |
3687 | mov [max_x], ecx |
3381 | @@: |
3688 | @@: |
3382 | mov eax, [esp+4] |
3689 | mov eax, [esp+4] |
3383 | mov [min_y], eax |
3690 | mov [min_y], eax |
3384 | cmp eax, [max_y] |
3691 | cmp eax, [max_y] |
3385 | jb @f |
3692 | jb @f |
3386 | mov [max_y], eax |
3693 | mov [max_y], eax |
3387 | @@: |
3694 | @@: |
3388 | push edi |
3695 | push edi |
3389 | xor eax, eax |
3696 | xor eax, eax |
3390 | mov al, [esi+1] |
3697 | mov al, [esi+1] |
3391 | and al, 0xF |
3698 | and al, 0xF |
3392 | mov ebx, eax |
3699 | mov ebx, eax |
3393 | mov al, [esi+1] |
3700 | mov al, [esi+1] |
3394 | shr al, 4 |
3701 | shr al, 4 |
3395 | mov ebp, eax |
3702 | mov ebp, eax |
3396 | sub ebx, ebp |
3703 | sub ebx, ebp |
3397 | lodsb |
3704 | lodsb |
3398 | inc esi |
3705 | inc esi |
3399 | if font_width > 8 |
3706 | if font_width > 8 |
3400 | lea edx, [eax+eax+font] |
3707 | lea edx, [eax+eax+font] |
3401 | else |
3708 | else |
3402 | lea edx, [eax+font] |
3709 | lea edx, [eax+font] |
3403 | end if |
3710 | end if |
3404 | .sh: |
3711 | .sh: |
3405 | mov ecx, [edx] |
3712 | mov ecx, [edx] |
3406 | repeat font_width |
3713 | repeat font_width |
3407 | shr ecx, 1 |
3714 | shr ecx, 1 |
3408 | sbb eax, eax |
3715 | sbb eax, eax |
3409 | and eax, ebx |
3716 | and eax, ebx |
3410 | add eax, ebp |
3717 | add eax, ebp |
3411 | mov [edi+%-1], al |
3718 | mov [edi+%-1], al |
3412 | end repeat |
3719 | end repeat |
3413 | mov eax, [cur_width] |
3720 | mov eax, [cur_width] |
3414 | ; imul eax, font_width |
3721 | ; imul eax, font_width |
3415 | ; add edi, eax |
3722 | ; add edi, eax |
3416 | if font_width = 6 |
3723 | if font_width = 6 |
3417 | lea eax, [eax*2+eax] |
3724 | lea eax, [eax*2+eax] |
3418 | lea edi, [edi+eax*2] |
3725 | lea edi, [edi+eax*2] |
3419 | else if font_width = 7 |
3726 | else if font_width = 7 |
3420 | lea edi, [edi+eax*8] |
3727 | lea edi, [edi+eax*8] |
3421 | sub edi, eax |
3728 | sub edi, eax |
3422 | else if font_width = 8 |
3729 | else if font_width = 8 |
3423 | lea edi, [edi+eax*8] |
3730 | lea edi, [edi+eax*8] |
3424 | else if font_width = 9 |
3731 | else if font_width = 9 |
3425 | lea edi, [edi+eax*8] |
3732 | lea edi, [edi+eax*8] |
3426 | add edi, eax |
3733 | add edi, eax |
3427 | else if font_width = 10 |
3734 | else if font_width = 10 |
3428 | lea eax, [eax*4+eax] |
3735 | lea eax, [eax*4+eax] |
3429 | lea edi, [edi+eax*2] |
3736 | lea edi, [edi+eax*2] |
3430 | else |
3737 | else |
3431 | Unknown font_width value! |
3738 | Unknown font_width value! |
3432 | end if |
3739 | end if |
3433 | if font_width > 8 |
3740 | if font_width > 8 |
3434 | add edx, 256*2 |
3741 | add edx, 256*2 |
3435 | cmp edx, font+256*2*font_height |
3742 | cmp edx, font+256*2*font_height |
3436 | else |
3743 | else |
3437 | add edx, 256 |
3744 | add edx, 256 |
3438 | cmp edx, font+256*font_height |
3745 | cmp edx, font+256*font_height |
3439 | end if |
3746 | end if |
3440 | jb .sh |
3747 | jb .sh |
3441 | pop edi |
3748 | pop edi |
3442 | .skip_symbol: |
3749 | .skip_symbol: |
3443 | pop ecx |
3750 | pop ecx |
3444 | add edi, font_width |
3751 | add edi, font_width |
3445 | dec ecx |
3752 | dec ecx |
3446 | jnz .lw |
3753 | jnz .lw |
3447 | mov eax, [cur_width] |
3754 | mov eax, [cur_width] |
3448 | imul eax, (font_height-1)*font_width |
3755 | imul eax, (font_height-1)*font_width |
3449 | add edi, eax |
3756 | add edi, eax |
3450 | pop ecx |
3757 | pop ecx |
3451 | dec ecx |
3758 | dec ecx |
3452 | jnz .lh |
3759 | jnz .lh |
3453 | ; cursor |
3760 | ; cursor |
3454 | mov eax, [cursor_y] |
3761 | mov eax, [cursor_y] |
3455 | inc eax |
3762 | inc eax |
3456 | jz .nocursor |
3763 | jz .nocursor |
3457 | mul [cur_width] |
3764 | mul [cur_width] |
3458 | imul eax, font_height*font_width |
3765 | imul eax, font_height*font_width |
3459 | mov edx, [cursor_x] |
3766 | mov edx, [cursor_x] |
3460 | inc edx |
3767 | inc edx |
3461 | imul edx, font_width |
3768 | imul edx, font_width |
3462 | add eax, edx |
3769 | add eax, edx |
3463 | add eax, [MemForImage] |
3770 | add eax, [MemForImage] |
3464 | mov edx, [cur_width] |
3771 | mov edx, [cur_width] |
3465 | imul edx, font_width |
3772 | imul edx, font_width |
3466 | neg edx |
3773 | neg edx |
3467 | mov ecx, (font_height*15+50)/100 |
3774 | mov ecx, [cursor_size] |
3468 | .cursor_loop: |
3775 | .cursor_loop: |
3469 | push ecx |
3776 | push ecx |
3470 | mov ecx, font_width |
3777 | mov ecx, font_width |
3471 | add eax, edx |
3778 | add eax, edx |
3472 | push eax |
3779 | push eax |
3473 | @@: |
3780 | @@: |
3474 | ; add byte [eax-1], 0x10 |
3781 | ;; add byte [eax-1], 0x10 |
3475 | xor byte [eax-1], 7 |
3782 | xor byte [eax-1], 7 |
3476 | sub eax, 1 |
3783 | sub eax, 1 |
3477 | loop @b |
3784 | loop @b |
3478 | pop eax |
3785 | pop eax |
3479 | pop ecx |
3786 | pop ecx |
3480 | loop .cursor_loop |
3787 | loop .cursor_loop |
3481 | .nocursor: |
3788 | .nocursor: |
3482 | cmp [min_y], -1 |
3789 | cmp [min_y], -1 |
3483 | jz .nodraw |
3790 | jz .nodraw |
3484 | mov ecx, [cur_width] |
3791 | mov ecx, [cur_width] |
3485 | mov ebx, [cur_height] |
3792 | mov ebx, [cur_height] |
3486 | mov eax, ebx |
3793 | mov eax, ebx |
3487 | sub ebx, [max_y] |
3794 | sub ebx, [max_y] |
3488 | sub eax, [min_y] |
3795 | sub eax, [min_y] |
3489 | sub eax, ebx |
3796 | sub eax, ebx |
3490 | inc eax |
3797 | inc eax |
3491 | imul ebp, eax, font_height |
3798 | imul ebp, eax, font_height |
3492 | mov edx, ecx |
3799 | mov edx, ecx |
3493 | sub edx, [max_x] |
3800 | sub edx, [max_x] |
3494 | imul edx, font_width |
3801 | imul edx, font_width |
3495 | mov eax, edx |
3802 | mov eax, edx |
3496 | shl edx, 16 |
3803 | shl edx, 16 |
3497 | imul dx, bx, font_height |
3804 | imul dx, bx, font_height |
3498 | imul ebx, [cur_width] |
3805 | imul ebx, [cur_width] |
3499 | mov ecx, [max_x] |
3806 | mov ecx, [max_x] |
3500 | sub ecx, [min_x] |
3807 | sub ecx, [min_x] |
3501 | inc ecx |
3808 | inc ecx |
3502 | imul ecx, font_width*10000h |
3809 | imul ecx, font_width*10000h |
3503 | add ecx, ebp |
3810 | add ecx, ebp |
3504 | imul ebx, font_width*font_height |
3811 | imul ebx, font_width*font_height |
3505 | add ebx, [MemForImage] |
3812 | add ebx, [MemForImage] |
3506 | add ebx, eax |
3813 | add ebx, eax |
3507 | add edx, [skinh] |
3814 | add edx, [skinh] |
3508 | add edx, 5*10000h |
3815 | add edx, 5*10000h |
3509 | imul esi, [cur_width], font_width |
3816 | imul esi, [cur_width], font_width |
3510 | mov ebp, ecx |
3817 | mov ebp, ecx |
3511 | shr ebp, 16 |
3818 | shr ebp, 16 |
3512 | sub esi, ebp |
3819 | sub esi, ebp |
3513 | mov ebp, esi |
3820 | mov ebp, esi |
3514 | push 65 |
3821 | push 65 |
3515 | pop eax |
3822 | pop eax |
3516 | mov edi, console_colors |
3823 | mov edi, console_colors |
3517 | push 8 |
3824 | push 8 |
3518 | pop esi |
3825 | pop esi |
3519 | int 40h |
3826 | int 40h |
3520 | .nodraw: |
3827 | .nodraw: |
- | 3828 | pop ebp |
|
3521 | ret |
3829 | ret |
3522 | 3830 | ||
3523 | get_console_ptr: |
3831 | get_console_ptr: |
3524 | ; in: eax=x, edx=y |
3832 | ; in: eax=x, edx=y |
3525 | ; out: edi->console data |
3833 | ; out: edi->console data |
3526 | push edx |
3834 | push edx |
3527 | imul edx, [cur_width] |
3835 | imul edx, [cur_width] |
3528 | add edx, eax |
3836 | add edx, eax |
3529 | mov edi, [console_data_ptr] |
3837 | mov edi, [console_data_ptr] |
3530 | lea edi, [edi + edx*2] |
3838 | lea edi, [edi + edx*2] |
3531 | pop edx |
3839 | pop edx |
3532 | ret |
3840 | ret |
3533 | 3841 | ||
3534 | draw_keybar: |
3842 | draw_keybar: |
3535 | pushad |
3843 | pushad |
3536 | xor eax, eax |
3844 | xor eax, eax |
3537 | test [ctrlstate], 3 |
3845 | test [ctrlstate], 3 |
3538 | jz @f |
3846 | jz @f |
3539 | inc eax |
3847 | inc eax |
3540 | @@: |
3848 | @@: |
3541 | test [ctrlstate], 0xC |
3849 | test [ctrlstate], 0xC |
3542 | jz @f |
3850 | jz @f |
3543 | or al, 2 |
3851 | or al, 2 |
3544 | @@: |
3852 | @@: |
3545 | test [ctrlstate], 0x30 |
3853 | test [ctrlstate], 0x30 |
3546 | jz @f |
3854 | jz @f |
3547 | or al, 4 |
3855 | or al, 4 |
3548 | @@: |
3856 | @@: |
3549 | imul eax, 6*12 |
3857 | imul eax, 6*12 |
3550 | mov esi, [active_screen_vtable] |
3858 | mov esi, [active_screen_vtable] |
3551 | mov esi, [esi+screen_vtable.keybar] |
3859 | mov esi, [esi+screen_vtable.keybar] |
3552 | add esi, eax |
3860 | add esi, eax |
3553 | xor ecx, ecx |
3861 | xor ecx, ecx |
3554 | inc ecx |
3862 | inc ecx |
3555 | xor eax, eax |
3863 | xor eax, eax |
3556 | mov edx, [cur_height] |
3864 | mov edx, [cur_height] |
3557 | dec edx |
3865 | dec edx |
3558 | call get_console_ptr |
3866 | call get_console_ptr |
3559 | push 6 |
3867 | push 6 |
3560 | pop ebx |
3868 | pop ebx |
3561 | mov eax, [cur_width] |
3869 | mov eax, [cur_width] |
3562 | sub eax, 11+9+3*2+6 |
3870 | sub eax, 11+9+3*2+6 |
3563 | cmp eax, 7*11 |
3871 | cmp eax, 7*11 |
3564 | jl @f |
3872 | jl @f |
3565 | cdq |
3873 | cdq |
3566 | mov bl, 11 |
3874 | mov bl, 11 |
3567 | div ebx |
3875 | div ebx |
3568 | mov ebx, eax |
3876 | mov ebx, eax |
3569 | @@: |
3877 | @@: |
3570 | xor edx, edx |
3878 | xor edx, edx |
3571 | .l: |
3879 | .l: |
3572 | add edx, 7 |
3880 | add edx, 7 |
3573 | cmp cl, 10 |
3881 | cmp cl, 10 |
3574 | jb @f |
3882 | jb @f |
3575 | inc edx |
3883 | inc edx |
3576 | @@: |
3884 | @@: |
3577 | cmp edx, [cur_width] |
3885 | cmp edx, [cur_width] |
3578 | ja .ret |
3886 | ja .ret |
3579 | cmp cl, 10 |
3887 | cmp cl, 10 |
3580 | jae .twodig |
3888 | jae .twodig |
3581 | lea eax, [ecx+'0'] |
3889 | lea eax, [ecx+'0'] |
3582 | stosb |
3890 | stosb |
3583 | mov al, [keybar_number_color] |
3891 | mov al, [keybar_number_color] |
3584 | stosb |
3892 | stosb |
3585 | jmp .cmn |
3893 | jmp .cmn |
3586 | .twodig: |
3894 | .twodig: |
3587 | mov al, cl |
3895 | mov al, cl |
3588 | cbw |
3896 | cbw |
3589 | div [_10] |
3897 | div [_10] |
3590 | add al, '0' |
3898 | add al, '0' |
3591 | stosb |
3899 | stosb |
3592 | mov al, [keybar_number_color] |
3900 | mov al, [keybar_number_color] |
3593 | stosb |
3901 | stosb |
3594 | xchg al, ah |
3902 | xchg al, ah |
3595 | add al, '0' |
3903 | add al, '0' |
3596 | stosw |
3904 | stosw |
3597 | .cmn: |
3905 | .cmn: |
3598 | mov ah, [keybar_name_color] |
3906 | mov ah, [keybar_name_color] |
3599 | push ecx |
3907 | push ecx |
3600 | mov cl, 6 |
3908 | mov cl, 6 |
3601 | @@: |
3909 | @@: |
3602 | lodsb |
3910 | lodsb |
3603 | stosw |
3911 | stosw |
3604 | loop @b |
3912 | loop @b |
3605 | mov al, ' ' |
3913 | mov al, ' ' |
3606 | lea ecx, [ebx-6] |
3914 | lea ecx, [ebx-6] |
3607 | cmp byte [esp], 12 |
3915 | cmp byte [esp], 12 |
3608 | jz .ret_pop |
3916 | jz .ret_pop |
3609 | add edx, ecx |
3917 | add edx, ecx |
3610 | rep stosw |
3918 | rep stosw |
3611 | pop ecx |
3919 | pop ecx |
3612 | inc edx |
3920 | inc edx |
3613 | cmp edx, [cur_width] |
3921 | cmp edx, [cur_width] |
3614 | ja .ret |
3922 | ja .ret |
3615 | mov ah, [keybar_bgr_color] |
3923 | mov ah, [keybar_bgr_color] |
3616 | stosw |
3924 | stosw |
3617 | inc ecx |
3925 | inc ecx |
3618 | jmp .l |
3926 | jmp .l |
3619 | .ret_pop: |
3927 | .ret_pop: |
3620 | pop ecx |
3928 | pop ecx |
3621 | .ret: |
3929 | .ret: |
3622 | cmp byte [edi-2], ' ' |
3930 | cmp byte [edi-2], ' ' |
3623 | jnz @f |
3931 | jnz @f |
3624 | dec edi |
3932 | dec edi |
3625 | dec edi |
3933 | dec edi |
3626 | @@: |
3934 | @@: |
3627 | push edi |
3935 | push edi |
3628 | xor eax, eax |
3936 | xor eax, eax |
3629 | mov edx, [cur_height] |
3937 | mov edx, [cur_height] |
3630 | call get_console_ptr |
3938 | call get_console_ptr |
3631 | mov ecx, edi |
3939 | mov ecx, edi |
3632 | pop edi |
3940 | pop edi |
3633 | sub ecx, edi |
3941 | sub ecx, edi |
3634 | shr ecx, 1 |
3942 | shr ecx, 1 |
3635 | mov al, ' ' |
3943 | mov al, ' ' |
3636 | mov ah, [keybar_name_color] |
3944 | mov ah, [keybar_name_color] |
3637 | rep stosw |
3945 | rep stosw |
3638 | .done: |
3946 | .done: |
- | 3947 | cmp [bDisplayQuickSearch], 0 |
|
- | 3948 | jz @f |
|
- | 3949 | push QuickSearchDlg |
|
- | 3950 | call DrawDialogBox |
|
- | 3951 | @@: |
|
3639 | popad |
3952 | popad |
3640 | ret |
3953 | ret |
3641 | 3954 | ||
3642 | draw_cmdbar: |
3955 | draw_cmdbar: |
3643 | mov esi, [active_panel] |
3956 | mov esi, [active_panel] |
3644 | add esi, panel1_dir - panel1_data |
3957 | add esi, panel1_dir - panel1_data |
3645 | xor eax, eax |
3958 | xor eax, eax |
3646 | mov edx, [cur_height] |
3959 | mov edx, [cur_height] |
3647 | dec edx |
3960 | dec edx |
3648 | dec edx |
3961 | dec edx |
3649 | call get_console_ptr |
3962 | call get_console_ptr |
3650 | mov ah, [cmdbar_prefix_color] |
3963 | mov ah, [cmdbar_prefix_color] |
3651 | mov ecx, [cur_width] |
3964 | mov ecx, [cur_width] |
3652 | dec ecx |
3965 | dec ecx |
3653 | @@: |
3966 | @@: |
3654 | lodsb |
3967 | lodsb |
3655 | test al, al |
3968 | test al, al |
3656 | jz @f |
3969 | jz @f |
3657 | stosw |
3970 | stosw |
3658 | loop @b |
3971 | loop @b |
3659 | @@: |
3972 | @@: |
3660 | mov al, '>' |
3973 | mov al, '>' |
3661 | stosw |
3974 | stosw |
3662 | mov al, ' ' |
3975 | mov al, ' ' |
3663 | mov ah, [cmdbar_normal_color] |
3976 | mov ah, [cmdbar_normal_color] |
3664 | rep stosw |
3977 | rep stosw |
3665 | ret |
3978 | ret |
3666 | 3979 | ||
3667 | draw_border: |
3980 | draw_border: |
3668 | push edi |
3981 | push edi |
3669 | mov al, 0xC9 |
3982 | mov al, 0xC9 |
3670 | stosw |
3983 | stosw |
3671 | mov al, 0xCD |
3984 | mov al, 0xCD |
3672 | lea ecx, [ebx-2] |
3985 | lea ecx, [ebx-2] |
3673 | rep stosw |
3986 | rep stosw |
3674 | mov al, 0xBB |
3987 | mov al, 0xBB |
3675 | stosw |
3988 | stosw |
3676 | pop edi |
3989 | pop edi |
3677 | add edi, [cur_width] |
3990 | add edi, [cur_width] |
3678 | add edi, [cur_width] |
3991 | add edi, [cur_width] |
3679 | lea ecx, [edx-2] |
3992 | lea ecx, [edx-2] |
3680 | .l: |
3993 | .l: |
3681 | push edi |
3994 | push edi |
3682 | mov al, 0xBA |
3995 | mov al, 0xBA |
3683 | stosw |
3996 | stosw |
3684 | mov al, 0x20 |
3997 | mov al, 0x20 |
3685 | push ecx |
3998 | push ecx |
3686 | lea ecx, [ebx-2] |
3999 | lea ecx, [ebx-2] |
3687 | rep stosw |
4000 | rep stosw |
3688 | pop ecx |
4001 | pop ecx |
3689 | mov al, 0xBA |
4002 | mov al, 0xBA |
3690 | stosw |
4003 | stosw |
3691 | pop edi |
4004 | pop edi |
3692 | add edi, [cur_width] |
4005 | add edi, [cur_width] |
3693 | add edi, [cur_width] |
4006 | add edi, [cur_width] |
3694 | loop .l |
4007 | loop .l |
3695 | mov al, 0xC8 |
4008 | mov al, 0xC8 |
3696 | stosw |
4009 | stosw |
3697 | mov al, 0xCD |
4010 | mov al, 0xCD |
3698 | lea ecx, [ebx-2] |
4011 | lea ecx, [ebx-2] |
3699 | rep stosw |
4012 | rep stosw |
3700 | mov al, 0xBC |
4013 | mov al, 0xBC |
3701 | stosw |
4014 | stosw |
3702 | ret |
4015 | ret |
3703 | 4016 | ||
3704 | calc_colwidths: |
4017 | calc_colwidths: |
3705 | ; in: ebp->panel data |
4018 | ; in: ebp->panel data |
3706 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
4019 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
3707 | add esi, colmodes |
4020 | add esi, colmodes |
3708 | lodsd |
4021 | lodsd |
3709 | mov ecx, eax |
4022 | mov ecx, eax |
3710 | lea edx, [ecx-1] |
4023 | lea edx, [ecx-1] |
3711 | xor ebx, ebx |
4024 | xor ebx, ebx |
3712 | add esi, PanelMode.ColumnWidths-4 |
4025 | add esi, PanelMode.ColumnWidths-4 |
3713 | push ecx esi |
4026 | push ecx esi |
3714 | xor eax, eax |
4027 | xor eax, eax |
3715 | .loop: |
4028 | .loop: |
3716 | lodsb |
4029 | lodsb |
3717 | add edx, eax |
4030 | add edx, eax |
3718 | cmp al, 1 |
4031 | cmp al, 1 |
3719 | adc ebx, 0 |
4032 | adc ebx, 0 |
3720 | loop .loop |
4033 | loop .loop |
3721 | pop esi ecx |
4034 | pop esi ecx |
3722 | lea edi, [ebp + panel1_colwidths - panel1_data] |
4035 | lea edi, [ebp + panel1_colwidths - panel1_data] |
3723 | test ebx, ebx |
4036 | test ebx, ebx |
3724 | jz .loop2 |
4037 | jz .loop2 |
3725 | mov eax, [ebp + panel1_width - panel1_data] |
4038 | mov eax, [ebp + panel1_width - panel1_data] |
3726 | dec eax |
4039 | dec eax |
3727 | dec eax |
4040 | dec eax |
3728 | sub eax, edx |
4041 | sub eax, edx |
3729 | jae @f |
4042 | jae @f |
3730 | xor eax, eax |
4043 | xor eax, eax |
3731 | @@: |
4044 | @@: |
3732 | xor edx, edx |
4045 | xor edx, edx |
3733 | div ebx |
4046 | div ebx |
3734 | test eax, eax |
4047 | test eax, eax |
3735 | jnz @f |
4048 | jnz @f |
3736 | xor edx, edx |
4049 | xor edx, edx |
3737 | inc eax |
4050 | inc eax |
3738 | @@: |
4051 | @@: |
3739 | push eax |
4052 | push eax |
3740 | .loop2: |
4053 | .loop2: |
3741 | movzx eax, byte [esi] |
4054 | movzx eax, byte [esi] |
3742 | inc esi |
4055 | inc esi |
3743 | test eax, eax |
4056 | test eax, eax |
3744 | jnz @f |
4057 | jnz @f |
3745 | pop eax |
4058 | pop eax |
3746 | push eax |
4059 | push eax |
3747 | dec ebx |
4060 | dec ebx |
3748 | cmp ebx, edx |
4061 | cmp ebx, edx |
3749 | jae @f |
4062 | jae @f |
3750 | inc eax |
4063 | inc eax |
3751 | @@: |
4064 | @@: |
3752 | stosd |
4065 | stosd |
3753 | loop .loop2 |
4066 | loop .loop2 |
3754 | pop eax |
4067 | pop eax |
3755 | and dword [edi], 0 |
4068 | and dword [edi], 0 |
3756 | ret |
4069 | ret |
3757 | 4070 | ||
3758 | GetPanelTitle_default: |
4071 | GetPanelTitle_default: |
3759 | mov edi, [esp+8] |
4072 | mov edi, [esp+8] |
3760 | mov ecx, 1024 |
4073 | mov ecx, 1024 |
3761 | mov esi, [esp+12] |
4074 | mov esi, [esp+12] |
3762 | test esi, esi |
4075 | test esi, esi |
3763 | jz .nohost |
4076 | jz .nohost |
3764 | mov edx, esi |
4077 | mov edx, esi |
3765 | @@: |
4078 | @@: |
3766 | lodsb |
4079 | lodsb |
3767 | test al, al |
4080 | test al, al |
3768 | jz @f |
4081 | jz @f |
3769 | cmp al, '/' |
4082 | cmp al, '/' |
3770 | jnz @b |
4083 | jnz @b |
3771 | mov edx, esi |
4084 | mov edx, esi |
3772 | jmp @b |
4085 | jmp @b |
3773 | @@: |
4086 | @@: |
3774 | mov esi, edx |
4087 | mov esi, edx |
3775 | @@: |
4088 | @@: |
3776 | lodsb |
4089 | lodsb |
3777 | stosb |
4090 | stosb |
3778 | test al, al |
4091 | test al, al |
3779 | loopnz @b |
4092 | loopnz @b |
3780 | dec edi |
4093 | dec edi |
3781 | inc ecx |
4094 | inc ecx |
3782 | .nohost: |
4095 | .nohost: |
3783 | mov esi, [esp+16] |
4096 | mov esi, [esp+16] |
3784 | cmp word [esi], '/' |
4097 | cmp word [esi], '/' |
3785 | jz .nodir |
4098 | jz .nodir |
3786 | @@: |
4099 | @@: |
3787 | lodsb |
4100 | lodsb |
3788 | stosb |
4101 | stosb |
3789 | test al, al |
4102 | test al, al |
3790 | loopnz @b |
4103 | loopnz @b |
3791 | dec edi |
4104 | dec edi |
3792 | .nodir: |
4105 | .nodir: |
3793 | mov byte [edi], 0 |
4106 | mov byte [edi], 0 |
3794 | ret 10h |
4107 | ret 10h |
3795 | 4108 | ||
3796 | draw_panel: |
4109 | draw_panel: |
3797 | mov eax, [ebp + panel1_left - panel1_data] |
4110 | mov eax, [ebp + panel1_left - panel1_data] |
3798 | mov edx, [ebp + panel1_top - panel1_data] |
4111 | mov edx, [ebp + panel1_top - panel1_data] |
3799 | call get_console_ptr |
4112 | call get_console_ptr |
3800 | ; draw border |
4113 | ; draw border |
3801 | mov ah, [panel_border_color] |
4114 | mov ah, [panel_border_color] |
3802 | mov ebx, [ebp + panel1_width - panel1_data] |
4115 | mov ebx, [ebp + panel1_width - panel1_data] |
3803 | mov edx, [ebp + panel1_height - panel1_data] |
4116 | mov edx, [ebp + panel1_height - panel1_data] |
3804 | call draw_border |
4117 | call draw_border |
3805 | push eax |
4118 | push eax |
3806 | mov eax, [ebp + panel1_left - panel1_data] |
4119 | mov eax, [ebp + panel1_left - panel1_data] |
3807 | mov edx, [ebp + panel1_top - panel1_data] |
4120 | mov edx, [ebp + panel1_top - panel1_data] |
3808 | add edx, [ebp + panel1_height - panel1_data] |
4121 | add edx, [ebp + panel1_height - panel1_data] |
3809 | sub edx, 3 |
4122 | sub edx, 3 |
3810 | call get_console_ptr |
4123 | call get_console_ptr |
3811 | pop eax |
4124 | pop eax |
3812 | mov al, 0xC7 |
4125 | mov al, 0xC7 |
3813 | stosw |
4126 | stosw |
3814 | mov al, 0xC4 |
4127 | mov al, 0xC4 |
3815 | lea ecx, [ebx-2] |
4128 | lea ecx, [ebx-2] |
3816 | rep stosw |
4129 | rep stosw |
3817 | mov al, 0xB6 |
4130 | mov al, 0xB6 |
3818 | stosw |
4131 | stosw |
3819 | 4132 | ||
3820 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
4133 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
3821 | add esi, colmodes |
4134 | add esi, colmodes |
3822 | lodsd |
4135 | lodsd |
3823 | mov ecx, eax ; number of columns |
4136 | mov ecx, eax ; number of columns |
3824 | lea ebx, [ebp + panel1_colwidths - panel1_data] |
4137 | lea ebx, [ebp + panel1_colwidths - panel1_data] |
3825 | mov eax, [ebp + panel1_left - panel1_data] |
4138 | mov eax, [ebp + panel1_left - panel1_data] |
3826 | inc eax |
4139 | inc eax |
3827 | mov [column_left], eax |
4140 | mov [column_left], eax |
3828 | mov eax, [ebp + panel1_top - panel1_data] |
4141 | mov eax, [ebp + panel1_top - panel1_data] |
3829 | inc eax |
4142 | inc eax |
3830 | mov [column_top], eax |
4143 | mov [column_top], eax |
3831 | mov eax, [ebp + panel1_height - panel1_data] |
4144 | mov eax, [ebp + panel1_height - panel1_data] |
3832 | sub eax, 4 |
4145 | sub eax, 4 |
3833 | mov [column_height], eax |
4146 | mov [column_height], eax |
3834 | dec eax |
4147 | dec eax |
3835 | mov [ebp + panel1_colsz - panel1_data], eax |
4148 | mov [ebp + panel1_colsz - panel1_data], eax |
3836 | and [ebp + panel1_colst - panel1_data], 0 |
4149 | and [ebp + panel1_colst - panel1_data], 0 |
3837 | mov eax, [ebp + panel1_start - panel1_data] |
4150 | mov eax, [ebp + panel1_start - panel1_data] |
3838 | mov [column_index], eax |
4151 | mov [column_index], eax |
3839 | mov [last_column_index], eax |
4152 | mov [last_column_index], eax |
3840 | .columns_loop: |
4153 | .columns_loop: |
3841 | push ecx |
4154 | push ecx |
3842 | mov eax, [ebx] |
4155 | mov eax, [ebx] |
3843 | add ebx, 4 |
4156 | add ebx, 4 |
3844 | mov [column_width], eax |
4157 | mov [column_width], eax |
3845 | cmp ecx, 1 |
4158 | cmp ecx, 1 |
3846 | jz .skip_right_border |
4159 | jz .skip_right_border |
3847 | add eax, [column_left] |
4160 | add eax, [column_left] |
3848 | mov edx, [ebp + panel1_top - panel1_data] |
4161 | mov edx, [ebp + panel1_top - panel1_data] |
3849 | call get_console_ptr |
4162 | call get_console_ptr |
3850 | mov ah, [panel_header_color] |
4163 | mov ah, [panel_header_color] |
3851 | mov al, 0xD1 |
4164 | mov al, 0xD1 |
3852 | mov [edi], ax |
4165 | mov [edi], ax |
3853 | add edi, [cur_width] |
4166 | add edi, [cur_width] |
3854 | add edi, [cur_width] |
4167 | add edi, [cur_width] |
3855 | mov ecx, [column_height] |
4168 | mov ecx, [column_height] |
3856 | mov al, 0xB3 |
4169 | mov al, 0xB3 |
3857 | @@: |
4170 | @@: |
3858 | mov [edi], ax |
4171 | mov [edi], ax |
3859 | add edi, [cur_width] |
4172 | add edi, [cur_width] |
3860 | add edi, [cur_width] |
4173 | add edi, [cur_width] |
3861 | loop @b |
4174 | loop @b |
3862 | mov al, 0xC1 |
4175 | mov al, 0xC1 |
3863 | stosw |
4176 | stosw |
3864 | .skip_right_border: |
4177 | .skip_right_border: |
3865 | mov eax, [column_left] |
4178 | mov eax, [column_left] |
3866 | mov edx, [column_top] |
4179 | mov edx, [column_top] |
3867 | call get_console_ptr |
4180 | call get_console_ptr |
3868 | ; § £®«®¢®ª á⮫¡æ |
4181 | ; § £®«®¢®ª á⮫¡æ |
3869 | push edi |
4182 | push edi |
3870 | mov edx, [esi] |
4183 | mov edx, [esi] |
3871 | and edx, 0xF |
4184 | and edx, 0xF |
3872 | mov edx, [column_headers+edx*4] |
4185 | mov edx, [column_headers+edx*4] |
3873 | movzx ecx, byte [edx] |
4186 | movzx ecx, byte [edx] |
3874 | inc edx |
4187 | inc edx |
3875 | cmp ecx, [column_width] |
4188 | cmp ecx, [column_width] |
3876 | jb @f |
4189 | jb @f |
3877 | mov ecx, [column_width] |
4190 | mov ecx, [column_width] |
3878 | @@: |
4191 | @@: |
3879 | push ecx |
4192 | push ecx |
3880 | sub ecx, [column_width] |
4193 | sub ecx, [column_width] |
3881 | neg ecx |
4194 | neg ecx |
3882 | shr ecx, 1 |
4195 | shr ecx, 1 |
3883 | mov al, ' ' |
4196 | mov al, ' ' |
3884 | mov ah, [column_header_color] |
4197 | mov ah, [column_header_color] |
3885 | rep stosw |
4198 | rep stosw |
3886 | pop ecx |
4199 | pop ecx |
3887 | jecxz .skipcopyhdr |
4200 | jecxz .skipcopyhdr |
3888 | push ecx |
4201 | push ecx |
3889 | @@: |
4202 | @@: |
3890 | mov al, [edx] |
4203 | mov al, [edx] |
3891 | inc edx |
4204 | inc edx |
3892 | stosw |
4205 | stosw |
3893 | loop @b |
4206 | loop @b |
3894 | pop ecx |
4207 | pop ecx |
3895 | .skipcopyhdr: |
4208 | .skipcopyhdr: |
3896 | sub ecx, [column_width] |
4209 | sub ecx, [column_width] |
3897 | neg ecx |
4210 | neg ecx |
3898 | inc ecx |
4211 | inc ecx |
3899 | shr ecx, 1 |
4212 | shr ecx, 1 |
3900 | mov al, ' ' |
4213 | mov al, ' ' |
3901 | rep stosw |
4214 | rep stosw |
3902 | pop edi |
4215 | pop edi |
3903 | add edi, [cur_width] |
4216 | add edi, [cur_width] |
3904 | add edi, [cur_width] |
4217 | add edi, [cur_width] |
3905 | ; á ¬ á⮫¡¥æ |
4218 | ; á ¬ á⮫¡¥æ |
3906 | mov eax, [esi] |
4219 | mov eax, [esi] |
3907 | and eax, 0xF |
4220 | and eax, 0xF |
3908 | push ebx esi |
4221 | push ebx esi |
3909 | call dword [draw_column_proc+eax*4] |
4222 | call dword [draw_column_proc+eax*4] |
3910 | pop esi ebx |
4223 | pop esi ebx |
3911 | inc esi |
4224 | inc esi |
3912 | mov eax, [column_width] |
4225 | mov eax, [column_width] |
3913 | inc eax |
4226 | inc eax |
3914 | add [column_left], eax |
4227 | add [column_left], eax |
3915 | pop ecx |
4228 | pop ecx |
3916 | dec ecx |
4229 | dec ecx |
3917 | jnz .columns_loop |
4230 | jnz .columns_loop |
3918 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
4231 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
3919 | lea esi, [ebp + panel1_dir - panel1_data] |
4232 | lea esi, [ebp + panel1_dir - panel1_data] |
3920 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
4233 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
3921 | test eax, eax |
4234 | test eax, eax |
3922 | jz .native |
4235 | jz .native |
3923 | push ebp |
4236 | push ebp |
3924 | push esi |
4237 | push esi |
3925 | mov esi, [ebp + panel1_parents - panel1_data] |
4238 | mov esi, [ebp + panel1_parents - panel1_data] |
3926 | add esi, [ebp + panel1_parents_sz - panel1_data] |
4239 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3927 | @@: |
4240 | @@: |
3928 | dec esi |
4241 | dec esi |
3929 | cmp byte [esi-1], 0 |
4242 | cmp byte [esi-1], 0 |
3930 | jnz @b |
4243 | jnz @b |
3931 | push esi |
4244 | push esi |
3932 | push execdata |
4245 | push execdata |
3933 | push [ebp + panel1_hFile - panel1_data] |
4246 | push [ebp + panel1_hFile - panel1_data] |
3934 | call [eax+PluginInfo.GetPanelTitle] |
4247 | call [eax+PluginInfo.GetPanelTitle] |
3935 | pop ebp |
4248 | pop ebp |
3936 | mov esi, execdata |
4249 | mov esi, execdata |
3937 | .native: |
4250 | .native: |
3938 | mov edi, cur_header |
4251 | mov edi, cur_header |
3939 | mov ecx, [ebp + panel1_width - panel1_data] |
4252 | mov ecx, [ebp + panel1_width - panel1_data] |
3940 | sub ecx, 6 |
4253 | sub ecx, 6 |
3941 | cmp byte [esi], '/' |
4254 | cmp byte [esi], '/' |
3942 | jnz .copy_rest |
4255 | jnz .copy_rest |
3943 | dec ecx |
4256 | dec ecx |
3944 | movsb |
4257 | movsb |
3945 | @@: |
4258 | @@: |
3946 | lodsb |
4259 | lodsb |
3947 | stosb |
4260 | stosb |
3948 | dec ecx |
4261 | dec ecx |
3949 | test al, al |
4262 | test al, al |
3950 | jz .header_created |
4263 | jz .header_created |
3951 | cmp al, '/' |
4264 | cmp al, '/' |
3952 | jnz @b |
4265 | jnz @b |
3953 | .copy_rest: |
4266 | .copy_rest: |
3954 | mov edx, esi |
4267 | mov edx, esi |
3955 | @@: |
4268 | @@: |
3956 | lodsb |
4269 | lodsb |
3957 | test al, al |
4270 | test al, al |
3958 | jnz @b |
4271 | jnz @b |
3959 | sub esi, edx |
4272 | sub esi, edx |
3960 | dec esi |
4273 | dec esi |
3961 | cmp esi, ecx |
4274 | cmp esi, ecx |
3962 | jbe @f |
4275 | jbe @f |
3963 | mov word [edi], '..' |
4276 | mov word [edi], '..' |
3964 | mov byte [edi+2], '.' |
4277 | mov byte [edi+2], '.' |
3965 | add edi, 3 |
4278 | add edi, 3 |
3966 | sub ecx, 3 |
4279 | sub ecx, 3 |
3967 | add edx, esi |
4280 | add edx, esi |
3968 | sub edx, ecx |
4281 | sub edx, ecx |
3969 | @@: |
4282 | @@: |
3970 | mov esi, edx |
4283 | mov esi, edx |
3971 | @@: |
4284 | @@: |
3972 | lodsb |
4285 | lodsb |
3973 | stosb |
4286 | stosb |
3974 | dec ecx |
4287 | dec ecx |
3975 | test al, al |
4288 | test al, al |
3976 | jnz @b |
4289 | jnz @b |
3977 | .header_created: |
4290 | .header_created: |
3978 | mov edx, [ebp + panel1_top - panel1_data] |
4291 | mov edx, [ebp + panel1_top - panel1_data] |
3979 | mov eax, [ebp + panel1_left - panel1_data] |
4292 | mov eax, [ebp + panel1_left - panel1_data] |
3980 | shr ecx, 1 |
4293 | shr ecx, 1 |
3981 | lea eax, [eax+ecx+3] |
4294 | lea eax, [eax+ecx+3] |
3982 | call get_console_ptr |
4295 | call get_console_ptr |
3983 | mov ah, [panel_active_header_color] |
4296 | mov ah, [panel_active_header_color] |
3984 | cmp ebp, [active_panel] |
4297 | cmp ebp, [active_panel] |
3985 | jz @f |
4298 | jz @f |
3986 | mov ah, [panel_header_color] |
4299 | mov ah, [panel_header_color] |
3987 | @@: |
4300 | @@: |
3988 | mov al, ' ' |
4301 | mov al, ' ' |
3989 | stosw |
4302 | stosw |
3990 | mov esi, cur_header |
4303 | mov esi, cur_header |
3991 | @@: |
4304 | @@: |
3992 | lodsb |
4305 | lodsb |
3993 | test al, al |
4306 | test al, al |
3994 | jz @f |
4307 | jz @f |
3995 | stosw |
4308 | stosw |
3996 | jmp @b |
4309 | jmp @b |
3997 | @@: |
4310 | @@: |
3998 | mov al, ' ' |
4311 | mov al, ' ' |
3999 | stosw |
4312 | stosw |
4000 | mov edx, [ebp + panel1_top - panel1_data] |
4313 | mov edx, [ebp + panel1_top - panel1_data] |
4001 | inc edx |
4314 | inc edx |
4002 | mov eax, [ebp + panel1_left - panel1_data] |
4315 | mov eax, [ebp + panel1_left - panel1_data] |
4003 | inc eax |
4316 | inc eax |
4004 | call get_console_ptr |
4317 | call get_console_ptr |
4005 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
4318 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
4006 | mov al, [compare_names+eax] |
4319 | mov al, [compare_names+eax] |
4007 | stosb |
4320 | stosb |
4008 | mov eax, [ebp + panel1_selected_num - panel1_data] |
4321 | mov eax, [ebp + panel1_selected_num - panel1_data] |
4009 | test eax, eax |
4322 | test eax, eax |
4010 | jz .skip_selected_info |
4323 | jz .skip_selected_info |
4011 | ; ä®à¬ æ¨ï ® ¢ë¤¥«¥ëå ä ©« å |
4324 | ; ä®à¬ æ¨ï ® ¢ë¤¥«¥ëå ä ©« å |
4012 | push dword [ebp + panel1_selected_size+4 - panel1_data] |
4325 | push dword [ebp + panel1_selected_size+4 - panel1_data] |
4013 | push dword [ebp + panel1_selected_size - panel1_data] |
4326 | push dword [ebp + panel1_selected_size - panel1_data] |
4014 | call fill_total_info |
4327 | call fill_total_info |
4015 | mov eax, [ebp + panel1_width - panel1_data] |
4328 | mov eax, [ebp + panel1_width - panel1_data] |
4016 | sub eax, 2 |
4329 | sub eax, 2 |
4017 | cmp ecx, eax |
4330 | cmp ecx, eax |
4018 | jbe @f |
4331 | jbe @f |
4019 | mov ecx, eax |
4332 | mov ecx, eax |
4020 | mov edi, saved_file_name+512 |
4333 | mov edi, saved_file_name+512 |
4021 | sub edi, eax |
4334 | sub edi, eax |
4022 | mov byte [edi], '.' |
4335 | mov byte [edi], '.' |
4023 | mov word [edi+1], '..' |
4336 | mov word [edi+1], '..' |
4024 | @@: |
4337 | @@: |
4025 | mov esi, edi |
4338 | mov esi, edi |
4026 | sub eax, ecx |
4339 | sub eax, ecx |
4027 | shr eax, 1 |
4340 | shr eax, 1 |
4028 | inc eax |
4341 | inc eax |
4029 | add eax, [ebp + panel1_left - panel1_data] |
4342 | add eax, [ebp + panel1_left - panel1_data] |
4030 | mov edx, [ebp + panel1_top - panel1_data] |
4343 | mov edx, [ebp + panel1_top - panel1_data] |
4031 | add edx, [ebp + panel1_height - panel1_data] |
4344 | add edx, [ebp + panel1_height - panel1_data] |
4032 | sub edx, 3 |
4345 | sub edx, 3 |
4033 | call get_console_ptr |
4346 | call get_console_ptr |
4034 | mov ah, [panel_numselected_color] |
4347 | mov ah, [panel_numselected_color] |
4035 | @@: |
4348 | @@: |
4036 | lodsb |
4349 | lodsb |
4037 | stosw |
4350 | stosw |
4038 | loop @b |
4351 | loop @b |
4039 | .skip_selected_info: |
4352 | .skip_selected_info: |
4040 | ; ä®à¬ æ¨ï ®¡ ®¡é¥¬ ç¨á«¥ ¨ à §¬¥à¥ ä ©«®¢ ¯ ¥«¨ |
4353 | ; ä®à¬ æ¨ï ®¡ ®¡é¥¬ ç¨á«¥ ¨ à §¬¥à¥ ä ©«®¢ ¯ ¥«¨ |
4041 | mov eax, [ebp + panel1_total_num - panel1_data] |
4354 | mov eax, [ebp + panel1_total_num - panel1_data] |
4042 | push dword [ebp + panel1_total_size+4 - panel1_data] |
4355 | push dword [ebp + panel1_total_size+4 - panel1_data] |
4043 | push dword [ebp + panel1_total_size - panel1_data] |
4356 | push dword [ebp + panel1_total_size - panel1_data] |
4044 | call fill_total_info |
4357 | call fill_total_info |
4045 | mov eax, [ebp + panel1_width - panel1_data] |
4358 | mov eax, [ebp + panel1_width - panel1_data] |
4046 | sub eax, 2 |
4359 | sub eax, 2 |
4047 | cmp ecx, eax |
4360 | cmp ecx, eax |
4048 | jbe @f |
4361 | jbe @f |
4049 | mov ecx, eax |
4362 | mov ecx, eax |
4050 | mov byte [edi+ecx-3], '.' |
4363 | mov byte [edi+ecx-3], '.' |
4051 | mov word [edi+ecx-2], '..' |
4364 | mov word [edi+ecx-2], '..' |
4052 | @@: |
4365 | @@: |
4053 | sub eax, ecx |
4366 | sub eax, ecx |
4054 | shr eax, 1 |
4367 | shr eax, 1 |
4055 | inc eax |
4368 | inc eax |
4056 | add eax, [ebp + panel1_left - panel1_data] |
4369 | add eax, [ebp + panel1_left - panel1_data] |
4057 | add edx, [ebp + panel1_top - panel1_data] |
4370 | add edx, [ebp + panel1_top - panel1_data] |
4058 | add edx, [ebp + panel1_height - panel1_data] |
4371 | add edx, [ebp + panel1_height - panel1_data] |
4059 | dec edx |
4372 | dec edx |
4060 | mov esi, edi |
4373 | mov esi, edi |
4061 | call get_console_ptr |
4374 | call get_console_ptr |
4062 | mov ah, [panel_number_color] |
4375 | mov ah, [panel_number_color] |
4063 | @@: |
4376 | @@: |
4064 | lodsb |
4377 | lodsb |
4065 | stosw |
4378 | stosw |
4066 | loop @b |
4379 | loop @b |
4067 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
4380 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
4068 | jz .skip_curinfo |
4381 | jz .skip_curinfo |
4069 | ; ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥ |
4382 | ; ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥ |
4070 | mov ebx, [ebp + panel1_index - panel1_data] |
4383 | mov ebx, [ebp + panel1_index - panel1_data] |
4071 | mov eax, [ebp + panel1_files - panel1_data] |
4384 | mov eax, [ebp + panel1_files - panel1_data] |
4072 | mov ebx, [eax+ebx*4] |
4385 | mov ebx, [eax+ebx*4] |
4073 | mov eax, [ebp + panel1_left - panel1_data] |
4386 | mov eax, [ebp + panel1_left - panel1_data] |
4074 | add eax, [ebp + panel1_width - panel1_data] |
4387 | add eax, [ebp + panel1_width - panel1_data] |
4075 | dec eax |
4388 | dec eax |
4076 | mov edx, [ebp + panel1_top - panel1_data] |
4389 | mov edx, [ebp + panel1_top - panel1_data] |
4077 | add edx, [ebp + panel1_height - panel1_data] |
4390 | add edx, [ebp + panel1_height - panel1_data] |
4078 | dec edx |
4391 | dec edx |
4079 | dec edx |
4392 | dec edx |
4080 | call get_console_ptr |
4393 | call get_console_ptr |
4081 | mov ecx, [ebp + panel1_width - panel1_data] |
4394 | mov ecx, [ebp + panel1_width - panel1_data] |
4082 | dec ecx |
4395 | dec ecx |
4083 | dec ecx |
4396 | dec ecx |
4084 | cmp [ebp + panel1_colmode - panel1_data], 3 |
4397 | cmp [ebp + panel1_colmode - panel1_data], 3 |
4085 | jz .show_curname |
4398 | jz .show_curname |
4086 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
4399 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
4087 | sub edi, 5*2 |
4400 | sub edi, 5*2 |
4088 | sub ecx, 6 |
4401 | sub ecx, 6 |
4089 | mov al, [ebx+24+2] |
4402 | mov al, [ebx+24+2] |
4090 | aam |
4403 | aam |
4091 | or ax, 0x3030 |
4404 | or ax, 0x3030 |
4092 | mov [edi], ah |
4405 | mov [edi], ah |
4093 | mov [edi+2], al |
4406 | mov [edi+2], al |
4094 | mov [edi+4], byte ':' |
4407 | mov [edi+4], byte ':' |
4095 | mov al, [ebx+24+1] |
4408 | mov al, [ebx+24+1] |
4096 | aam |
4409 | aam |
4097 | or ax, 0x3030 |
4410 | or ax, 0x3030 |
4098 | mov [edi+6], ah |
4411 | mov [edi+6], ah |
4099 | mov [edi+8], al |
4412 | mov [edi+8], al |
4100 | mov al, [panel_normal_color] |
4413 | mov al, [panel_normal_color] |
4101 | mov [edi+1], al |
4414 | mov [edi+1], al |
4102 | mov [edi+3], al |
4415 | mov [edi+3], al |
4103 | mov [edi+5], al |
4416 | mov [edi+5], al |
4104 | mov [edi+7], al |
4417 | mov [edi+7], al |
4105 | mov [edi+9], al |
4418 | mov [edi+9], al |
4106 | dec edi |
4419 | dec edi |
4107 | mov [edi], al |
4420 | mov [edi], al |
4108 | dec edi |
4421 | dec edi |
4109 | mov byte [edi], ' ' |
4422 | mov byte [edi], ' ' |
4110 | ; â ¬®¤¨ä¨ª 樨 |
4423 | ; â ¬®¤¨ä¨ª 樨 |
4111 | sub edi, 8*2 |
4424 | sub edi, 8*2 |
4112 | sub ecx, 9 |
4425 | sub ecx, 9 |
4113 | mov al, [ebx+28+0] |
4426 | mov al, [ebx+28+0] |
4114 | aam |
4427 | aam |
4115 | or ax, 0x3030 |
4428 | or ax, 0x3030 |
4116 | mov [edi], ah |
4429 | mov [edi], ah |
4117 | mov [edi+2], al |
4430 | mov [edi+2], al |
4118 | mov [edi+4], byte '.' |
4431 | mov [edi+4], byte '.' |
4119 | mov al, [ebx+28+1] |
4432 | mov al, [ebx+28+1] |
4120 | aam |
4433 | aam |
4121 | or ax, 0x3030 |
4434 | or ax, 0x3030 |
4122 | mov [edi+6], ah |
4435 | mov [edi+6], ah |
4123 | mov [edi+8], al |
4436 | mov [edi+8], al |
4124 | mov [edi+10], byte '.' |
4437 | mov [edi+10], byte '.' |
4125 | mov ax, [ebx+28+2] |
4438 | mov ax, [ebx+28+2] |
4126 | div [_100] |
4439 | div [_100] |
4127 | mov al, ah |
4440 | mov al, ah |
4128 | aam |
4441 | aam |
4129 | or ax, 0x3030 |
4442 | or ax, 0x3030 |
4130 | mov [edi+12], ah |
4443 | mov [edi+12], ah |
4131 | mov [edi+14], al |
4444 | mov [edi+14], al |
4132 | mov al, [panel_normal_color] |
4445 | mov al, [panel_normal_color] |
4133 | mov [edi+1], al |
4446 | mov [edi+1], al |
4134 | mov [edi+3], al |
4447 | mov [edi+3], al |
4135 | mov [edi+5], al |
4448 | mov [edi+5], al |
4136 | mov [edi+7], al |
4449 | mov [edi+7], al |
4137 | mov [edi+9], al |
4450 | mov [edi+9], al |
4138 | mov [edi+11], al |
4451 | mov [edi+11], al |
4139 | mov [edi+13], al |
4452 | mov [edi+13], al |
4140 | mov [edi+15], al |
4453 | mov [edi+15], al |
4141 | dec edi |
4454 | dec edi |
4142 | mov [edi], al |
4455 | mov [edi], al |
4143 | dec edi |
4456 | dec edi |
4144 | mov [edi], byte ' ' |
4457 | mov [edi], byte ' ' |
4145 | ; §¬¥à |
4458 | ; §¬¥à |
4146 | std |
4459 | std |
4147 | mov ah, [panel_normal_color] |
4460 | mov ah, [panel_normal_color] |
4148 | dec edi |
4461 | dec edi |
4149 | dec edi |
4462 | dec edi |
4150 | dec ecx |
4463 | dec ecx |
4151 | test byte [ebx], 0x10 |
4464 | test byte [ebx], 0x10 |
4152 | jz .size_file |
4465 | jz .size_file |
4153 | push ecx |
4466 | push ecx |
4154 | mov esi, aFolder+aFolder.size-1 |
4467 | mov esi, aFolder+aFolder.size-1 |
4155 | mov ecx, aFolder.size |
4468 | mov ecx, aFolder.size |
4156 | cmp word [ebx+40], '..' |
4469 | cmp word [ebx+40], '..' |
4157 | jnz @f |
4470 | jnz @f |
4158 | cmp byte [ebx+42], 0 |
4471 | cmp byte [ebx+42], 0 |
4159 | jnz @f |
4472 | jnz @f |
4160 | mov esi, aUp+aUp.size-1 |
4473 | mov esi, aUp+aUp.size-1 |
4161 | mov cl, aUp.size |
4474 | mov cl, aUp.size |
4162 | @@: |
4475 | @@: |
4163 | sub [esp], ecx |
4476 | sub [esp], ecx |
4164 | @@: |
4477 | @@: |
4165 | lodsb |
4478 | lodsb |
4166 | stosw |
4479 | stosw |
4167 | loop @b |
4480 | loop @b |
4168 | pop ecx |
4481 | pop ecx |
4169 | jmp .size_done |
4482 | jmp .size_done |
4170 | .size_file: |
4483 | .size_file: |
4171 | mov edx, [ebx+36] |
4484 | mov edx, [ebx+36] |
4172 | test edx, edx |
4485 | test edx, edx |
4173 | jz .size_less_4g |
4486 | jz .size_less_4g |
4174 | cmp edx, 10*256 |
4487 | cmp edx, 10*256 |
4175 | jae .size_tera |
4488 | jae .size_tera |
4176 | ; ¢ £¨£ ¡ ©â å |
4489 | ; ¢ £¨£ ¡ ©â å |
4177 | mov al, 'G' |
4490 | mov al, 'G' |
4178 | shl edx, 2 |
4491 | shl edx, 2 |
4179 | jmp .size_letter |
4492 | jmp .size_letter |
4180 | .size_tera: |
4493 | .size_tera: |
4181 | ; ¢ â¥à ¡ ©â å |
4494 | ; ¢ â¥à ¡ ©â å |
4182 | shr edx, 8 |
4495 | shr edx, 8 |
4183 | mov al, 'T' |
4496 | mov al, 'T' |
4184 | jmp .size_letter |
4497 | jmp .size_letter |
4185 | .size_less_4g: |
4498 | .size_less_4g: |
4186 | mov edx, [ebx+32] |
4499 | mov edx, [ebx+32] |
4187 | cmp edx, 10*(1 shl 20) |
4500 | cmp edx, 10*(1 shl 20) |
4188 | jae .size_mega |
4501 | jae .size_mega |
4189 | cmp edx, 1 shl 20 |
4502 | cmp edx, 1 shl 20 |
4190 | jb .size_num |
4503 | jb .size_num |
4191 | shr edx, 10 |
4504 | shr edx, 10 |
4192 | mov al, 'K' |
4505 | mov al, 'K' |
4193 | jmp .size_letter |
4506 | jmp .size_letter |
4194 | .size_mega: |
4507 | .size_mega: |
4195 | mov al, 'M' |
4508 | mov al, 'M' |
4196 | shr edx, 20 |
4509 | shr edx, 20 |
4197 | .size_letter: |
4510 | .size_letter: |
4198 | stosw |
4511 | stosw |
4199 | dec ecx |
4512 | dec ecx |
4200 | mov al, ' ' |
4513 | mov al, ' ' |
4201 | stosw |
4514 | stosw |
4202 | dec ecx |
4515 | dec ecx |
4203 | .size_num: |
4516 | .size_num: |
4204 | xchg eax, edx |
4517 | xchg eax, edx |
4205 | xor edx, edx |
4518 | xor edx, edx |
4206 | div [_10d] |
4519 | div [_10d] |
4207 | xchg eax, edx |
4520 | xchg eax, edx |
4208 | add al, '0' |
4521 | add al, '0' |
4209 | mov ah, [panel_normal_color] |
4522 | mov ah, [panel_normal_color] |
4210 | stosw |
4523 | stosw |
4211 | dec ecx |
4524 | dec ecx |
4212 | test edx, edx |
4525 | test edx, edx |
4213 | jnz .size_num |
4526 | jnz .size_num |
4214 | .size_done: |
4527 | .size_done: |
4215 | cld |
4528 | cld |
4216 | .show_curname: |
4529 | .show_curname: |
4217 | ; • |
4530 | ; • |
4218 | sub edi, ecx |
4531 | sub edi, ecx |
4219 | sub edi, ecx |
4532 | sub edi, ecx |
4220 | lea esi, [ebx+40] |
4533 | lea esi, [ebx+40] |
4221 | @@: |
4534 | @@: |
4222 | lodsb |
4535 | lodsb |
4223 | test al, al |
4536 | test al, al |
4224 | jnz @b |
4537 | jnz @b |
4225 | sub esi, ebx |
4538 | sub esi, ebx |
4226 | sub esi, 41 |
4539 | sub esi, 41 |
4227 | mov ah, [panel_normal_color] |
4540 | mov ah, [panel_normal_color] |
4228 | cmp esi, ecx |
4541 | cmp esi, ecx |
4229 | lea edx, [ebx+40] |
4542 | lea edx, [ebx+40] |
4230 | jbe @f |
4543 | jbe @f |
4231 | mov al, '{' |
4544 | mov al, '{' |
4232 | mov [edi-2], ax |
4545 | mov [edi-2], ax |
4233 | add edx, esi |
4546 | add edx, esi |
4234 | sub edx, ecx |
4547 | sub edx, ecx |
4235 | @@: |
4548 | @@: |
4236 | mov esi, edx |
4549 | mov esi, edx |
4237 | @@: |
4550 | @@: |
4238 | lodsb |
4551 | lodsb |
4239 | test al, al |
4552 | test al, al |
4240 | jz @f |
4553 | jz @f |
4241 | stosw |
4554 | stosw |
4242 | loop @b |
4555 | loop @b |
4243 | @@: |
4556 | @@: |
4244 | mov al, ' ' |
4557 | mov al, ' ' |
4245 | rep stosw |
4558 | rep stosw |
4246 | .skip_curinfo: |
4559 | .skip_curinfo: |
4247 | call draw_image |
4560 | call draw_image |
4248 | ret |
4561 | ret |
4249 | 4562 | ||
4250 | fill_total_info: |
4563 | fill_total_info: |
4251 | mov edi, saved_file_name+511 |
4564 | mov edi, saved_file_name+511 |
4252 | mov byte [edi], ' ' |
4565 | mov byte [edi], ' ' |
4253 | if lang eq ru |
4566 | if lang eq ru |
4254 | mov byte [edi-1], '¥' |
4567 | mov byte [edi-1], '¥' |
4255 | dec edi |
4568 | dec edi |
4256 | cmp eax, 1 |
4569 | cmp eax, 1 |
4257 | jz @f |
4570 | jz @f |
4258 | mov word [edi-1], ' å' |
4571 | mov word [edi-1], ' å' |
4259 | dec edi |
4572 | dec edi |
4260 | @@: |
4573 | @@: |
4261 | mov dword [edi-4], 'ä ©«' |
4574 | mov dword [edi-4], 'ä ©«' |
4262 | mov byte [edi-5], ' ' |
4575 | mov byte [edi-5], ' ' |
4263 | sub edi, 5 |
4576 | sub edi, 5 |
4264 | else |
4577 | else |
4265 | cmp eax, 1 |
4578 | cmp eax, 1 |
4266 | jz @f |
4579 | jz @f |
4267 | dec edi |
4580 | dec edi |
4268 | mov byte [edi], 's' |
4581 | mov byte [edi], 's' |
4269 | @@: |
4582 | @@: |
4270 | mov dword [edi-4], 'file' |
4583 | mov dword [edi-4], 'file' |
4271 | mov byte [edi-5], ' ' |
4584 | mov byte [edi-5], ' ' |
4272 | sub edi, 5 |
4585 | sub edi, 5 |
4273 | end if |
4586 | end if |
4274 | xor edx, edx |
4587 | xor edx, edx |
4275 | push 10 |
4588 | push 10 |
4276 | pop ecx |
4589 | pop ecx |
4277 | @@: |
4590 | @@: |
4278 | div ecx |
4591 | div ecx |
4279 | dec edi |
4592 | dec edi |
4280 | add dl, '0' |
4593 | add dl, '0' |
4281 | mov [edi], dl |
4594 | mov [edi], dl |
4282 | xor edx, edx |
4595 | xor edx, edx |
4283 | test eax, eax |
4596 | test eax, eax |
4284 | jnz @b |
4597 | jnz @b |
4285 | if lang eq ru |
4598 | if lang eq ru |
4286 | mov dword [edi-4], 'â ¢ ' |
4599 | mov dword [edi-4], 'â ¢ ' |
4287 | mov dword [edi-8], ' ¡ ©' |
4600 | mov dword [edi-8], ' ¡ ©' |
4288 | sub edi, 8 |
4601 | sub edi, 8 |
4289 | else |
4602 | else |
4290 | mov dword [edi-4], ' in ' |
4603 | mov dword [edi-4], ' in ' |
4291 | mov dword [edi-8], 'ytes' |
4604 | mov dword [edi-8], 'ytes' |
4292 | mov word [edi-10], ' b' |
4605 | mov word [edi-10], ' b' |
4293 | sub edi, 10 |
4606 | sub edi, 10 |
4294 | end if |
4607 | end if |
4295 | lea esi, [edi-3] |
4608 | lea esi, [edi-3] |
4296 | mov edx, [esp+8] |
4609 | mov edx, [esp+8] |
4297 | mov eax, [esp+4] |
4610 | mov eax, [esp+4] |
4298 | .selsizel: |
4611 | .selsizel: |
4299 | push edx |
4612 | push edx |
4300 | mov ebx, edx |
4613 | mov ebx, edx |
4301 | xor edx, edx |
4614 | xor edx, edx |
4302 | add ebx, ebx |
4615 | add ebx, ebx |
4303 | adc edx, edx |
4616 | adc edx, edx |
4304 | push ebx |
4617 | push ebx |
4305 | push edx |
4618 | push edx |
4306 | add ebx, ebx |
4619 | add ebx, ebx |
4307 | adc edx, edx |
4620 | adc edx, edx |
4308 | add ebx, [esp+4] |
4621 | add ebx, [esp+4] |
4309 | adc edx, [esp] |
4622 | adc edx, [esp] |
4310 | add esp, 8 |
4623 | add esp, 8 |
4311 | add eax, ebx |
4624 | add eax, ebx |
4312 | adc edx, 0 |
4625 | adc edx, 0 |
4313 | div ecx |
4626 | div ecx |
4314 | dec edi |
4627 | dec edi |
4315 | cmp edi, esi |
4628 | cmp edi, esi |
4316 | jae @f |
4629 | jae @f |
4317 | mov byte [edi], ',' |
4630 | mov byte [edi], ',' |
4318 | dec edi |
4631 | dec edi |
4319 | sub esi, 4 |
4632 | sub esi, 4 |
4320 | @@: |
4633 | @@: |
4321 | pop ebx |
4634 | pop ebx |
4322 | add dl, '0' |
4635 | add dl, '0' |
4323 | mov byte [edi], dl |
4636 | mov byte [edi], dl |
4324 | xchg eax, ebx |
4637 | xchg eax, ebx |
4325 | mul [muldiv10] |
4638 | mul [muldiv10] |
4326 | add eax, ebx |
4639 | add eax, ebx |
4327 | adc edx, 0 |
4640 | adc edx, 0 |
4328 | mov ebx, eax |
4641 | mov ebx, eax |
4329 | or ebx, edx |
4642 | or ebx, edx |
4330 | jnz .selsizel |
4643 | jnz .selsizel |
4331 | dec edi |
4644 | dec edi |
4332 | mov byte [edi], ' ' |
4645 | mov byte [edi], ' ' |
4333 | mov ecx, saved_file_name+512 |
4646 | mov ecx, saved_file_name+512 |
4334 | sub ecx, edi |
4647 | sub ecx, edi |
4335 | ret 8 |
4648 | ret 8 |
4336 | 4649 | ||
4337 | get_file_color: |
4650 | get_file_color: |
4338 | mov ah, [esi + 6] |
4651 | mov ah, [esi + 6] |
4339 | cmp ebp, [active_panel] |
4652 | cmp ebp, [active_panel] |
4340 | jnz @f |
4653 | jnz @f |
4341 | cmp ecx, [ebp + panel1_index - panel1_data] |
4654 | cmp ecx, [ebp + panel1_index - panel1_data] |
4342 | jnz @f |
4655 | jnz @f |
4343 | mov ah, [esi + 7] |
4656 | mov ah, [esi + 7] |
4344 | @@: |
4657 | @@: |
4345 | test byte [esi + 303], 1 |
4658 | test byte [esi + 303], 1 |
4346 | jnz @f |
4659 | jnz @f |
4347 | mov ah, [esi + 4] |
4660 | mov ah, [esi + 4] |
4348 | cmp ebp, [active_panel] |
4661 | cmp ebp, [active_panel] |
4349 | jnz @f |
4662 | jnz @f |
4350 | cmp ecx, [ebp + panel1_index - panel1_data] |
4663 | cmp ecx, [ebp + panel1_index - panel1_data] |
4351 | jnz @f |
4664 | jnz @f |
4352 | mov ah, [esi + 5] |
4665 | mov ah, [esi + 5] |
4353 | @@: |
4666 | @@: |
4354 | ret |
4667 | ret |
4355 | 4668 | ||
4356 | draw_name_column: |
4669 | draw_name_column: |
4357 | mov eax, [column_index] |
4670 | mov eax, [column_index] |
4358 | mov [last_column_index], eax |
4671 | mov [last_column_index], eax |
4359 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4672 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4360 | mov ecx, [column_height] |
4673 | mov ecx, [column_height] |
4361 | dec ecx |
4674 | dec ecx |
4362 | .l: |
4675 | .l: |
4363 | cmp [column_index], edx |
4676 | cmp [column_index], edx |
4364 | jae .ret |
4677 | jae .ret |
4365 | push ecx |
4678 | push ecx |
4366 | mov ecx, [column_index] |
4679 | mov ecx, [column_index] |
4367 | mov esi, [ebp + panel1_files - panel1_data] |
4680 | mov esi, [ebp + panel1_files - panel1_data] |
4368 | mov esi, [esi+ecx*4] |
4681 | mov esi, [esi+ecx*4] |
4369 | mov ebx, [esi] |
4682 | mov ebx, [esi] |
4370 | call get_file_color |
4683 | call get_file_color |
4371 | add esi, 40 |
4684 | add esi, 40 |
4372 | mov ecx, [column_width] |
4685 | mov ecx, [column_width] |
4373 | push edi |
4686 | push edi |
4374 | @@: |
4687 | @@: |
4375 | lodsb |
4688 | lodsb |
4376 | test al, al |
4689 | test al, al |
4377 | jz @f |
4690 | jz @f |
4378 | stosw |
4691 | stosw |
4379 | loop @b |
4692 | loop @b |
4380 | lodsb |
4693 | lodsb |
4381 | test al, al |
4694 | test al, al |
4382 | jz @f |
4695 | jz @f |
4383 | mov byte [edi], '}' |
4696 | mov byte [edi], '}' |
4384 | jmp .continue |
4697 | jmp .continue |
4385 | @@: |
4698 | @@: |
4386 | test bl, 10h |
4699 | test bl, 10h |
4387 | jnz .noalignext |
4700 | jnz .noalignext |
4388 | mov ebx, [ebp + panel1_colmode - panel1_data] |
4701 | mov ebx, [ebp + panel1_colmode - panel1_data] |
4389 | ; sizeof(PanelMode) = 40 |
4702 | ; sizeof(PanelMode) = 40 |
4390 | lea ebx, [ebx+ebx*4] |
4703 | lea ebx, [ebx+ebx*4] |
4391 | cmp [colmodes+ebx*8+PanelMode.bAlignExtensions], 0 |
4704 | cmp [colmodes+ebx*8+PanelMode.bAlignExtensions], 0 |
4392 | jz .noalignext |
4705 | jz .noalignext |
4393 | push ecx |
4706 | push ecx |
4394 | sub ecx, [column_width] |
4707 | sub ecx, [column_width] |
4395 | neg ecx |
4708 | neg ecx |
4396 | jz .noalignext2 |
4709 | jz .noalignext2 |
4397 | dec esi |
4710 | dec esi |
4398 | @@: |
4711 | @@: |
4399 | dec esi |
4712 | dec esi |
4400 | cmp byte [esi], '.' |
4713 | cmp byte [esi], '.' |
4401 | loopnz @b |
4714 | loopnz @b |
4402 | jnz .noalignext2 |
4715 | jnz .noalignext2 |
4403 | inc esi |
4716 | inc esi |
4404 | sub ecx, [column_width] |
4717 | sub ecx, [column_width] |
4405 | neg ecx |
4718 | neg ecx |
4406 | sub ecx, [esp] |
4719 | sub ecx, [esp] |
4407 | sub edi, ecx |
4720 | sub edi, ecx |
4408 | sub edi, ecx |
4721 | sub edi, ecx |
4409 | dec ecx |
4722 | dec ecx |
4410 | mov ebx, [esp+4] |
4723 | mov ebx, [esp+4] |
4411 | cmp ecx, 3 |
4724 | cmp ecx, 3 |
4412 | ja @f |
4725 | ja @f |
4413 | mov cl, 3 |
4726 | mov cl, 3 |
4414 | @@: |
4727 | @@: |
4415 | sub ecx, [column_width] |
4728 | sub ecx, [column_width] |
4416 | sub ebx, edi |
4729 | sub ebx, edi |
4417 | sar ebx, 1 |
4730 | sar ebx, 1 |
4418 | sub ebx, ecx |
4731 | sub ebx, ecx |
4419 | pop ecx |
4732 | pop ecx |
4420 | inc ecx |
4733 | inc ecx |
4421 | push 0 |
4734 | push 0 |
4422 | cmp ecx, ebx |
4735 | cmp ecx, ebx |
4423 | jbe @f |
4736 | jbe @f |
4424 | sub ecx, ebx |
4737 | sub ecx, ebx |
4425 | mov [esp], ecx |
4738 | mov [esp], ecx |
4426 | mov ecx, ebx |
4739 | mov ecx, ebx |
4427 | @@: |
4740 | @@: |
4428 | mov al, ' ' |
4741 | mov al, ' ' |
4429 | rep stosw |
4742 | rep stosw |
4430 | @@: |
4743 | @@: |
4431 | lodsb |
4744 | lodsb |
4432 | test al, al |
4745 | test al, al |
4433 | jz .noalignext2 |
4746 | jz .noalignext2 |
4434 | stosw |
4747 | stosw |
4435 | jmp @b |
4748 | jmp @b |
4436 | .noalignext2: |
4749 | .noalignext2: |
4437 | pop ecx |
4750 | pop ecx |
4438 | .noalignext: |
4751 | .noalignext: |
4439 | mov al, ' ' |
4752 | mov al, ' ' |
4440 | rep stosw |
4753 | rep stosw |
4441 | .continue: |
4754 | .continue: |
4442 | pop edi |
4755 | pop edi |
4443 | add edi, [cur_width] |
4756 | add edi, [cur_width] |
4444 | add edi, [cur_width] |
4757 | add edi, [cur_width] |
4445 | inc [column_index] |
4758 | inc [column_index] |
4446 | pop ecx |
4759 | pop ecx |
4447 | dec ecx |
4760 | dec ecx |
4448 | jnz .l |
4761 | jnz .l |
4449 | .ret: |
4762 | .ret: |
4450 | mov eax, [ebp + panel1_colsz - panel1_data] |
4763 | mov eax, [ebp + panel1_colsz - panel1_data] |
4451 | add [ebp + panel1_colst - panel1_data], eax |
4764 | add [ebp + panel1_colst - panel1_data], eax |
4452 | cmp ebp, panel1_data |
4765 | cmp ebp, panel1_data |
4453 | jnz .ret2 |
4766 | jnz .ret2 |
4454 | ; ¨á«® íªà ®¢ |
4767 | ; ¨á«® íªà ®¢ |
- | 4768 | ; calculate number of viewer and editor screens |
|
- | 4769 | xor ebx, ebx |
|
- | 4770 | xor edx, edx |
|
4455 | mov eax, [num_screens] |
4771 | mov ecx, [num_screens] |
- | 4772 | mov esi, [screens] |
|
- | 4773 | .3: |
|
- | 4774 | lodsd |
|
- | 4775 | cmp eax, viewer_vtable |
|
- | 4776 | jnz @f |
|
- | 4777 | inc ebx |
|
- | 4778 | @@: |
|
- | 4779 | cmp eax, editor_vtable |
|
- | 4780 | jnz @f |
|
4456 | dec eax |
4781 | inc edx |
- | 4782 | @@: |
|
- | 4783 | lodsd |
|
- | 4784 | loop .3 |
|
- | 4785 | mov eax, ebx |
|
- | 4786 | mov esi, edx |
|
- | 4787 | or eax, edx |
|
4457 | jz .ret2 |
4788 | jz .ret2 |
4458 | push eax |
- | |
4459 | xor eax, eax |
4789 | xor eax, eax |
4460 | xor edx, edx |
4790 | xor edx, edx |
4461 | call get_console_ptr |
4791 | call get_console_ptr |
4462 | mov ah, [panel_nscreens_color] |
- | |
4463 | mov al, '[' |
4792 | mov al, '[' |
- | 4793 | stosb |
|
- | 4794 | mov al, [panel_nscreens_color] |
|
4464 | stosw |
4795 | stosb |
4465 | pop eax |
4796 | xchg eax, ebx |
- | 4797 | .5: |
|
4466 | push -'0' |
4798 | push -'0' |
4467 | @@: |
4799 | @@: |
4468 | xor edx, edx |
4800 | xor edx, edx |
4469 | div [_10d] |
4801 | div [_10d] |
4470 | push edx |
4802 | push edx |
4471 | test eax, eax |
4803 | test eax, eax |
4472 | jnz @b |
4804 | jnz @b |
4473 | @@: |
4805 | @@: |
4474 | pop eax |
4806 | pop eax |
4475 | add eax, '0' |
4807 | add eax, '0' |
4476 | jz @f |
4808 | jz @f |
- | 4809 | stosb |
|
4477 | mov ah, [panel_nscreens_color] |
4810 | mov al, bl |
4478 | stosw |
4811 | stosb |
4479 | jmp @b |
4812 | jmp @b |
4480 | @@: |
4813 | @@: |
- | 4814 | test esi, esi |
|
- | 4815 | jz .4 |
|
- | 4816 | mov al, '+' |
|
- | 4817 | stosb |
|
- | 4818 | mov al, bl |
|
- | 4819 | stosb |
|
- | 4820 | xor eax, eax |
|
- | 4821 | xchg eax, esi |
|
- | 4822 | jmp .5 |
|
- | 4823 | .4: |
|
4481 | mov al, ']' |
4824 | mov al, ']' |
4482 | mov ah, [panel_nscreens_color] |
4825 | mov ah, [panel_nscreens_color] |
4483 | stosw |
4826 | stosw |
4484 | .ret2: |
4827 | .ret2: |
4485 | draw_empty_column: |
4828 | draw_empty_column: |
4486 | ret |
4829 | ret |
4487 | 4830 | ||
4488 | draw_size_column: |
4831 | draw_size_column: |
4489 | add edi, [column_width] |
4832 | add edi, [column_width] |
4490 | add edi, [column_width] |
4833 | add edi, [column_width] |
4491 | dec edi |
4834 | dec edi |
4492 | dec edi |
4835 | dec edi |
4493 | std |
4836 | std |
4494 | mov ecx, [column_height] |
4837 | mov ecx, [column_height] |
4495 | dec ecx |
4838 | dec ecx |
4496 | push [last_column_index] |
4839 | push [last_column_index] |
4497 | .l: |
4840 | .l: |
4498 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4841 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4499 | cmp [last_column_index], edx |
4842 | cmp [last_column_index], edx |
4500 | jae .ret |
4843 | jae .ret |
4501 | push ecx |
4844 | push ecx |
4502 | push edi |
4845 | push edi |
4503 | mov ecx, [last_column_index] |
4846 | mov ecx, [last_column_index] |
4504 | mov esi, [ebp + panel1_files - panel1_data] |
4847 | mov esi, [ebp + panel1_files - panel1_data] |
4505 | mov esi, [esi+ecx*4] |
4848 | mov esi, [esi+ecx*4] |
4506 | call get_file_color |
4849 | call get_file_color |
4507 | mov ecx, [column_width] |
4850 | mov ecx, [column_width] |
4508 | @@: |
4851 | @@: |
4509 | mov ebx, eax |
4852 | mov ebx, eax |
4510 | cmp word [esi+40], '..' |
4853 | cmp word [esi+40], '..' |
4511 | jnz .nodotdot |
4854 | jnz .nodotdot |
4512 | cmp byte [esi+42], 0 |
4855 | cmp byte [esi+42], 0 |
4513 | jnz .nodotdot |
4856 | jnz .nodotdot |
4514 | if lang eq ru |
4857 | if lang eq ru |
4515 | mov al, 'å' |
4858 | mov al, 'å' |
4516 | stosw |
4859 | stosw |
4517 | mov al, 'à' |
4860 | mov al, 'à' |
4518 | stosw |
4861 | stosw |
4519 | mov al, '¥' |
4862 | mov al, '¥' |
4520 | stosw |
4863 | stosw |
4521 | mov al, '¢' |
4864 | mov al, '¢' |
4522 | stosw |
4865 | stosw |
4523 | mov al, '' |
4866 | mov al, '' |
4524 | stosw |
4867 | stosw |
4525 | sub ecx, 5 |
4868 | sub ecx, 5 |
4526 | else |
4869 | else |
4527 | mov al, ' ' |
4870 | mov al, ' ' |
4528 | stosw |
4871 | stosw |
4529 | stosw |
4872 | stosw |
4530 | mov al, 'p' |
4873 | mov al, 'p' |
4531 | stosw |
4874 | stosw |
4532 | mov al, 'U' |
4875 | mov al, 'U' |
4533 | stosw |
4876 | stosw |
4534 | sub ecx, 4 |
4877 | sub ecx, 4 |
4535 | end if |
4878 | end if |
4536 | jmp .size_written |
4879 | jmp .size_written |
4537 | .nodotdot: |
4880 | .nodotdot: |
4538 | test byte [esi], 10h |
4881 | test byte [esi], 10h |
4539 | jz .nofolder |
4882 | jz .nofolder |
4540 | if lang eq ru |
4883 | if lang eq ru |
4541 | mov al, ' ' |
4884 | mov al, ' ' |
4542 | stosw |
4885 | stosw |
4543 | mov al, 'ª' |
4886 | mov al, 'ª' |
4544 | stosw |
4887 | stosw |
4545 | mov al, '¯' |
4888 | mov al, '¯' |
4546 | stosw |
4889 | stosw |
4547 | mov al, ' ' |
4890 | mov al, ' ' |
4548 | stosw |
4891 | stosw |
4549 | mov al, '' |
4892 | mov al, '' |
4550 | stosw |
4893 | stosw |
4551 | sub ecx, 5 |
4894 | sub ecx, 5 |
4552 | else |
4895 | else |
4553 | mov al, 'r' |
4896 | mov al, 'r' |
4554 | stosw |
4897 | stosw |
4555 | mov al, 'e' |
4898 | mov al, 'e' |
4556 | stosw |
4899 | stosw |
4557 | mov al, 'd' |
4900 | mov al, 'd' |
4558 | stosw |
4901 | stosw |
4559 | mov al, 'l' |
4902 | mov al, 'l' |
4560 | stosw |
4903 | stosw |
4561 | mov al, 'o' |
4904 | mov al, 'o' |
4562 | stosw |
4905 | stosw |
4563 | mov al, 'F' |
4906 | mov al, 'F' |
4564 | stosw |
4907 | stosw |
4565 | sub ecx, 6 |
4908 | sub ecx, 6 |
4566 | end if |
4909 | end if |
4567 | jmp .size_written |
4910 | jmp .size_written |
4568 | .nofolder: |
4911 | .nofolder: |
4569 | mov eax, [esi+32] |
4912 | mov eax, [esi+32] |
4570 | mov edx, [esi+36] |
4913 | mov edx, [esi+36] |
4571 | test edx, edx |
4914 | test edx, edx |
4572 | jz .less_4G |
4915 | jz .less_4G |
4573 | cmp edx, 10000/4*1024 |
4916 | cmp edx, 10000/4*1024 |
4574 | jb .giga |
4917 | jb .giga |
4575 | mov al, 'T' |
4918 | mov al, 'T' |
4576 | shr edx, 10 |
4919 | shr edx, 10 |
4577 | jmp .write_letter |
4920 | jmp .write_letter |
4578 | .giga: |
4921 | .giga: |
4579 | mov al, 'G' |
4922 | mov al, 'G' |
4580 | shl edx, 2 |
4923 | shl edx, 2 |
4581 | jmp .write_letter |
4924 | jmp .write_letter |
4582 | .less_4G: |
4925 | .less_4G: |
4583 | mov edx, eax |
4926 | mov edx, eax |
4584 | cmp eax, 1000000 |
4927 | cmp eax, 1000000 |
4585 | jb .byte |
4928 | jb .byte |
4586 | cmp eax, 10000*1024 |
4929 | cmp eax, 10000*1024 |
4587 | jb .kilo |
4930 | jb .kilo |
4588 | mov al, 'M' |
4931 | mov al, 'M' |
4589 | shr edx, 20 |
4932 | shr edx, 20 |
4590 | jmp .write_letter |
4933 | jmp .write_letter |
4591 | .kilo: |
4934 | .kilo: |
4592 | mov al, 'K' |
4935 | mov al, 'K' |
4593 | shr edx, 10 |
4936 | shr edx, 10 |
4594 | .write_letter: |
4937 | .write_letter: |
4595 | mov ah, bh |
4938 | mov ah, bh |
4596 | stosw |
4939 | stosw |
4597 | mov al, ' ' |
4940 | mov al, ' ' |
4598 | stosw |
4941 | stosw |
4599 | dec ecx |
4942 | dec ecx |
4600 | dec ecx |
4943 | dec ecx |
4601 | .byte: |
4944 | .byte: |
4602 | xchg eax, edx |
4945 | xchg eax, edx |
4603 | xor edx, edx |
4946 | xor edx, edx |
4604 | div [_10d] |
4947 | div [_10d] |
4605 | xchg eax, edx |
4948 | xchg eax, edx |
4606 | add al, '0' |
4949 | add al, '0' |
4607 | mov ah, bh |
4950 | mov ah, bh |
4608 | stosw |
4951 | stosw |
4609 | dec ecx |
4952 | dec ecx |
4610 | test edx, edx |
4953 | test edx, edx |
4611 | jnz .byte |
4954 | jnz .byte |
4612 | .size_written: |
4955 | .size_written: |
4613 | mov eax, ebx |
4956 | mov eax, ebx |
4614 | test ecx, ecx |
4957 | test ecx, ecx |
4615 | jle @f |
4958 | jle @f |
4616 | mov al, ' ' |
4959 | mov al, ' ' |
4617 | rep stosw |
4960 | rep stosw |
4618 | @@: |
4961 | @@: |
4619 | mov byte [edi+1], ah |
4962 | mov byte [edi+1], ah |
4620 | pop edi |
4963 | pop edi |
4621 | add edi, [cur_width] |
4964 | add edi, [cur_width] |
4622 | add edi, [cur_width] |
4965 | add edi, [cur_width] |
4623 | inc [last_column_index] |
4966 | inc [last_column_index] |
4624 | pop ecx |
4967 | pop ecx |
4625 | dec ecx |
4968 | dec ecx |
4626 | jnz .l |
4969 | jnz .l |
4627 | .ret: |
4970 | .ret: |
4628 | pop [last_column_index] |
4971 | pop [last_column_index] |
4629 | cld |
4972 | cld |
4630 | ret |
4973 | ret |
4631 | 4974 | ||
4632 | draw_date_column: |
4975 | draw_date_column: |
4633 | mov ecx, [column_height] |
4976 | mov ecx, [column_height] |
4634 | dec ecx |
4977 | dec ecx |
4635 | push [last_column_index] |
4978 | push [last_column_index] |
4636 | .l: |
4979 | .l: |
4637 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4980 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4638 | cmp [last_column_index], edx |
4981 | cmp [last_column_index], edx |
4639 | jae .ret |
4982 | jae .ret |
4640 | push ecx |
4983 | push ecx |
4641 | push edi |
4984 | push edi |
4642 | mov ecx, [last_column_index] |
4985 | mov ecx, [last_column_index] |
4643 | mov esi, [ebp + panel1_files - panel1_data] |
4986 | mov esi, [ebp + panel1_files - panel1_data] |
4644 | mov esi, [esi+ecx*4] |
4987 | mov esi, [esi+ecx*4] |
4645 | call get_file_color |
4988 | call get_file_color |
4646 | mov bh, ah |
4989 | mov bh, ah |
4647 | mov byte [edi-1], bh |
4990 | mov byte [edi-1], bh |
4648 | mov al, [esi+28] |
4991 | mov al, [esi+28] |
4649 | aam |
4992 | aam |
4650 | add eax, '00' |
4993 | add eax, '00' |
4651 | push eax |
4994 | push eax |
4652 | mov al, ah |
4995 | mov al, ah |
4653 | mov ah, bh |
4996 | mov ah, bh |
4654 | stosw |
4997 | stosw |
4655 | pop eax |
4998 | pop eax |
4656 | mov ah, bh |
4999 | mov ah, bh |
4657 | stosw |
5000 | stosw |
4658 | mov al, '.' |
5001 | mov al, '.' |
4659 | stosw |
5002 | stosw |
4660 | mov al, [esi+29] |
5003 | mov al, [esi+29] |
4661 | aam |
5004 | aam |
4662 | add eax, '00' |
5005 | add eax, '00' |
4663 | push eax |
5006 | push eax |
4664 | mov al, ah |
5007 | mov al, ah |
4665 | mov ah, bh |
5008 | mov ah, bh |
4666 | stosw |
5009 | stosw |
4667 | pop eax |
5010 | pop eax |
4668 | mov ah, bh |
5011 | mov ah, bh |
4669 | stosw |
5012 | stosw |
4670 | mov al, '.' |
5013 | mov al, '.' |
4671 | stosw |
5014 | stosw |
4672 | movzx eax, word [esi+30] |
5015 | movzx eax, word [esi+30] |
4673 | xor edx, edx |
5016 | xor edx, edx |
4674 | div [_10d] |
5017 | div [_10d] |
4675 | xchg eax, edx |
5018 | xchg eax, edx |
4676 | add al, '0' |
5019 | add al, '0' |
4677 | mov ah, bh |
5020 | mov ah, bh |
4678 | mov [edi+2], ax |
5021 | mov [edi+2], ax |
4679 | xchg eax, edx |
5022 | xchg eax, edx |
4680 | xor edx, edx |
5023 | xor edx, edx |
4681 | div [_10d] |
5024 | div [_10d] |
4682 | xchg eax, edx |
5025 | xchg eax, edx |
4683 | add al, '0' |
5026 | add al, '0' |
4684 | mov ah, bh |
5027 | mov ah, bh |
4685 | stosw |
5028 | stosw |
4686 | pop edi |
5029 | pop edi |
4687 | add edi, [cur_width] |
5030 | add edi, [cur_width] |
4688 | add edi, [cur_width] |
5031 | add edi, [cur_width] |
4689 | inc [last_column_index] |
5032 | inc [last_column_index] |
4690 | pop ecx |
5033 | pop ecx |
4691 | dec ecx |
5034 | dec ecx |
4692 | jnz .l |
5035 | jnz .l |
4693 | .ret: |
5036 | .ret: |
4694 | pop [last_column_index] |
5037 | pop [last_column_index] |
4695 | cld |
5038 | cld |
4696 | ret |
5039 | ret |
4697 | 5040 | ||
4698 | draw_time_column: |
5041 | draw_time_column: |
4699 | mov ecx, [column_height] |
5042 | mov ecx, [column_height] |
4700 | dec ecx |
5043 | dec ecx |
4701 | push [last_column_index] |
5044 | push [last_column_index] |
4702 | .l: |
5045 | .l: |
4703 | mov edx, [ebp + panel1_numfiles - panel1_data] |
5046 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4704 | cmp [last_column_index], edx |
5047 | cmp [last_column_index], edx |
4705 | jae .ret |
5048 | jae .ret |
4706 | push ecx |
5049 | push ecx |
4707 | push edi |
5050 | push edi |
4708 | mov ecx, [last_column_index] |
5051 | mov ecx, [last_column_index] |
4709 | mov esi, [ebp + panel1_files - panel1_data] |
5052 | mov esi, [ebp + panel1_files - panel1_data] |
4710 | mov esi, [esi+ecx*4] |
5053 | mov esi, [esi+ecx*4] |
4711 | call get_file_color |
5054 | call get_file_color |
4712 | mov bh, ah |
5055 | mov bh, ah |
4713 | mov byte [edi-1], bh |
5056 | mov byte [edi-1], bh |
4714 | mov al, [esi+26] |
5057 | mov al, [esi+26] |
4715 | aam |
5058 | aam |
4716 | add eax, '00' |
5059 | add eax, '00' |
4717 | push eax |
5060 | push eax |
4718 | mov al, ah |
5061 | mov al, ah |
4719 | mov ah, bh |
5062 | mov ah, bh |
4720 | stosw |
5063 | stosw |
4721 | pop eax |
5064 | pop eax |
4722 | mov ah, bh |
5065 | mov ah, bh |
4723 | stosw |
5066 | stosw |
4724 | mov al, ':' |
5067 | mov al, ':' |
4725 | stosw |
5068 | stosw |
4726 | mov al, [esi+25] |
5069 | mov al, [esi+25] |
4727 | aam |
5070 | aam |
4728 | add eax, '00' |
5071 | add eax, '00' |
4729 | push eax |
5072 | push eax |
4730 | mov al, ah |
5073 | mov al, ah |
4731 | mov ah, bh |
5074 | mov ah, bh |
4732 | stosw |
5075 | stosw |
4733 | pop eax |
5076 | pop eax |
4734 | mov ah, bh |
5077 | mov ah, bh |
4735 | stosw |
5078 | stosw |
4736 | pop edi |
5079 | pop edi |
4737 | add edi, [cur_width] |
5080 | add edi, [cur_width] |
4738 | add edi, [cur_width] |
5081 | add edi, [cur_width] |
4739 | inc [last_column_index] |
5082 | inc [last_column_index] |
4740 | pop ecx |
5083 | pop ecx |
4741 | dec ecx |
5084 | dec ecx |
4742 | jnz .l |
5085 | jnz .l |
4743 | .ret: |
5086 | .ret: |
4744 | pop [last_column_index] |
5087 | pop [last_column_index] |
4745 | cld |
5088 | cld |
4746 | ret |
5089 | ret |
4747 | 5090 | ||
4748 | ;insert_last_dot: |
5091 | ;insert_last_dot: |
4749 | ; push eax esi |
5092 | ; push eax esi |
4750 | ; mov ah, 0 |
5093 | ; mov ah, 0 |
4751 | ;.loop: |
5094 | ;.loop: |
4752 | ; lodsb |
5095 | ; lodsb |
4753 | ; test al, al |
5096 | ; test al, al |
4754 | ; jz .done |
5097 | ; jz .done |
4755 | ; cmp al, '.' |
5098 | ; cmp al, '.' |
4756 | ; jnz .loop |
5099 | ; jnz .loop |
4757 | ; mov ah, 1 |
5100 | ; mov ah, 1 |
4758 | ; jmp .loop |
5101 | ; jmp .loop |
4759 | ;.done: |
5102 | ;.done: |
4760 | ; test ah, ah |
5103 | ; test ah, ah |
4761 | ; jnz @f |
5104 | ; jnz @f |
4762 | ; mov byte [esi-1], '.' |
5105 | ; mov byte [esi-1], '.' |
4763 | ; mov byte [esi], 0 |
5106 | ; mov byte [esi], 0 |
4764 | ;@@: |
5107 | ;@@: |
4765 | ; pop esi eax |
5108 | ; pop esi eax |
4766 | ; ret |
5109 | ; ret |
4767 | 5110 | ||
4768 | ;delete_last_dot: |
5111 | ;delete_last_dot: |
4769 | ; push esi |
5112 | ; push esi |
4770 | ;@@: |
5113 | ;@@: |
4771 | ; cmp byte [esi], 0 |
5114 | ; cmp byte [esi], 0 |
4772 | ; jz @f |
5115 | ; jz @f |
4773 | ; inc esi |
5116 | ; inc esi |
4774 | ; jmp @b |
5117 | ; jmp @b |
4775 | ;@@: |
5118 | ;@@: |
4776 | ; cmp byte [esi-1], '.' |
5119 | ; cmp byte [esi-1], '.' |
4777 | ; jnz @f |
5120 | ; jnz @f |
4778 | ; mov byte [esi-1], 0 |
5121 | ; mov byte [esi-1], 0 |
4779 | ;@@: pop esi |
5122 | ;@@: pop esi |
4780 | ; ret |
5123 | ; ret |
4781 | 5124 | ||
4782 | read_folder: |
5125 | read_folder: |
4783 | mov eax, [ebp + panel1_nfa - panel1_data] |
5126 | mov eax, [ebp + panel1_nfa - panel1_data] |
4784 | mov [dirinfo.size], eax |
5127 | mov [dirinfo.size], eax |
4785 | shl eax, 2 |
5128 | shl eax, 2 |
4786 | add eax, [ebp + panel1_files - panel1_data] |
5129 | add eax, [ebp + panel1_files - panel1_data] |
4787 | mov [dirinfo.dirdata], eax |
5130 | mov [dirinfo.dirdata], eax |
4788 | lea eax, [ebp + panel1_dir - panel1_data] |
5131 | lea eax, [ebp + panel1_dir - panel1_data] |
4789 | mov [dirinfo.name], eax |
5132 | mov [dirinfo.name], eax |
4790 | xor eax, eax |
5133 | xor eax, eax |
4791 | mov [ebp + panel1_total_num - panel1_data], eax |
5134 | mov [ebp + panel1_total_num - panel1_data], eax |
4792 | mov dword [ebp + panel1_total_size - panel1_data], eax |
5135 | mov dword [ebp + panel1_total_size - panel1_data], eax |
4793 | mov dword [ebp + panel1_total_size+4 - panel1_data], eax |
5136 | mov dword [ebp + panel1_total_size+4 - panel1_data], eax |
4794 | mov [ebp + panel1_selected_num - panel1_data], eax |
5137 | mov [ebp + panel1_selected_num - panel1_data], eax |
4795 | mov dword [ebp + panel1_selected_size - panel1_data], eax |
5138 | mov dword [ebp + panel1_selected_size - panel1_data], eax |
4796 | mov dword [ebp + panel1_selected_size+4 - panel1_data], eax |
5139 | mov dword [ebp + panel1_selected_size+4 - panel1_data], eax |
4797 | .retry: |
5140 | .retry: |
4798 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
5141 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
4799 | test eax, eax |
5142 | test eax, eax |
4800 | jz .native |
5143 | jz .native |
4801 | mov ecx, [dirinfo.size] |
5144 | mov ecx, [dirinfo.size] |
4802 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
5145 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
4803 | jz @f |
5146 | jz @f |
4804 | dec ecx ; reserve one entry for '..' |
5147 | dec ecx ; reserve one entry for '..' |
4805 | @@: |
5148 | @@: |
4806 | push ebp |
5149 | push ebp |
4807 | push [dirinfo.dirdata] |
5150 | push [dirinfo.dirdata] |
4808 | push ecx |
5151 | push ecx |
4809 | push 0 |
5152 | push 0 |
4810 | push [ebp + panel1_hFile - panel1_data] |
5153 | push [ebp + panel1_hFile - panel1_data] |
4811 | call [eax + PluginInfo.ReadFolder] |
5154 | call [eax + PluginInfo.ReadFolder] |
4812 | pop ebp |
5155 | pop ebp |
4813 | mov ebx, [dirinfo.dirdata] |
5156 | mov ebx, [dirinfo.dirdata] |
4814 | mov ebx, [ebx+4] |
5157 | mov ebx, [ebx+4] |
4815 | jmp .read |
5158 | jmp .read |
4816 | .native: |
5159 | .native: |
4817 | push 70 |
5160 | push 70 |
4818 | pop eax |
5161 | pop eax |
4819 | mov ebx, dirinfo |
5162 | mov ebx, dirinfo |
4820 | int 40h |
5163 | int 40h |
4821 | .read: |
5164 | .read: |
4822 | test eax, eax |
5165 | test eax, eax |
4823 | jz .ok |
5166 | jz .ok |
4824 | cmp eax, 6 |
5167 | cmp eax, 6 |
4825 | jz .ok |
5168 | jz .ok |
4826 | ; Failed to read folder, notify user |
5169 | ; Failed to read folder, notify user |
4827 | cmp [bSilentFolderMode], 0 |
5170 | cmp [bSilentFolderMode], 0 |
4828 | jnz .dont_notify |
5171 | jnz .dont_notify |
4829 | push dword aContinue |
5172 | push dword aContinue |
4830 | push dword aRetry |
5173 | push dword aRetry |
4831 | mov edx, esp |
5174 | mov edx, esp |
4832 | call get_error_msg |
5175 | call get_error_msg |
4833 | push [dirinfo.name] |
5176 | push [dirinfo.name] |
4834 | push dword aCannotReadFolder |
5177 | push dword aCannotReadFolder |
4835 | push eax |
5178 | push eax |
4836 | mov eax, esp |
5179 | mov eax, esp |
4837 | push edx |
5180 | push edx |
4838 | push 2 |
5181 | push 2 |
4839 | push eax |
5182 | push eax |
4840 | push 3 |
5183 | push 3 |
4841 | call SayErr |
5184 | call SayErr |
4842 | add esp, 5*4 |
5185 | add esp, 5*4 |
4843 | test eax, eax |
5186 | test eax, eax |
4844 | jz .retry |
5187 | jz .retry |
4845 | .dont_notify: |
5188 | .dont_notify: |
4846 | ; If not on plugin panel, try to return to previous directory |
5189 | ; If not on plugin panel, try to return to previous directory |
4847 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
5190 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
4848 | jnz @f |
5191 | jnz @f |
4849 | mov esi, prev_dir |
5192 | mov esi, prev_dir |
4850 | cmp byte [esi], 0 |
5193 | cmp byte [esi], 0 |
4851 | jz @f |
5194 | jz @f |
4852 | lea edi, [ebp + panel1_dir - panel1_data] |
5195 | lea edi, [ebp + panel1_dir - panel1_data] |
4853 | mov ecx, 1024/4 |
5196 | mov ecx, 1024/4 |
4854 | rep movsd |
5197 | rep movsd |
4855 | mov byte [prev_dir], 0 |
5198 | mov byte [prev_dir], 0 |
4856 | ret |
5199 | ret |
4857 | @@: |
5200 | @@: |
4858 | mov [bSilentFolderMode], 1 ; enter silent mode |
5201 | mov [bSilentFolderMode], 1 ; enter silent mode |
4859 | ; Try to read parent folder |
5202 | ; Try to read parent folder |
4860 | mov esi, [dirinfo.name] |
5203 | mov esi, [dirinfo.name] |
4861 | xor edx, edx |
5204 | xor edx, edx |
4862 | .up1: |
5205 | .up1: |
4863 | lodsb |
5206 | lodsb |
4864 | test al, al |
5207 | test al, al |
4865 | jz .up1done |
5208 | jz .up1done |
4866 | cmp al, '/' |
5209 | cmp al, '/' |
4867 | jnz .up1 |
5210 | jnz .up1 |
4868 | inc edx |
5211 | inc edx |
4869 | lea edi, [esi-1] |
5212 | lea edi, [esi-1] |
4870 | jmp .up1 |
5213 | jmp .up1 |
4871 | .up1done: |
5214 | .up1done: |
4872 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
5215 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
4873 | jz .4 |
5216 | jz .4 |
4874 | cmp edx, 1 |
5217 | cmp edx, 1 |
4875 | ja .up |
5218 | ja .up |
4876 | ; ç⥨¥ á ¯ ¥«¨ ¯« £¨ ®¡«®¬ «®áì ¯® ¯®«®© |
5219 | ; ç⥨¥ á ¯ ¥«¨ ¯« £¨ ®¡«®¬ «®áì ¯® ¯®«®© |
4877 | ; ¯à¨ í⮬ ¬ë 㦥 ¢ ª®à¥ |
5220 | ; ¯à¨ í⮬ ¬ë 㦥 ¢ ª®à¥ |
4878 | ; ¤¥« ¥¬ ¢¨¤, çâ® äãªæ¨ï çâ¥¨ï ¢¥àã« 0 í«¥¬¥â®¢ |
5221 | ; ¤¥« ¥¬ ¢¨¤, çâ® äãªæ¨ï çâ¥¨ï ¢¥àã« 0 í«¥¬¥â®¢ |
4879 | ; (¥á«¨ 㦥 ¢å®¤ "..", ® ¡ã¤¥â ¤®¡ ¢«¥ ¢â®¬ â¨ç¥áª¨) |
5222 | ; (¥á«¨ 㦥 ¢å®¤ "..", ® ¡ã¤¥â ¤®¡ ¢«¥ ¢â®¬ â¨ç¥áª¨) |
4880 | xor ebx, ebx ; 0 items read |
5223 | xor ebx, ebx ; 0 items read |
4881 | mov eax, [dirinfo.dirdata] |
5224 | mov eax, [dirinfo.dirdata] |
4882 | mov [eax+8], ebx ; 0 items total |
5225 | mov [eax+8], ebx ; 0 items total |
4883 | jmp .ok |
5226 | jmp .ok |
4884 | .4: |
5227 | .4: |
4885 | cmp edx, 2 |
5228 | cmp edx, 2 |
4886 | jbe .noup |
5229 | jbe .noup |
4887 | .up: |
5230 | .up: |
4888 | stosb |
5231 | stosb |
4889 | jmp read_folder |
5232 | jmp read_folder |
4890 | .noup: |
5233 | .noup: |
4891 | ; There is no parent folder, and we are not on plugin panel |
5234 | ; There is no parent folder, and we are not on plugin panel |
4892 | ; Try to read ramdisk |
5235 | ; Try to read ramdisk |
4893 | mov esi, [dirinfo.name] |
5236 | mov esi, [dirinfo.name] |
4894 | mov edi, esi |
5237 | mov edi, esi |
4895 | lodsd |
5238 | lodsd |
4896 | or eax, 0x00202000 |
5239 | or eax, 0x00202000 |
4897 | cmp eax, '/rd/' |
5240 | cmp eax, '/rd/' |
4898 | jnz @f |
5241 | jnz @f |
4899 | lodsw |
5242 | lodsw |
4900 | cmp ax, '1' |
5243 | cmp ax, '1' |
4901 | jz .nosetrd |
5244 | jz .nosetrd |
4902 | @@: |
5245 | @@: |
4903 | mov eax, '/rd/' |
5246 | mov eax, '/rd/' |
4904 | stosd |
5247 | stosd |
4905 | mov ax, '1' |
5248 | mov ax, '1' |
4906 | stosw |
5249 | stosw |
4907 | jmp read_folder |
5250 | jmp read_folder |
4908 | .nosetrd: |
5251 | .nosetrd: |
4909 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
5252 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
4910 | and dword [ebp + panel1_numfiles - panel1_data], 0 |
5253 | and dword [ebp + panel1_numfiles - panel1_data], 0 |
4911 | and dword [ebp + panel1_index - panel1_data], 0 |
5254 | and dword [ebp + panel1_index - panel1_data], 0 |
4912 | and dword [ebp + panel1_start - panel1_data], 0 |
5255 | and dword [ebp + panel1_start - panel1_data], 0 |
4913 | mov [bSilentFolderMode], 0 ; leave silent mode |
5256 | mov [bSilentFolderMode], 0 ; leave silent mode |
4914 | ret |
5257 | ret |
4915 | .ok: |
5258 | .ok: |
4916 | mov eax, [dirinfo.dirdata] |
5259 | mov eax, [dirinfo.dirdata] |
4917 | cmp [eax+8], ebx |
5260 | cmp [eax+8], ebx |
4918 | jz .readdone |
5261 | jz .readdone |
4919 | push dword [eax+8] |
5262 | push dword [eax+8] |
4920 | mov ecx, [ebp + panel1_files - panel1_data] |
5263 | mov ecx, [ebp + panel1_files - panel1_data] |
4921 | call pgfree |
5264 | call pgfree |
4922 | pop ecx |
5265 | pop ecx |
4923 | add ecx, 0xF |
5266 | add ecx, 0xF |
4924 | and ecx, not 0xF |
5267 | and ecx, not 0xF |
4925 | push ecx |
5268 | push ecx |
4926 | imul ecx, 4+304 |
5269 | imul ecx, 4+304 |
4927 | add ecx, 32 |
5270 | add ecx, 32 |
4928 | call xpgalloc |
5271 | call xpgalloc |
4929 | test eax, eax |
5272 | test eax, eax |
4930 | jnz .succ1 |
5273 | jnz .succ1 |
4931 | pop eax |
5274 | pop eax |
4932 | jmp .readdone |
5275 | jmp .readdone |
4933 | .succ1: |
5276 | .succ1: |
4934 | mov [ebp + panel1_files - panel1_data], eax |
5277 | mov [ebp + panel1_files - panel1_data], eax |
4935 | pop [ebp + panel1_nfa - panel1_data] |
5278 | pop [ebp + panel1_nfa - panel1_data] |
4936 | mov [prev_dir], 0 |
5279 | mov [prev_dir], 0 |
4937 | jmp read_folder |
5280 | jmp read_folder |
4938 | .readdone: |
5281 | .readdone: |
4939 | xor edx, edx |
5282 | xor edx, edx |
4940 | mov [ebp + panel1_start - panel1_data], edx |
5283 | mov [ebp + panel1_start - panel1_data], edx |
4941 | mov [ebp + panel1_index - panel1_data], edx |
5284 | mov [ebp + panel1_index - panel1_data], edx |
4942 | mov [ebp + panel1_start - panel1_data], edx |
5285 | mov [ebp + panel1_start - panel1_data], edx |
4943 | mov edi, [ebp + panel1_files - panel1_data] |
5286 | mov edi, [ebp + panel1_files - panel1_data] |
4944 | mov eax, [ebp + panel1_nfa - panel1_data] |
5287 | mov eax, [ebp + panel1_nfa - panel1_data] |
4945 | lea eax, [edi + eax*4 + 32] |
5288 | lea eax, [edi + eax*4 + 32] |
4946 | mov ecx, [eax-32+4] |
5289 | mov ecx, [eax-32+4] |
4947 | test ecx, ecx |
5290 | test ecx, ecx |
4948 | jz .loopdone |
5291 | jz .loopdone |
4949 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
5292 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
4950 | .ptrinit: |
5293 | .ptrinit: |
4951 | cmp word [eax+40], '.' |
5294 | cmp word [eax+40], '.' |
4952 | jz .loopcont |
5295 | jz .loopcont |
4953 | test byte [eax], 8 |
5296 | test byte [eax], 8 |
4954 | jnz .loopcont |
5297 | jnz .loopcont |
4955 | mov byte [eax+303], 0 |
5298 | mov byte [eax+303], 0 |
4956 | test edx, edx |
5299 | test edx, edx |
4957 | jnz .nodotdot |
5300 | jnz .nodotdot |
4958 | cmp word [eax+40], '..' |
5301 | cmp word [eax+40], '..' |
4959 | jnz .nodotdot |
5302 | jnz .nodotdot |
4960 | cmp byte [eax+42], 0 |
5303 | cmp byte [eax+42], 0 |
4961 | jnz .nodotdot |
5304 | jnz .nodotdot |
4962 | mov edx, eax |
5305 | mov edx, eax |
4963 | push edi |
5306 | push edi |
4964 | @@: |
5307 | @@: |
4965 | cmp edi, [ebp + panel1_files - panel1_data] |
5308 | cmp edi, [ebp + panel1_files - panel1_data] |
4966 | jbe @f |
5309 | jbe @f |
4967 | push dword [edi-4] |
5310 | push dword [edi-4] |
4968 | pop dword [edi] |
5311 | pop dword [edi] |
4969 | sub edi, 4 |
5312 | sub edi, 4 |
4970 | jmp @b |
5313 | jmp @b |
4971 | @@: |
5314 | @@: |
4972 | stosd |
5315 | stosd |
4973 | pop edi |
5316 | pop edi |
4974 | scasd |
5317 | scasd |
4975 | jmp .dotdot |
5318 | jmp .dotdot |
4976 | .nodotdot: |
5319 | .nodotdot: |
4977 | stosd |
5320 | stosd |
4978 | xor ebx, ebx |
5321 | xor ebx, ebx |
4979 | test byte [eax], 10h |
5322 | test byte [eax], 10h |
4980 | setz bl |
5323 | setz bl |
4981 | add [ebp + panel1_total_num - panel1_data], ebx |
5324 | add [ebp + panel1_total_num - panel1_data], ebx |
4982 | mov ebx, dword [eax+32] |
5325 | mov ebx, dword [eax+32] |
4983 | add dword [ebp + panel1_total_size - panel1_data], ebx |
5326 | add dword [ebp + panel1_total_size - panel1_data], ebx |
4984 | mov ebx, dword [eax+36] |
5327 | mov ebx, dword [eax+36] |
4985 | adc dword [ebp + panel1_total_size+4 - panel1_data], ebx |
5328 | adc dword [ebp + panel1_total_size+4 - panel1_data], ebx |
4986 | .dotdot: |
5329 | .dotdot: |
4987 | ; ¯®¤á¢¥âª |
5330 | ; ¯®¤á¢¥âª |
4988 | ; call insert_last_dot |
5331 | ; call insert_last_dot |
4989 | call highlight_init |
5332 | call highlight_init |
4990 | ; call delete_last_dot |
5333 | ; call delete_last_dot |
4991 | .loopcont: |
5334 | .loopcont: |
4992 | add eax, 304 |
5335 | add eax, 304 |
4993 | dec ecx |
5336 | dec ecx |
4994 | jnz .ptrinit |
5337 | jnz .ptrinit |
4995 | .loopdone: |
5338 | .loopdone: |
4996 | push edi |
5339 | push edi |
4997 | sub edi, [ebp + panel1_files - panel1_data] |
5340 | sub edi, [ebp + panel1_files - panel1_data] |
4998 | shr edi, 2 |
5341 | shr edi, 2 |
4999 | mov [ebp + panel1_numfiles - panel1_data], edi |
5342 | mov [ebp + panel1_numfiles - panel1_data], edi |
5000 | pop edi |
5343 | pop edi |
5001 | test edx, edx |
5344 | test edx, edx |
5002 | jnz @f |
5345 | jnz @f |
5003 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
5346 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
5004 | jz @f |
5347 | jz @f |
5005 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5348 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5006 | inc [ebp + panel1_numfiles - panel1_data] |
5349 | inc [ebp + panel1_numfiles - panel1_data] |
5007 | lea esi, [edi-4] |
5350 | lea esi, [edi-4] |
5008 | std |
5351 | std |
5009 | rep movsd |
5352 | rep movsd |
5010 | cld |
5353 | cld |
5011 | mov eax, left_dotdot_entry |
5354 | mov eax, left_dotdot_entry |
5012 | cmp ebp, panel1_data |
5355 | cmp ebp, panel1_data |
5013 | jz .zq |
5356 | jz .zq |
5014 | add eax, right_dotdot_entry-left_dotdot_entry |
5357 | add eax, right_dotdot_entry-left_dotdot_entry |
5015 | .zq: |
5358 | .zq: |
5016 | stosd |
5359 | stosd |
5017 | call highlight_init |
5360 | call highlight_init |
5018 | @@: |
5361 | @@: |
5019 | ; ®àâ¨à®¢ª |
5362 | ; ®àâ¨à®¢ª |
5020 | sort_files: |
5363 | sort_files: |
5021 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
5364 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
5022 | mov ebx, [compare_fns + eax*4] |
5365 | mov ebx, [compare_fns + eax*4] |
5023 | .mode: |
5366 | .mode: |
5024 | mov edx, [ebp + panel1_files - panel1_data] |
5367 | mov edx, [ebp + panel1_files - panel1_data] |
5025 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5368 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5026 | jecxz .skip |
5369 | jecxz .skip |
5027 | mov eax, [edx] |
5370 | mov eax, [edx] |
5028 | cmp word [eax+40], '..' |
5371 | cmp word [eax+40], '..' |
5029 | jnz .nodotdot |
5372 | jnz .nodotdot |
5030 | cmp byte [eax+42], 0 |
5373 | cmp byte [eax+42], 0 |
5031 | jnz .nodotdot |
5374 | jnz .nodotdot |
5032 | dec ecx |
5375 | dec ecx |
5033 | add edx, 4 |
5376 | add edx, 4 |
5034 | .nodotdot: |
5377 | .nodotdot: |
5035 | call sort |
5378 | call sort |
5036 | .skip: |
5379 | .skip: |
5037 | mov [bSilentFolderMode], 0 ; leave silent mode |
5380 | mov [bSilentFolderMode], 0 ; leave silent mode |
5038 | ret |
5381 | ret |
5039 | 5382 | ||
5040 | highlight_init: |
5383 | highlight_init: |
5041 | pushad |
5384 | pushad |
5042 | mov ebp, eax |
5385 | mov ebp, eax |
5043 | lea esi, [ebp+40] |
5386 | lea esi, [ebp+40] |
5044 | mov edi, lower_file_name |
5387 | mov edi, lower_file_name |
5045 | mov edx, edi |
5388 | mov edx, edi |
5046 | xor eax, eax |
5389 | xor eax, eax |
5047 | @@: |
5390 | @@: |
5048 | lodsb |
5391 | lodsb |
5049 | mov al, [tolower_table+eax] |
5392 | mov al, [tolower_table+eax] |
5050 | stosb |
5393 | stosb |
5051 | test al, al |
5394 | test al, al |
5052 | jnz @b |
5395 | jnz @b |
5053 | mov esi, edx |
5396 | mov esi, edx |
5054 | lea edx, [edi-1] |
5397 | lea edx, [edi-1] |
5055 | xor ecx, ecx |
5398 | xor ecx, ecx |
5056 | .highlight_test_loop: |
5399 | .highlight_test_loop: |
5057 | mov ebx, [highlight_groups+ecx*4] |
5400 | mov ebx, [highlight_groups+ecx*4] |
5058 | mov al, [ebx + highlight.IncludeAttributes] |
5401 | mov al, [ebx + highlight.IncludeAttributes] |
5059 | mov ah, [ebp] |
5402 | mov ah, [ebp] |
5060 | and ah, al |
5403 | and ah, al |
5061 | cmp ah, al |
5404 | cmp ah, al |
5062 | jnz .highlight_test_failed |
5405 | jnz .highlight_test_failed |
5063 | lea edi, [ebx + highlight.Mask] |
5406 | lea edi, [ebx + highlight.Mask] |
5064 | call match_mask_rev_lowercase |
5407 | call match_mask_rev_lowercase |
5065 | jc .highlight_test_failed |
5408 | jc .highlight_test_failed |
5066 | mov ah, [ebx + highlight.NormalColor] |
5409 | mov ah, [ebx + highlight.NormalColor] |
5067 | test ah, ah |
5410 | test ah, ah |
5068 | jnz @f |
5411 | jnz @f |
5069 | mov ah, [panel_normal_color] |
5412 | mov ah, [panel_normal_color] |
5070 | @@: |
5413 | @@: |
5071 | mov [ebp+4], ah |
5414 | mov [ebp+4], ah |
5072 | mov ah, [ebx + highlight.CursorColor] |
5415 | mov ah, [ebx + highlight.CursorColor] |
5073 | test ah, ah |
5416 | test ah, ah |
5074 | jnz @f |
5417 | jnz @f |
5075 | mov ah, [panel_cursor_color] |
5418 | mov ah, [panel_cursor_color] |
5076 | @@: |
5419 | @@: |
5077 | mov [ebp+5], ah |
5420 | mov [ebp+5], ah |
5078 | mov ah, [ebx + highlight.SelectedColor] |
5421 | mov ah, [ebx + highlight.SelectedColor] |
5079 | test ah, ah |
5422 | test ah, ah |
5080 | jnz @f |
5423 | jnz @f |
5081 | mov ah, [panel_selected_color] |
5424 | mov ah, [panel_selected_color] |
5082 | @@: |
5425 | @@: |
5083 | mov [ebp+6], ah |
5426 | mov [ebp+6], ah |
5084 | mov ah, [ebx + highlight.SelectedCursorColor] |
5427 | mov ah, [ebx + highlight.SelectedCursorColor] |
5085 | test ah, ah |
5428 | test ah, ah |
5086 | jnz @f |
5429 | jnz @f |
5087 | mov ah, [panel_selected_cursor_color] |
5430 | mov ah, [panel_selected_cursor_color] |
5088 | @@: |
5431 | @@: |
5089 | mov [ebp+7], ah |
5432 | mov [ebp+7], ah |
5090 | jmp .doname |
5433 | jmp .doname |
5091 | .highlight_test_failed: |
5434 | .highlight_test_failed: |
5092 | inc ecx |
5435 | inc ecx |
5093 | cmp ecx, [highlight_num_groups] |
5436 | cmp ecx, [highlight_num_groups] |
5094 | jb .highlight_test_loop |
5437 | jb .highlight_test_loop |
5095 | .nohighlight: |
5438 | .nohighlight: |
5096 | mov ah, [panel_normal_color] |
5439 | mov ah, [panel_normal_color] |
5097 | mov [ebp+4], ah |
5440 | mov [ebp+4], ah |
5098 | mov ah, [panel_cursor_color] |
5441 | mov ah, [panel_cursor_color] |
5099 | mov [ebp+5], ah |
5442 | mov [ebp+5], ah |
5100 | mov ah, [panel_selected_color] |
5443 | mov ah, [panel_selected_color] |
5101 | mov [ebp+6], ah |
5444 | mov [ebp+6], ah |
5102 | mov ah, [panel_selected_cursor_color] |
5445 | mov ah, [panel_selected_cursor_color] |
5103 | mov [ebp+7], ah |
5446 | mov [ebp+7], ah |
5104 | .doname: |
5447 | .doname: |
5105 | popad |
5448 | popad |
5106 | ret |
5449 | ret |
5107 | 5450 | ||
5108 | compare_name: |
5451 | compare_name: |
5109 | test byte [esi], 10h |
5452 | test byte [esi], 10h |
5110 | jnz .1dir |
5453 | jnz .1dir |
5111 | test byte [edi], 10h |
5454 | test byte [edi], 10h |
5112 | jnz .greater |
5455 | jnz .greater |
5113 | .eq1: |
5456 | .eq1: |
5114 | add esi, 40 |
5457 | add esi, 40 |
5115 | add edi, 40 |
5458 | add edi, 40 |
5116 | jmp strcmpi |
5459 | jmp strcmpi |
5117 | .greater: |
5460 | .greater: |
5118 | test esi, esi |
5461 | test esi, esi |
5119 | ret |
5462 | ret |
5120 | .1dir: |
5463 | .1dir: |
5121 | test byte [edi], 10h |
5464 | test byte [edi], 10h |
5122 | jnz .eq1 |
5465 | jnz .eq1 |
5123 | .less: |
5466 | .less: |
5124 | xor edi, edi |
5467 | xor edi, edi |
5125 | stc |
5468 | stc |
5126 | ret |
5469 | ret |
5127 | 5470 | ||
5128 | compare_name_rev: |
5471 | compare_name_rev: |
5129 | test byte [esi], 10h |
5472 | test byte [esi], 10h |
5130 | jnz .1dir |
5473 | jnz .1dir |
5131 | test byte [edi], 10h |
5474 | test byte [edi], 10h |
5132 | jnz .greater |
5475 | jnz .greater |
5133 | .eq1: |
5476 | .eq1: |
5134 | add esi, 40 |
5477 | add esi, 40 |
5135 | add edi, 40 |
5478 | add edi, 40 |
5136 | xchg esi, edi |
5479 | xchg esi, edi |
5137 | jmp strcmpi |
5480 | jmp strcmpi |
5138 | .greater: |
5481 | .greater: |
5139 | test esi, esi |
5482 | test esi, esi |
5140 | ret |
5483 | ret |
5141 | .1dir: |
5484 | .1dir: |
5142 | test byte [edi], 10h |
5485 | test byte [edi], 10h |
5143 | jnz .eq1 |
5486 | jnz .eq1 |
5144 | .less: |
5487 | .less: |
5145 | xor edi, edi |
5488 | xor edi, edi |
5146 | stc |
5489 | stc |
5147 | ret |
5490 | ret |
5148 | 5491 | ||
5149 | strcmpi: |
5492 | strcmpi: |
5150 | push eax |
5493 | push eax |
5151 | @@: |
5494 | @@: |
5152 | lodsb |
5495 | lodsb |
5153 | call match_symbol |
5496 | call match_symbol |
5154 | jnz .ret |
5497 | jnz .ret |
5155 | inc edi |
5498 | inc edi |
5156 | test al, al |
5499 | test al, al |
5157 | jnz @b |
5500 | jnz @b |
5158 | .ret: |
5501 | .ret: |
5159 | pop eax |
5502 | pop eax |
5160 | ret |
5503 | ret |
5161 | 5504 | ||
5162 | compare_ext: |
5505 | compare_ext: |
5163 | test byte [esi], 10h |
5506 | test byte [esi], 10h |
5164 | jnz .1dir |
5507 | jnz .1dir |
5165 | test byte [edi], 10h |
5508 | test byte [edi], 10h |
5166 | jnz .greater |
5509 | jnz .greater |
5167 | .eq1: |
5510 | .eq1: |
5168 | add esi, 40 |
5511 | add esi, 40 |
5169 | add edi, 40 |
5512 | add edi, 40 |
5170 | push esi edi |
5513 | push esi edi |
5171 | call seek_ext |
5514 | call seek_ext |
5172 | xchg esi, edi |
5515 | xchg esi, edi |
5173 | call seek_ext |
5516 | call seek_ext |
5174 | xchg esi, edi |
5517 | xchg esi, edi |
5175 | call strcmpi |
5518 | call strcmpi |
5176 | jnz .ret |
5519 | jnz .ret |
5177 | pop edi esi |
5520 | pop edi esi |
5178 | jmp strcmpi |
5521 | jmp strcmpi |
5179 | .ret: |
5522 | .ret: |
5180 | pop edi esi |
5523 | pop edi esi |
5181 | ret |
5524 | ret |
5182 | .greater: |
5525 | .greater: |
5183 | test esi, esi |
5526 | test esi, esi |
5184 | ret |
5527 | ret |
5185 | .1dir: |
5528 | .1dir: |
5186 | test byte [edi], 10h |
5529 | test byte [edi], 10h |
5187 | jnz .eq1 |
5530 | jnz .eq1 |
5188 | .less: |
5531 | .less: |
5189 | xor edi, edi |
5532 | xor edi, edi |
5190 | stc |
5533 | stc |
5191 | ret |
5534 | ret |
5192 | 5535 | ||
5193 | compare_ext_rev: |
5536 | compare_ext_rev: |
5194 | test byte [esi], 10h |
5537 | test byte [esi], 10h |
5195 | jnz .1dir |
5538 | jnz .1dir |
5196 | test byte [edi], 10h |
5539 | test byte [edi], 10h |
5197 | jnz .greater |
5540 | jnz .greater |
5198 | .eq1: |
5541 | .eq1: |
5199 | add esi, 40 |
5542 | add esi, 40 |
5200 | add edi, 40 |
5543 | add edi, 40 |
5201 | push esi edi |
5544 | push esi edi |
5202 | call seek_ext |
5545 | call seek_ext |
5203 | xchg esi, edi |
5546 | xchg esi, edi |
5204 | call seek_ext |
5547 | call seek_ext |
5205 | call strcmpi |
5548 | call strcmpi |
5206 | jnz .ret |
5549 | jnz .ret |
5207 | pop edi esi |
5550 | pop edi esi |
5208 | xchg esi, edi |
5551 | xchg esi, edi |
5209 | jmp strcmpi |
5552 | jmp strcmpi |
5210 | .ret: |
5553 | .ret: |
5211 | pop edi esi |
5554 | pop edi esi |
5212 | ret |
5555 | ret |
5213 | .greater: |
5556 | .greater: |
5214 | test esi, esi |
5557 | test esi, esi |
5215 | ret |
5558 | ret |
5216 | .1dir: |
5559 | .1dir: |
5217 | test byte [edi], 10h |
5560 | test byte [edi], 10h |
5218 | jnz .eq1 |
5561 | jnz .eq1 |
5219 | .less: |
5562 | .less: |
5220 | xor edi, edi |
5563 | xor edi, edi |
5221 | stc |
5564 | stc |
5222 | ret |
5565 | ret |
5223 | 5566 | ||
5224 | seek_ext: |
5567 | seek_ext: |
5225 | push eax |
5568 | push eax |
5226 | xor eax, eax |
5569 | xor eax, eax |
5227 | .l: |
5570 | .l: |
5228 | inc esi |
5571 | inc esi |
5229 | cmp byte [esi-1], '.' |
5572 | cmp byte [esi-1], '.' |
5230 | jnz @f |
5573 | jnz @f |
5231 | mov eax, esi |
5574 | mov eax, esi |
5232 | @@: |
5575 | @@: |
5233 | cmp byte [esi-1], 0 |
5576 | cmp byte [esi-1], 0 |
5234 | jnz .l |
5577 | jnz .l |
5235 | test eax, eax |
5578 | test eax, eax |
5236 | jnz @f |
5579 | jnz @f |
5237 | lea eax, [esi-1] |
5580 | lea eax, [esi-1] |
5238 | @@: |
5581 | @@: |
5239 | mov esi, eax |
5582 | mov esi, eax |
5240 | pop eax |
5583 | pop eax |
5241 | ret |
5584 | ret |
5242 | 5585 | ||
5243 | compare_modified: |
5586 | compare_modified: |
5244 | test byte [esi], 10h |
5587 | test byte [esi], 10h |
5245 | jnz .1dir |
5588 | jnz .1dir |
5246 | test byte [edi], 10h |
5589 | test byte [edi], 10h |
5247 | jnz .greater |
5590 | jnz .greater |
5248 | .eq1: |
5591 | .eq1: |
5249 | push edi |
5592 | push edi |
5250 | mov edi, [edi+28] |
5593 | mov edi, [edi+28] |
5251 | cmp edi, [esi+28] |
5594 | cmp edi, [esi+28] |
5252 | pop edi |
5595 | pop edi |
5253 | jnz @f |
5596 | jnz @f |
5254 | push edi |
5597 | push edi |
5255 | mov edi, [edi+24] |
5598 | mov edi, [edi+24] |
5256 | cmp edi, [esi+24] |
5599 | cmp edi, [esi+24] |
5257 | pop edi |
5600 | pop edi |
5258 | jnz @f |
5601 | jnz @f |
5259 | add esi, 40 |
5602 | add esi, 40 |
5260 | add edi, 40 |
5603 | add edi, 40 |
5261 | jmp strcmpi |
5604 | jmp strcmpi |
5262 | @@: |
5605 | @@: |
5263 | ret |
5606 | ret |
5264 | .greater: |
5607 | .greater: |
5265 | test esi, esi |
5608 | test esi, esi |
5266 | ret |
5609 | ret |
5267 | .1dir: |
5610 | .1dir: |
5268 | test byte [edi], 10h |
5611 | test byte [edi], 10h |
5269 | jnz .eq1 |
5612 | jnz .eq1 |
5270 | .less: |
5613 | .less: |
5271 | xor edi, edi |
5614 | xor edi, edi |
5272 | stc |
5615 | stc |
5273 | ret |
5616 | ret |
5274 | 5617 | ||
5275 | compare_modified_rev: |
5618 | compare_modified_rev: |
5276 | test byte [esi], 10h |
5619 | test byte [esi], 10h |
5277 | jnz .1dir |
5620 | jnz .1dir |
5278 | test byte [edi], 10h |
5621 | test byte [edi], 10h |
5279 | jnz .greater |
5622 | jnz .greater |
5280 | .eq1: |
5623 | .eq1: |
5281 | push esi |
5624 | push esi |
5282 | mov esi, [esi+28] |
5625 | mov esi, [esi+28] |
5283 | cmp esi, [edi+28] |
5626 | cmp esi, [edi+28] |
5284 | pop esi |
5627 | pop esi |
5285 | jnz @f |
5628 | jnz @f |
5286 | push esi |
5629 | push esi |
5287 | mov esi, [esi+24] |
5630 | mov esi, [esi+24] |
5288 | cmp esi, [edi+24] |
5631 | cmp esi, [edi+24] |
5289 | pop esi |
5632 | pop esi |
5290 | jnz @f |
5633 | jnz @f |
5291 | add esi, 40 |
5634 | add esi, 40 |
5292 | add edi, 40 |
5635 | add edi, 40 |
5293 | xchg esi, edi |
5636 | xchg esi, edi |
5294 | jmp strcmpi |
5637 | jmp strcmpi |
5295 | @@: |
5638 | @@: |
5296 | ret |
5639 | ret |
5297 | .greater: |
5640 | .greater: |
5298 | test esi, esi |
5641 | test esi, esi |
5299 | ret |
5642 | ret |
5300 | .1dir: |
5643 | .1dir: |
5301 | test byte [edi], 10h |
5644 | test byte [edi], 10h |
5302 | jnz .eq1 |
5645 | jnz .eq1 |
5303 | .less: |
5646 | .less: |
5304 | xor edi, edi |
5647 | xor edi, edi |
5305 | stc |
5648 | stc |
5306 | ret |
5649 | ret |
5307 | 5650 | ||
5308 | compare_size: |
5651 | compare_size: |
5309 | test byte [esi], 10h |
5652 | test byte [esi], 10h |
5310 | jnz .1dir |
5653 | jnz .1dir |
5311 | test byte [edi], 10h |
5654 | test byte [edi], 10h |
5312 | jnz .greater |
5655 | jnz .greater |
5313 | .eq1: |
5656 | .eq1: |
5314 | push edi |
5657 | push edi |
5315 | mov edi, [edi+36] |
5658 | mov edi, [edi+36] |
5316 | cmp edi, [esi+36] |
5659 | cmp edi, [esi+36] |
5317 | pop edi |
5660 | pop edi |
5318 | jnz @f |
5661 | jnz @f |
5319 | push edi |
5662 | push edi |
5320 | mov edi, [edi+32] |
5663 | mov edi, [edi+32] |
5321 | cmp edi, [esi+32] |
5664 | cmp edi, [esi+32] |
5322 | pop edi |
5665 | pop edi |
5323 | jnz @f |
5666 | jnz @f |
5324 | add esi, 40 |
5667 | add esi, 40 |
5325 | add edi, 40 |
5668 | add edi, 40 |
5326 | jmp strcmpi |
5669 | jmp strcmpi |
5327 | @@: |
5670 | @@: |
5328 | ret |
5671 | ret |
5329 | .greater: |
5672 | .greater: |
5330 | test esi, esi |
5673 | test esi, esi |
5331 | ret |
5674 | ret |
5332 | .1dir: |
5675 | .1dir: |
5333 | test byte [edi], 10h |
5676 | test byte [edi], 10h |
5334 | jnz .eq1 |
5677 | jnz .eq1 |
5335 | .less: |
5678 | .less: |
5336 | xor edi, edi |
5679 | xor edi, edi |
5337 | stc |
5680 | stc |
5338 | ret |
5681 | ret |
5339 | 5682 | ||
5340 | compare_size_rev: |
5683 | compare_size_rev: |
5341 | test byte [esi], 10h |
5684 | test byte [esi], 10h |
5342 | jnz .1dir |
5685 | jnz .1dir |
5343 | test byte [edi], 10h |
5686 | test byte [edi], 10h |
5344 | jnz .greater |
5687 | jnz .greater |
5345 | .eq1: |
5688 | .eq1: |
5346 | push esi |
5689 | push esi |
5347 | mov esi, [esi+36] |
5690 | mov esi, [esi+36] |
5348 | cmp esi, [edi+36] |
5691 | cmp esi, [edi+36] |
5349 | pop esi |
5692 | pop esi |
5350 | jnz @f |
5693 | jnz @f |
5351 | push esi |
5694 | push esi |
5352 | mov esi, [esi+32] |
5695 | mov esi, [esi+32] |
5353 | cmp esi, [edi+32] |
5696 | cmp esi, [edi+32] |
5354 | pop esi |
5697 | pop esi |
5355 | jnz @f |
5698 | jnz @f |
5356 | add esi, 40 |
5699 | add esi, 40 |
5357 | add edi, 40 |
5700 | add edi, 40 |
5358 | xchg esi, edi |
5701 | xchg esi, edi |
5359 | jmp strcmpi |
5702 | jmp strcmpi |
5360 | @@: |
5703 | @@: |
5361 | ret |
5704 | ret |
5362 | .greater: |
5705 | .greater: |
5363 | test esi, esi |
5706 | test esi, esi |
5364 | ret |
5707 | ret |
5365 | .1dir: |
5708 | .1dir: |
5366 | test byte [edi], 10h |
5709 | test byte [edi], 10h |
5367 | jnz .eq1 |
5710 | jnz .eq1 |
5368 | .less: |
5711 | .less: |
5369 | xor edi, edi |
5712 | xor edi, edi |
5370 | stc |
5713 | stc |
5371 | ret |
5714 | ret |
5372 | 5715 | ||
5373 | compare_unordered: |
5716 | compare_unordered: |
5374 | cmp esi, edi |
5717 | cmp esi, edi |
5375 | ret |
5718 | ret |
5376 | compare_unordered_rev: |
5719 | compare_unordered_rev: |
5377 | cmp edi, esi |
5720 | cmp edi, esi |
5378 | ret |
5721 | ret |
5379 | 5722 | ||
5380 | compare_created: |
5723 | compare_created: |
5381 | test byte [esi], 10h |
5724 | test byte [esi], 10h |
5382 | jnz .1dir |
5725 | jnz .1dir |
5383 | test byte [edi], 10h |
5726 | test byte [edi], 10h |
5384 | jnz .greater |
5727 | jnz .greater |
5385 | .eq1: |
5728 | .eq1: |
5386 | push edi |
5729 | push edi |
5387 | mov edi, [edi+12] |
5730 | mov edi, [edi+12] |
5388 | cmp edi, [esi+12] |
5731 | cmp edi, [esi+12] |
5389 | pop edi |
5732 | pop edi |
5390 | jnz @f |
5733 | jnz @f |
5391 | push edi |
5734 | push edi |
5392 | mov edi, [edi+8] |
5735 | mov edi, [edi+8] |
5393 | cmp edi, [esi+8] |
5736 | cmp edi, [esi+8] |
5394 | pop edi |
5737 | pop edi |
5395 | jnz @f |
5738 | jnz @f |
5396 | add esi, 40 |
5739 | add esi, 40 |
5397 | add edi, 40 |
5740 | add edi, 40 |
5398 | jmp strcmpi |
5741 | jmp strcmpi |
5399 | @@: |
5742 | @@: |
5400 | ret |
5743 | ret |
5401 | .greater: |
5744 | .greater: |
5402 | test esi, esi |
5745 | test esi, esi |
5403 | ret |
5746 | ret |
5404 | .1dir: |
5747 | .1dir: |
5405 | test byte [edi], 10h |
5748 | test byte [edi], 10h |
5406 | jnz .eq1 |
5749 | jnz .eq1 |
5407 | .less: |
5750 | .less: |
5408 | xor edi, edi |
5751 | xor edi, edi |
5409 | stc |
5752 | stc |
5410 | ret |
5753 | ret |
5411 | 5754 | ||
5412 | compare_created_rev: |
5755 | compare_created_rev: |
5413 | test byte [esi], 10h |
5756 | test byte [esi], 10h |
5414 | jnz .1dir |
5757 | jnz .1dir |
5415 | test byte [edi], 10h |
5758 | test byte [edi], 10h |
5416 | jnz .greater |
5759 | jnz .greater |
5417 | .eq1: |
5760 | .eq1: |
5418 | push esi |
5761 | push esi |
5419 | mov esi, [esi+12] |
5762 | mov esi, [esi+12] |
5420 | cmp esi, [edi+12] |
5763 | cmp esi, [edi+12] |
5421 | pop esi |
5764 | pop esi |
5422 | jnz @f |
5765 | jnz @f |
5423 | push esi |
5766 | push esi |
5424 | mov esi, [esi+8] |
5767 | mov esi, [esi+8] |
5425 | cmp esi, [edi+8] |
5768 | cmp esi, [edi+8] |
5426 | pop esi |
5769 | pop esi |
5427 | jnz @f |
5770 | jnz @f |
5428 | add esi, 40 |
5771 | add esi, 40 |
5429 | add edi, 40 |
5772 | add edi, 40 |
5430 | xchg esi, edi |
5773 | xchg esi, edi |
5431 | jmp strcmpi |
5774 | jmp strcmpi |
5432 | @@: |
5775 | @@: |
5433 | ret |
5776 | ret |
5434 | .greater: |
5777 | .greater: |
5435 | test esi, esi |
5778 | test esi, esi |
5436 | ret |
5779 | ret |
5437 | .1dir: |
5780 | .1dir: |
5438 | test byte [edi], 10h |
5781 | test byte [edi], 10h |
5439 | jnz .eq1 |
5782 | jnz .eq1 |
5440 | .less: |
5783 | .less: |
5441 | xor edi, edi |
5784 | xor edi, edi |
5442 | stc |
5785 | stc |
5443 | ret |
5786 | ret |
5444 | 5787 | ||
5445 | compare_accessed: |
5788 | compare_accessed: |
5446 | test byte [esi], 10h |
5789 | test byte [esi], 10h |
5447 | jnz .1dir |
5790 | jnz .1dir |
5448 | test byte [edi], 10h |
5791 | test byte [edi], 10h |
5449 | jnz .greater |
5792 | jnz .greater |
5450 | .eq1: |
5793 | .eq1: |
5451 | push edi |
5794 | push edi |
5452 | mov edi, [edi+20] |
5795 | mov edi, [edi+20] |
5453 | cmp edi, [esi+20] |
5796 | cmp edi, [esi+20] |
5454 | pop edi |
5797 | pop edi |
5455 | jnz @f |
5798 | jnz @f |
5456 | push edi |
5799 | push edi |
5457 | mov edi, [edi+16] |
5800 | mov edi, [edi+16] |
5458 | cmp edi, [esi+16] |
5801 | cmp edi, [esi+16] |
5459 | pop edi |
5802 | pop edi |
5460 | jnz @f |
5803 | jnz @f |
5461 | add esi, 40 |
5804 | add esi, 40 |
5462 | add edi, 40 |
5805 | add edi, 40 |
5463 | jmp strcmpi |
5806 | jmp strcmpi |
5464 | @@: |
5807 | @@: |
5465 | ret |
5808 | ret |
5466 | .greater: |
5809 | .greater: |
5467 | test esi, esi |
5810 | test esi, esi |
5468 | ret |
5811 | ret |
5469 | .1dir: |
5812 | .1dir: |
5470 | test byte [edi], 10h |
5813 | test byte [edi], 10h |
5471 | jnz .eq1 |
5814 | jnz .eq1 |
5472 | .less: |
5815 | .less: |
5473 | xor edi, edi |
5816 | xor edi, edi |
5474 | stc |
5817 | stc |
5475 | ret |
5818 | ret |
5476 | 5819 | ||
5477 | compare_accessed_rev: |
5820 | compare_accessed_rev: |
5478 | test byte [esi], 10h |
5821 | test byte [esi], 10h |
5479 | jnz .1dir |
5822 | jnz .1dir |
5480 | test byte [edi], 10h |
5823 | test byte [edi], 10h |
5481 | jnz .greater |
5824 | jnz .greater |
5482 | .eq1: |
5825 | .eq1: |
5483 | push esi |
5826 | push esi |
5484 | mov esi, [esi+20] |
5827 | mov esi, [esi+20] |
5485 | cmp esi, [edi+20] |
5828 | cmp esi, [edi+20] |
5486 | pop esi |
5829 | pop esi |
5487 | jnz @f |
5830 | jnz @f |
5488 | push esi |
5831 | push esi |
5489 | mov esi, [esi+16] |
5832 | mov esi, [esi+16] |
5490 | cmp esi, [edi+16] |
5833 | cmp esi, [edi+16] |
5491 | pop esi |
5834 | pop esi |
5492 | jnz @f |
5835 | jnz @f |
5493 | add esi, 40 |
5836 | add esi, 40 |
5494 | add edi, 40 |
5837 | add edi, 40 |
5495 | xchg esi, edi |
5838 | xchg esi, edi |
5496 | jmp strcmpi |
5839 | jmp strcmpi |
5497 | @@: |
5840 | @@: |
5498 | ret |
5841 | ret |
5499 | .greater: |
5842 | .greater: |
5500 | test esi, esi |
5843 | test esi, esi |
5501 | ret |
5844 | ret |
5502 | .1dir: |
5845 | .1dir: |
5503 | test byte [edi], 10h |
5846 | test byte [edi], 10h |
5504 | jnz .eq1 |
5847 | jnz .eq1 |
5505 | .less: |
5848 | .less: |
5506 | xor edi, edi |
5849 | xor edi, edi |
5507 | stc |
5850 | stc |
5508 | ret |
5851 | ret |
5509 | 5852 | ||
5510 | ReadFolder_default: |
5853 | ReadFolder_default: |
5511 | mov eax, 2 |
5854 | mov eax, 2 |
5512 | ret 10h |
5855 | ret 10h |
5513 | 5856 | ||
5514 | if 0 |
5857 | if 0 |
5515 | ; Following subroutines work, but are slow |
5858 | ; Following subroutines work, but are slow |
5516 | match_mask: |
5859 | match_mask: |
5517 | ; in: esi->name, edi->mask |
5860 | ; in: esi->name, edi->mask |
5518 | ; out: CF clear <=> match |
5861 | ; out: CF clear <=> match |
5519 | pusha |
5862 | pusha |
5520 | xchg esi, edi |
5863 | xchg esi, edi |
5521 | .main_cycle: |
5864 | .main_cycle: |
5522 | push esi |
5865 | push esi |
5523 | @@: |
5866 | @@: |
5524 | lodsb |
5867 | lodsb |
5525 | test al, al |
5868 | test al, al |
5526 | jz @f |
5869 | jz @f |
5527 | cmp al, ',' |
5870 | cmp al, ',' |
5528 | jz @f |
5871 | jz @f |
5529 | cmp al, '|' |
5872 | cmp al, '|' |
5530 | jnz @b |
5873 | jnz @b |
5531 | @@: |
5874 | @@: |
5532 | mov [esi-1], byte 0 |
5875 | mov [esi-1], byte 0 |
5533 | xchg esi, [esp] |
5876 | xchg esi, [esp] |
5534 | call match_single_mask |
5877 | call match_single_mask |
5535 | pop esi |
5878 | pop esi |
5536 | mov [esi-1], al |
5879 | mov [esi-1], al |
5537 | jnc .found |
5880 | jnc .found |
5538 | cmp al, ',' |
5881 | cmp al, ',' |
5539 | jz .main_cycle |
5882 | jz .main_cycle |
5540 | .done_fail: |
5883 | .done_fail: |
5541 | stc |
5884 | stc |
5542 | popa |
5885 | popa |
5543 | ret |
5886 | ret |
5544 | .found: |
5887 | .found: |
5545 | test al, al |
5888 | test al, al |
5546 | jz .done_succ |
5889 | jz .done_succ |
5547 | cmp al, '|' |
5890 | cmp al, '|' |
5548 | jz .test_exclude |
5891 | jz .test_exclude |
5549 | lodsb |
5892 | lodsb |
5550 | jmp .found |
5893 | jmp .found |
5551 | .done_succ: |
5894 | .done_succ: |
5552 | clc |
5895 | clc |
5553 | popa |
5896 | popa |
5554 | ret |
5897 | ret |
5555 | .test_exclude: |
5898 | .test_exclude: |
5556 | push esi |
5899 | push esi |
5557 | @@: |
5900 | @@: |
5558 | lodsb |
5901 | lodsb |
5559 | test al, al |
5902 | test al, al |
5560 | jz @f |
5903 | jz @f |
5561 | cmp al, ',' |
5904 | cmp al, ',' |
5562 | jnz @b |
5905 | jnz @b |
5563 | @@: |
5906 | @@: |
5564 | mov byte [esi-1], 0 |
5907 | mov byte [esi-1], 0 |
5565 | xchg esi, [esp] |
5908 | xchg esi, [esp] |
5566 | call match_single_mask |
5909 | call match_single_mask |
5567 | pop esi |
5910 | pop esi |
5568 | mov [esi-1], al |
5911 | mov [esi-1], al |
5569 | jnc .done_fail |
5912 | jnc .done_fail |
5570 | test al, al |
5913 | test al, al |
5571 | jz .done_succ |
5914 | jz .done_succ |
5572 | jmp .test_exclude |
5915 | jmp .test_exclude |
5573 | 5916 | ||
5574 | match_single_mask: |
5917 | match_single_mask: |
5575 | ; in: esi->mask, edi->name |
5918 | ; in: esi->mask, edi->name |
5576 | ; out: CF clear <=> match |
5919 | ; out: CF clear <=> match |
5577 | pusha |
5920 | pusha |
5578 | .mask_symbol: |
5921 | .mask_symbol: |
5579 | lodsb |
5922 | lodsb |
5580 | test al, al |
5923 | test al, al |
5581 | jz .mask_done |
5924 | jz .mask_done |
5582 | cmp al, '*' |
5925 | cmp al, '*' |
5583 | jz .asterisk |
5926 | jz .asterisk |
5584 | cmp al, '?' |
5927 | cmp al, '?' |
5585 | jz .quest |
5928 | jz .quest |
5586 | cmp al, '[' |
5929 | cmp al, '[' |
5587 | jz .list |
5930 | jz .list |
5588 | call match_symbol |
5931 | call match_symbol |
5589 | jnz .done_fail |
5932 | jnz .done_fail |
5590 | inc edi |
5933 | inc edi |
5591 | jmp .mask_symbol |
5934 | jmp .mask_symbol |
5592 | .done_fail: |
5935 | .done_fail: |
5593 | stc |
5936 | stc |
5594 | popa |
5937 | popa |
5595 | ret |
5938 | ret |
5596 | .mask_done: |
5939 | .mask_done: |
5597 | scasb |
5940 | scasb |
5598 | jnz .done_fail |
5941 | jnz .done_fail |
5599 | .done_succ: |
5942 | .done_succ: |
5600 | clc |
5943 | clc |
5601 | popa |
5944 | popa |
5602 | ret |
5945 | ret |
5603 | .quest: |
5946 | .quest: |
5604 | mov al, 0 |
5947 | mov al, 0 |
5605 | scasb |
5948 | scasb |
5606 | jz .done_fail |
5949 | jz .done_fail |
5607 | jmp .mask_symbol |
5950 | jmp .mask_symbol |
5608 | .list: |
5951 | .list: |
5609 | lodsb |
5952 | lodsb |
5610 | cmp al, ']' |
5953 | cmp al, ']' |
5611 | jz .done_fail |
5954 | jz .done_fail |
5612 | cmp byte [esi+1], '-' |
5955 | cmp byte [esi+1], '-' |
5613 | jz .range |
5956 | jz .range |
5614 | call match_symbol |
5957 | call match_symbol |
5615 | jnz .list |
5958 | jnz .list |
5616 | .listok: |
5959 | .listok: |
5617 | inc edi |
5960 | inc edi |
5618 | @@: |
5961 | @@: |
5619 | lodsb |
5962 | lodsb |
5620 | cmp al, ']' |
5963 | cmp al, ']' |
5621 | jnz @b |
5964 | jnz @b |
5622 | jmp .mask_symbol |
5965 | jmp .mask_symbol |
5623 | .range: |
5966 | .range: |
5624 | call match_symbol |
5967 | call match_symbol |
5625 | ja @f |
5968 | ja @f |
5626 | mov al, [esi+2] |
5969 | mov al, [esi+2] |
5627 | call match_symbol |
5970 | call match_symbol |
5628 | jae .listok |
5971 | jae .listok |
5629 | @@: |
5972 | @@: |
5630 | inc esi |
5973 | inc esi |
5631 | jmp .list |
5974 | jmp .list |
5632 | .asterisk: |
5975 | .asterisk: |
5633 | cmp byte [esi], 0 |
5976 | cmp byte [esi], 0 |
5634 | jz .done_succ |
5977 | jz .done_succ |
5635 | cmp byte [esi], '?' |
5978 | cmp byte [esi], '?' |
5636 | jnz @f |
5979 | jnz @f |
5637 | mov al, 0 |
5980 | mov al, 0 |
5638 | scasb |
5981 | scasb |
5639 | jz .done_fail |
5982 | jz .done_fail |
5640 | inc esi |
5983 | inc esi |
5641 | jmp .asterisk |
5984 | jmp .asterisk |
5642 | @@: |
5985 | @@: |
5643 | cmp byte [esi], '[' |
5986 | cmp byte [esi], '[' |
5644 | jz .asterisk_common |
5987 | jz .asterisk_common |
5645 | ; the mask is ...* |
5988 | ; the mask is ...* |
5646 | .asterisk_normal: |
5989 | .asterisk_normal: |
5647 | mov al, [esi] |
5990 | mov al, [esi] |
5648 | @@: |
5991 | @@: |
5649 | cmp byte [edi], 0 |
5992 | cmp byte [edi], 0 |
5650 | jz .done_fail |
5993 | jz .done_fail |
5651 | call match_symbol |
5994 | call match_symbol |
5652 | jz @f |
5995 | jz @f |
5653 | inc edi |
5996 | inc edi |
5654 | jmp @b |
5997 | jmp @b |
5655 | @@: |
5998 | @@: |
5656 | inc edi |
5999 | inc edi |
5657 | inc esi |
6000 | inc esi |
5658 | call match_single_mask |
6001 | call match_single_mask |
5659 | jnc .done_succ |
6002 | jnc .done_succ |
5660 | dec esi |
6003 | dec esi |
5661 | jmp .asterisk_normal |
6004 | jmp .asterisk_normal |
5662 | .asterisk_common: |
6005 | .asterisk_common: |
5663 | push edi |
6006 | push edi |
5664 | @@: |
6007 | @@: |
5665 | call match_single_mask |
6008 | call match_single_mask |
5666 | jnc @f |
6009 | jnc @f |
5667 | mov al, 0 |
6010 | mov al, 0 |
5668 | scasb |
6011 | scasb |
5669 | jnz @b |
6012 | jnz @b |
5670 | pop edi |
6013 | pop edi |
5671 | jmp .done_fail |
6014 | jmp .done_fail |
5672 | @@: |
6015 | @@: |
5673 | pop edi |
6016 | pop edi |
5674 | jmp .done_succ |
6017 | jmp .done_succ |
5675 | 6018 | ||
5676 | match_mask_rev: |
6019 | match_mask_rev: |
5677 | ; in: esi->name, edx->end of name, edi->mask |
6020 | ; in: esi->name, edx->end of name, edi->mask |
5678 | ; out: CF clear <=> match |
6021 | ; out: CF clear <=> match |
5679 | pusha |
6022 | pusha |
5680 | xchg esi, edx |
6023 | xchg esi, edx |
5681 | xchg esi, edi |
6024 | xchg esi, edi |
5682 | .main_cycle: |
6025 | .main_cycle: |
5683 | mov ecx, esi |
6026 | mov ecx, esi |
5684 | @@: |
6027 | @@: |
5685 | lodsb |
6028 | lodsb |
5686 | test al, al |
6029 | test al, al |
5687 | jz @f |
6030 | jz @f |
5688 | cmp al, ',' |
6031 | cmp al, ',' |
5689 | jz @f |
6032 | jz @f |
5690 | cmp al, '|' |
6033 | cmp al, '|' |
5691 | jnz @b |
6034 | jnz @b |
5692 | @@: |
6035 | @@: |
5693 | dec esi |
6036 | dec esi |
5694 | mov [esi], byte 0 |
6037 | mov [esi], byte 0 |
5695 | call match_single_mask_rev2 |
6038 | call match_single_mask_rev2 |
5696 | mov [esi], al |
6039 | mov [esi], al |
5697 | inc esi |
6040 | inc esi |
5698 | jnc .found |
6041 | jnc .found |
5699 | cmp al, ',' |
6042 | cmp al, ',' |
5700 | jz .main_cycle |
6043 | jz .main_cycle |
5701 | .done_fail: |
6044 | .done_fail: |
5702 | stc |
6045 | stc |
5703 | popa |
6046 | popa |
5704 | ret |
6047 | ret |
5705 | .found: |
6048 | .found: |
5706 | test al, al |
6049 | test al, al |
5707 | jz .done_succ |
6050 | jz .done_succ |
5708 | cmp al, '|' |
6051 | cmp al, '|' |
5709 | jz .test_exclude |
6052 | jz .test_exclude |
5710 | lodsb |
6053 | lodsb |
5711 | jmp .found |
6054 | jmp .found |
5712 | .done_succ: |
6055 | .done_succ: |
5713 | clc |
6056 | clc |
5714 | popa |
6057 | popa |
5715 | ret |
6058 | ret |
5716 | .test_exclude: |
6059 | .test_exclude: |
5717 | mov ecx, esi |
6060 | mov ecx, esi |
5718 | @@: |
6061 | @@: |
5719 | lodsb |
6062 | lodsb |
5720 | test al, al |
6063 | test al, al |
5721 | jz @f |
6064 | jz @f |
5722 | cmp al, ',' |
6065 | cmp al, ',' |
5723 | jnz @b |
6066 | jnz @b |
5724 | @@: |
6067 | @@: |
5725 | dec esi |
6068 | dec esi |
5726 | mov byte [esi], 0 |
6069 | mov byte [esi], 0 |
5727 | call match_single_mask_rev2 |
6070 | call match_single_mask_rev2 |
5728 | mov [esi], al |
6071 | mov [esi], al |
5729 | inc esi |
6072 | inc esi |
5730 | jnc .done_fail |
6073 | jnc .done_fail |
5731 | test al, al |
6074 | test al, al |
5732 | jz .done_succ |
6075 | jz .done_succ |
5733 | jmp .test_exclude |
6076 | jmp .test_exclude |
5734 | 6077 | ||
5735 | match_single_mask_rev2: |
6078 | match_single_mask_rev2: |
5736 | pusha |
6079 | pusha |
5737 | jmp match_single_mask_rev.mask_symbol |
6080 | jmp match_single_mask_rev.mask_symbol |
5738 | match_single_mask_rev: |
6081 | match_single_mask_rev: |
5739 | ; in: esi->mask, edi->end of name, edx->start of name |
6082 | ; in: esi->mask, edi->end of name, edx->start of name |
5740 | ; out: CF clear <=> match |
6083 | ; out: CF clear <=> match |
5741 | pusha |
6084 | pusha |
5742 | mov ecx, esi |
6085 | mov ecx, esi |
5743 | @@: |
6086 | @@: |
5744 | lodsb |
6087 | lodsb |
5745 | test al, al |
6088 | test al, al |
5746 | jnz @b |
6089 | jnz @b |
5747 | dec esi |
6090 | dec esi |
5748 | ; esi->end of mask, ecx->start of mask |
6091 | ; esi->end of mask, ecx->start of mask |
5749 | .mask_symbol: |
6092 | .mask_symbol: |
5750 | dec esi |
6093 | dec esi |
5751 | cmp esi, ecx |
6094 | cmp esi, ecx |
5752 | jb .mask_done |
6095 | jb .mask_done |
5753 | mov al, [esi] |
6096 | mov al, [esi] |
5754 | cmp al, '*' |
6097 | cmp al, '*' |
5755 | jz .asterisk |
6098 | jz .asterisk |
5756 | cmp al, '?' |
6099 | cmp al, '?' |
5757 | jz .quest |
6100 | jz .quest |
5758 | cmp al, ']' |
6101 | cmp al, ']' |
5759 | jz .list |
6102 | jz .list |
5760 | dec edi |
6103 | dec edi |
5761 | cmp edi, edx |
6104 | cmp edi, edx |
5762 | jb .done_fail |
6105 | jb .done_fail |
5763 | call match_symbol |
6106 | call match_symbol |
5764 | jz .mask_symbol |
6107 | jz .mask_symbol |
5765 | .done_fail: |
6108 | .done_fail: |
5766 | stc |
6109 | stc |
5767 | popa |
6110 | popa |
5768 | ret |
6111 | ret |
5769 | .mask_done: |
6112 | .mask_done: |
5770 | cmp edi, edx |
6113 | cmp edi, edx |
5771 | jnz .done_fail |
6114 | jnz .done_fail |
5772 | .done_succ: |
6115 | .done_succ: |
5773 | clc |
6116 | clc |
5774 | popa |
6117 | popa |
5775 | ret |
6118 | ret |
5776 | .quest: |
6119 | .quest: |
5777 | dec edi |
6120 | dec edi |
5778 | cmp edi, edx |
6121 | cmp edi, edx |
5779 | jb .done_fail |
6122 | jb .done_fail |
5780 | jmp .mask_symbol |
6123 | jmp .mask_symbol |
5781 | .list: |
6124 | .list: |
5782 | dec edi |
6125 | dec edi |
5783 | cmp edi, edx |
6126 | cmp edi, edx |
5784 | jb .done_fail |
6127 | jb .done_fail |
5785 | .list_check: |
6128 | .list_check: |
5786 | dec esi |
6129 | dec esi |
5787 | cmp esi, ecx |
6130 | cmp esi, ecx |
5788 | jbe .done_fail |
6131 | jbe .done_fail |
5789 | mov al, [esi] |
6132 | mov al, [esi] |
5790 | cmp al, '[' |
6133 | cmp al, '[' |
5791 | jz .done_fail |
6134 | jz .done_fail |
5792 | cmp byte [esi-1], '-' |
6135 | cmp byte [esi-1], '-' |
5793 | jz .range |
6136 | jz .range |
5794 | call match_symbol |
6137 | call match_symbol |
5795 | jnz .list_check |
6138 | jnz .list_check |
5796 | .listok: |
6139 | .listok: |
5797 | @@: |
6140 | @@: |
5798 | dec esi |
6141 | dec esi |
5799 | cmp esi, ecx |
6142 | cmp esi, ecx |
5800 | jb .done_fail |
6143 | jb .done_fail |
5801 | cmp byte [esi], '[' |
6144 | cmp byte [esi], '[' |
5802 | jnz @b |
6145 | jnz @b |
5803 | jmp .mask_symbol |
6146 | jmp .mask_symbol |
5804 | .range: |
6147 | .range: |
5805 | call match_symbol |
6148 | call match_symbol |
5806 | jb @f |
6149 | jb @f |
5807 | mov al, [esi-2] |
6150 | mov al, [esi-2] |
5808 | call match_symbol |
6151 | call match_symbol |
5809 | jbe .listok |
6152 | jbe .listok |
5810 | @@: |
6153 | @@: |
5811 | dec esi |
6154 | dec esi |
5812 | dec esi |
6155 | dec esi |
5813 | jmp .list_check |
6156 | jmp .list_check |
5814 | .asterisk: |
6157 | .asterisk: |
5815 | cmp esi, ecx |
6158 | cmp esi, ecx |
5816 | jz .done_succ |
6159 | jz .done_succ |
5817 | cmp byte [esi-1], '?' |
6160 | cmp byte [esi-1], '?' |
5818 | jnz @f |
6161 | jnz @f |
5819 | cmp edi, edx |
6162 | cmp edi, edx |
5820 | jz .done_fail |
6163 | jz .done_fail |
5821 | dec esi |
6164 | dec esi |
5822 | jmp .asterisk |
6165 | jmp .asterisk |
5823 | @@: |
6166 | @@: |
5824 | cmp byte [esi-1], ']' |
6167 | cmp byte [esi-1], ']' |
5825 | jz .asterisk_common |
6168 | jz .asterisk_common |
5826 | ; the mask is ... |
6169 | ; the mask is ... |
5827 | .asterisk_normal: |
6170 | .asterisk_normal: |
5828 | mov al, [esi-1] |
6171 | mov al, [esi-1] |
5829 | @@: |
6172 | @@: |
5830 | cmp edi, edx |
6173 | cmp edi, edx |
5831 | jz .done_fail |
6174 | jz .done_fail |
5832 | call match_symbol |
6175 | call match_symbol |
5833 | jz @f |
6176 | jz @f |
5834 | dec edi |
6177 | dec edi |
5835 | jmp @b |
6178 | jmp @b |
5836 | @@: |
6179 | @@: |
5837 | dec edi |
6180 | dec edi |
5838 | dec esi |
6181 | dec esi |
5839 | call match_single_mask_rev2 |
6182 | call match_single_mask_rev2 |
5840 | jnc .done_succ |
6183 | jnc .done_succ |
5841 | inc esi |
6184 | inc esi |
5842 | jmp .asterisk_normal |
6185 | jmp .asterisk_normal |
5843 | .asterisk_common: |
6186 | .asterisk_common: |
5844 | push edi |
6187 | push edi |
5845 | @@: |
6188 | @@: |
5846 | call match_single_mask_rev2 |
6189 | call match_single_mask_rev2 |
5847 | jnc @f |
6190 | jnc @f |
5848 | dec edi |
6191 | dec edi |
5849 | cmp edi, edx |
6192 | cmp edi, edx |
5850 | jae @b |
6193 | jae @b |
5851 | pop edi |
6194 | pop edi |
5852 | jmp .done_fail |
6195 | jmp .done_fail |
5853 | @@: |
6196 | @@: |
5854 | pop edi |
6197 | pop edi |
5855 | jmp .done_succ |
6198 | jmp .done_succ |
5856 | end if |
6199 | end if |
5857 | 6200 | ||
5858 | ;tolower: |
6201 | ;tolower: |
5859 | ; push ecx |
6202 | ; push ecx |
5860 | ; movzx ecx, al |
6203 | ; movzx ecx, al |
5861 | ; mov al, [tolower_table+ecx] |
6204 | ; mov al, [tolower_table+ecx] |
5862 | ; pop ecx |
6205 | ; pop ecx |
5863 | ; ret |
6206 | ; ret |
5864 | 6207 | ||
5865 | match_symbol: |
6208 | match_symbol: |
5866 | ; in: al,[edi]=symbols |
6209 | ; in: al,[edi]=symbols |
5867 | ; out: flags as 'cmp al,[edi]' |
6210 | ; out: flags as 'cmp al,[edi]' |
5868 | push eax ecx |
6211 | push eax ecx |
5869 | movzx ecx, al |
6212 | movzx ecx, al |
5870 | mov al, [tolower_table+ecx] |
6213 | mov al, [tolower_table+ecx] |
5871 | movzx ecx, byte [edi] |
6214 | movzx ecx, byte [edi] |
5872 | cmp al, [tolower_table+ecx] |
6215 | cmp al, [tolower_table+ecx] |
5873 | pop ecx eax |
6216 | pop ecx eax |
5874 | ret |
6217 | ret |
5875 | 6218 | ||
5876 | match_mask_rev_lowercase: |
6219 | match_mask_rev_lowercase: |
5877 | ; in: esi->name, edx->end of name, edi->mask |
6220 | ; in: esi->name, edx->end of name, edi->mask |
5878 | ; out: CF clear <=> match |
6221 | ; out: CF clear <=> match |
5879 | pusha |
6222 | pusha |
5880 | xchg esi, edx |
6223 | xchg esi, edx |
5881 | xchg esi, edi |
6224 | xchg esi, edi |
5882 | .main_cycle: |
6225 | .main_cycle: |
5883 | mov ecx, esi |
6226 | mov ecx, esi |
5884 | @@: |
6227 | @@: |
5885 | lodsb |
6228 | lodsb |
5886 | test al, al |
6229 | test al, al |
5887 | jz @f |
6230 | jz @f |
5888 | cmp al, ',' |
6231 | cmp al, ',' |
5889 | jz @f |
6232 | jz @f |
5890 | cmp al, ';' |
6233 | cmp al, ';' |
5891 | jz @f |
6234 | jz @f |
5892 | cmp al, '|' |
6235 | cmp al, '|' |
5893 | jnz @b |
6236 | jnz @b |
5894 | @@: |
6237 | @@: |
5895 | dec esi |
6238 | dec esi |
5896 | mov [esi], byte 0 |
6239 | mov [esi], byte 0 |
5897 | call match_single_mask_rev_lowercase |
6240 | call match_single_mask_rev_lowercase |
5898 | mov [esi], al |
6241 | mov [esi], al |
5899 | inc esi |
6242 | inc esi |
5900 | jnc .found |
6243 | jnc .found |
5901 | cmp al, ',' |
6244 | cmp al, ',' |
5902 | jz .main_cycle |
6245 | jz .main_cycle |
5903 | cmp al, ';' |
6246 | cmp al, ';' |
5904 | jz .main_cycle |
6247 | jz .main_cycle |
5905 | .done_fail: |
6248 | .done_fail: |
5906 | stc |
6249 | stc |
5907 | popa |
6250 | popa |
5908 | ret |
6251 | ret |
5909 | .found: |
6252 | .found: |
5910 | test al, al |
6253 | test al, al |
5911 | jz .done_succ |
6254 | jz .done_succ |
5912 | cmp al, '|' |
6255 | cmp al, '|' |
5913 | jz .test_exclude |
6256 | jz .test_exclude |
5914 | lodsb |
6257 | lodsb |
5915 | jmp .found |
6258 | jmp .found |
5916 | .done_succ: |
6259 | .done_succ: |
5917 | clc |
6260 | clc |
5918 | popa |
6261 | popa |
5919 | ret |
6262 | ret |
5920 | .test_exclude: |
6263 | .test_exclude: |
5921 | mov ecx, esi |
6264 | mov ecx, esi |
5922 | @@: |
6265 | @@: |
5923 | lodsb |
6266 | lodsb |
5924 | test al, al |
6267 | test al, al |
5925 | jz @f |
6268 | jz @f |
5926 | cmp al, ',' |
6269 | cmp al, ',' |
5927 | jz @f |
6270 | jz @f |
5928 | cmp al, ';' |
6271 | cmp al, ';' |
5929 | jnz @b |
6272 | jnz @b |
5930 | @@: |
6273 | @@: |
5931 | dec esi |
6274 | dec esi |
5932 | mov byte [esi], 0 |
6275 | mov byte [esi], 0 |
5933 | call match_single_mask_rev_lowercase |
6276 | call match_single_mask_rev_lowercase |
5934 | mov [esi], al |
6277 | mov [esi], al |
5935 | inc esi |
6278 | inc esi |
5936 | jnc .done_fail |
6279 | jnc .done_fail |
5937 | test al, al |
6280 | test al, al |
5938 | jz .done_succ |
6281 | jz .done_succ |
5939 | jmp .test_exclude |
6282 | jmp .test_exclude |
5940 | 6283 | ||
5941 | match_single_mask_rev_lowercase: |
6284 | match_single_mask_rev_lowercase: |
5942 | ; in: esi->end of mask, ecx->start of mask, edi->end of name, edx->start of name |
6285 | ; in: esi->end of mask, ecx->start of mask, edi->end of name, edx->start of name |
5943 | ; out: CF clear <=> match |
6286 | ; out: CF clear <=> match |
5944 | push esi edi eax |
6287 | push esi edi eax |
5945 | .mask_symbol: |
6288 | .mask_symbol: |
5946 | dec esi |
6289 | dec esi |
5947 | cmp esi, ecx |
6290 | cmp esi, ecx |
5948 | jb .mask_done |
6291 | jb .mask_done |
5949 | mov al, [esi] |
6292 | mov al, [esi] |
5950 | cmp al, '*' |
6293 | cmp al, '*' |
5951 | jz .asterisk |
6294 | jz .asterisk |
5952 | cmp al, '?' |
6295 | cmp al, '?' |
5953 | jz .quest |
6296 | jz .quest |
5954 | cmp al, ']' |
6297 | cmp al, ']' |
5955 | jz .list |
6298 | jz .list |
5956 | dec edi |
6299 | dec edi |
5957 | cmp edi, edx |
6300 | cmp edi, edx |
5958 | jb .done_fail |
6301 | jb .done_fail |
5959 | cmp al, [edi] |
6302 | cmp al, [edi] |
5960 | jz .mask_symbol |
6303 | jz .mask_symbol |
5961 | .done_fail: |
6304 | .done_fail: |
5962 | stc |
6305 | stc |
5963 | pop eax edi esi |
6306 | pop eax edi esi |
5964 | ret |
6307 | ret |
5965 | .mask_done: |
6308 | .mask_done: |
5966 | cmp edi, edx |
6309 | cmp edi, edx |
5967 | jnz .done_fail |
6310 | jnz .done_fail |
5968 | .done_succ: |
6311 | .done_succ: |
5969 | clc |
6312 | clc |
5970 | pop eax edi esi |
6313 | pop eax edi esi |
5971 | ret |
6314 | ret |
5972 | .quest: |
6315 | .quest: |
5973 | dec edi |
6316 | dec edi |
5974 | cmp edi, edx |
6317 | cmp edi, edx |
5975 | jb .done_fail |
6318 | jb .done_fail |
5976 | jmp .mask_symbol |
6319 | jmp .mask_symbol |
5977 | .list: |
6320 | .list: |
5978 | dec edi |
6321 | dec edi |
5979 | cmp edi, edx |
6322 | cmp edi, edx |
5980 | jb .done_fail |
6323 | jb .done_fail |
5981 | .list_check: |
6324 | .list_check: |
5982 | dec esi |
6325 | dec esi |
5983 | cmp esi, ecx |
6326 | cmp esi, ecx |
5984 | jbe .done_fail |
6327 | jbe .done_fail |
5985 | mov al, [esi] |
6328 | mov al, [esi] |
5986 | cmp al, '[' |
6329 | cmp al, '[' |
5987 | jz .done_fail |
6330 | jz .done_fail |
5988 | cmp byte [esi-1], '-' |
6331 | cmp byte [esi-1], '-' |
5989 | jz .range |
6332 | jz .range |
5990 | cmp al, [edi] |
6333 | cmp al, [edi] |
5991 | jnz .list_check |
6334 | jnz .list_check |
5992 | .listok: |
6335 | .listok: |
5993 | @@: |
6336 | @@: |
5994 | dec esi |
6337 | dec esi |
5995 | cmp esi, ecx |
6338 | cmp esi, ecx |
5996 | jb .done_fail |
6339 | jb .done_fail |
5997 | cmp byte [esi], '[' |
6340 | cmp byte [esi], '[' |
5998 | jnz @b |
6341 | jnz @b |
5999 | jmp .mask_symbol |
6342 | jmp .mask_symbol |
6000 | .range: |
6343 | .range: |
6001 | cmp al, [edi] |
6344 | cmp al, [edi] |
6002 | jb @f |
6345 | jb @f |
6003 | mov al, [esi-2] |
6346 | mov al, [esi-2] |
6004 | cmp al, [edi] |
6347 | cmp al, [edi] |
6005 | jbe .listok |
6348 | jbe .listok |
6006 | @@: |
6349 | @@: |
6007 | dec esi |
6350 | dec esi |
6008 | dec esi |
6351 | dec esi |
6009 | jmp .list_check |
6352 | jmp .list_check |
6010 | .asterisk: |
6353 | .asterisk: |
6011 | cmp esi, ecx |
6354 | cmp esi, ecx |
6012 | jz .done_succ |
6355 | jz .done_succ |
6013 | cmp byte [esi-1], '?' |
6356 | cmp byte [esi-1], '?' |
6014 | jnz @f |
6357 | jnz @f |
6015 | cmp edi, edx |
6358 | cmp edi, edx |
6016 | jz .done_fail |
6359 | jz .done_fail |
6017 | dec esi |
6360 | dec esi |
6018 | jmp .asterisk |
6361 | jmp .asterisk |
6019 | @@: |
6362 | @@: |
6020 | cmp byte [esi-1], ']' |
6363 | cmp byte [esi-1], ']' |
6021 | jz .asterisk_common |
6364 | jz .asterisk_common |
6022 | ; the mask is ... |
6365 | ; the mask is ... |
6023 | .asterisk_normal: |
6366 | .asterisk_normal: |
6024 | mov al, [esi-1] |
6367 | mov al, [esi-1] |
6025 | @@: |
6368 | @@: |
6026 | cmp edi, edx |
6369 | cmp edi, edx |
6027 | jz .done_fail |
6370 | jz .done_fail |
6028 | cmp al, [edi] |
6371 | cmp al, [edi] |
6029 | jz @f |
6372 | jz @f |
6030 | dec edi |
6373 | dec edi |
6031 | jmp @b |
6374 | jmp @b |
6032 | @@: |
6375 | @@: |
6033 | dec edi |
6376 | dec edi |
6034 | dec esi |
6377 | dec esi |
6035 | call match_single_mask_rev_lowercase |
6378 | call match_single_mask_rev_lowercase |
6036 | jnc .done_succ |
6379 | jnc .done_succ |
6037 | inc esi |
6380 | inc esi |
6038 | jmp .asterisk_normal |
6381 | jmp .asterisk_normal |
6039 | .asterisk_common: |
6382 | .asterisk_common: |
6040 | push edi |
6383 | push edi |
6041 | @@: |
6384 | @@: |
6042 | call match_single_mask_rev_lowercase |
6385 | call match_single_mask_rev_lowercase |
6043 | jnc @f |
6386 | jnc @f |
6044 | dec edi |
6387 | dec edi |
6045 | cmp edi, edx |
6388 | cmp edi, edx |
6046 | jae @b |
6389 | jae @b |
6047 | pop edi |
6390 | pop edi |
6048 | jmp .done_fail |
6391 | jmp .done_fail |
6049 | @@: |
6392 | @@: |
6050 | pop edi |
6393 | pop edi |
6051 | jmp .done_succ |
6394 | jmp .done_succ |
6052 | 6395 | ||
6053 | find_extension: |
6396 | find_extension: |
6054 | lea esi, [ecx+40] |
6397 | lea esi, [ecx+40] |
6055 | push esi |
6398 | push esi |
6056 | @@: |
6399 | @@: |
6057 | lodsb |
6400 | lodsb |
6058 | test al, al |
6401 | test al, al |
6059 | jnz @b |
6402 | jnz @b |
6060 | @@: |
6403 | @@: |
6061 | dec esi |
6404 | dec esi |
6062 | cmp byte [esi], '.' |
6405 | cmp byte [esi], '.' |
6063 | jz .found_ext |
6406 | jz .found_ext |
6064 | cmp esi, [esp] |
6407 | cmp esi, [esp] |
6065 | ja @b |
6408 | ja @b |
6066 | ; empty extension |
6409 | ; empty extension |
6067 | pop esi |
6410 | pop esi |
6068 | stc |
6411 | stc |
6069 | ret |
6412 | ret |
6070 | .found_ext: |
6413 | .found_ext: |
6071 | inc esi |
6414 | inc esi |
6072 | mov edi, [associations] |
6415 | mov edi, [associations] |
6073 | test edi, edi |
6416 | test edi, edi |
6074 | jz .notfound |
6417 | jz .notfound |
6075 | .find_loop: |
6418 | .find_loop: |
6076 | push esi edi |
6419 | push esi edi |
6077 | call strcmpi |
6420 | call strcmpi |
6078 | pop edi esi |
6421 | pop edi esi |
6079 | pushf |
6422 | pushf |
6080 | @@: |
6423 | @@: |
6081 | inc edi |
6424 | inc edi |
6082 | cmp byte [edi-1], 0 |
6425 | cmp byte [edi-1], 0 |
6083 | jnz @b |
6426 | jnz @b |
6084 | popf |
6427 | popf |
6085 | jz .found |
6428 | jz .found |
6086 | @@: |
6429 | @@: |
6087 | inc edi |
6430 | inc edi |
6088 | cmp byte [edi-1], 0 |
6431 | cmp byte [edi-1], 0 |
6089 | jnz @b |
6432 | jnz @b |
6090 | cmp byte [edi], 0 |
6433 | cmp byte [edi], 0 |
6091 | jnz .find_loop |
6434 | jnz .find_loop |
6092 | .notfound: |
6435 | .notfound: |
6093 | ; unknown extension |
6436 | ; unknown extension |
6094 | stc |
6437 | stc |
6095 | .found: |
6438 | .found: |
6096 | pop esi |
6439 | pop esi |
6097 | ret |
6440 | ret |
6098 | 6441 | ||
6099 | header db 'Kolibri Far ',version,0 |
6442 | header db 'Kolibri Far ',version,0 |
6100 | 6443 | ||
6101 | nomem_draw db 'No memory for redraw.',0 |
6444 | nomem_draw db 'No memory for redraw.',0 |
6102 | .size = $ - nomem_draw |
6445 | .size = $ - nomem_draw |
6103 | 6446 | ||
6104 | def_left_dir db '/rd/1',0 |
6447 | def_left_dir db '/rd/1',0 |
6105 | def_right_dir db '/hd0/1',0 |
6448 | def_right_dir db '/hd0/1',0 |
6106 | 6449 | ||
6107 | bSilentFolderMode db 1 |
6450 | bSilentFolderMode db 1 |
- | 6451 | ||
- | 6452 | bQuickSearchMode db 0 |
|
- | 6453 | bDisplayQuickSearch db 0 |
|
6108 | 6454 | ||
6109 | if lang eq ru |
6455 | if lang eq ru |
6110 | aFolder db ' ¯ª ' |
6456 | aFolder db ' ¯ª ' |
6111 | .size = $-aFolder |
6457 | .size = $-aFolder |
6112 | aUp db '¢¥àå' |
6458 | aUp db '¢¥àå' |
6113 | .size = $-aUp |
6459 | .size = $-aUp |
6114 | aDrive db '¨áª',0 |
6460 | aDrive db '¨áª',0 |
6115 | aScreens db 'ªà ë',0 |
6461 | aScreens db 'ªà ë',0 |
6116 | else |
6462 | else |
6117 | aFolder db 'Folder' |
6463 | aFolder db 'Folder' |
6118 | .size = $-aFolder |
6464 | .size = $-aFolder |
6119 | aUp db 'Up' |
6465 | aUp db 'Up' |
6120 | .size = $-aUp |
6466 | .size = $-aUp |
6121 | aDrive db 'Drive',0 |
6467 | aDrive db 'Drive',0 |
6122 | aScreens db 'Screens',0 |
6468 | aScreens db 'Screens',0 |
6123 | end if |
6469 | end if |
6124 | 6470 | ||
6125 | align 4 |
6471 | align 4 |
6126 | _10d dd 10 |
6472 | _10d dd 10 |
6127 | _100d dd 100 |
6473 | _100d dd 100 |
6128 | muldiv10 dd 429496729 |
6474 | muldiv10 dd 429496729 |
6129 | _10 db 10 |
6475 | _10 db 10 |
6130 | _100 db 100 |
6476 | _100 db 100 |
6131 | 6477 | ||
6132 | fpu_cw dw 000011100111111b |
6478 | fpu_cw dw 000011100111111b |
6133 | 6479 | ||
6134 | keybar_panels: |
6480 | keybar_panels: |
6135 | if lang eq ru |
6481 | if lang eq ru |
6136 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
6482 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
6137 | db '®¬®éì' |
6483 | db '®¬®éì' |
6138 | db '®«ì§' |
6484 | db '®«ì§' |
6139 | db 'à®á¬ ' |
6485 | db 'à®á¬ ' |
6140 | db '¥¤ ªâ' |
6486 | db '¥¤ ªâ' |
6141 | db '®¯¨à ' |
6487 | db '®¯¨à ' |
6142 | db '¥à¥ ' |
6488 | db '¥à¥ ' |
6143 | db ' ¯ª ' |
6489 | db ' ¯ª ' |
6144 | db '¤ «¥' |
6490 | db '¤ «¥' |
6145 | db '®ä' |
6491 | db '®ä' |
6146 | db 'ë室 ' |
6492 | db 'ë室 ' |
6147 | db '®¤ã«¨' |
6493 | db '®¤ã«¨' |
6148 | db 'ªà ë' |
6494 | db 'ªà ë' |
6149 | ; Shift |
6495 | ; Shift |
6150 | db '®¡ ¢«' |
6496 | db '®¡ ¢«' |
6151 | db ' ᯠª' |
6497 | db ' ᯠª' |
6152 | db 'à宬' |
6498 | db 'à宬' |
6153 | db '¥¤ ª.' |
6499 | db '¥¤ ª.' |
6154 | db '®¯¨à ' |
6500 | db '®¯¨à ' |
6155 | db '¥à¥¨¬' |
6501 | db '¥à¥¨¬' |
6156 | db ' ' |
6502 | db ' ' |
6157 | db '¤ «¥' |
6503 | db '¤ «¥' |
6158 | db '®åà ' |
6504 | db '®åà ' |
6159 | db '®á«¤' |
6505 | db '®á«¤' |
6160 | db 'à㯯ë' |
6506 | db 'à㯯ë' |
6161 | db 'ë¡à ' |
6507 | db 'ë¡à ' |
6162 | ; Ctrl |
6508 | ; Ctrl |
6163 | db '¥¢ ï ' |
6509 | db '¥¢ ï ' |
6164 | db 'à ¢ ï' |
6510 | db 'à ¢ ï' |
6165 | db '• ' |
6511 | db '• ' |
6166 | db ' áè¨à' |
6512 | db ' áè¨à' |
6167 | db '®¤¨ä ' |
6513 | db '®¤¨ä ' |
6168 | db ' §¬¥à' |
6514 | db ' §¬¥à' |
6169 | db '¥á®àâ' |
6515 | db '¥á®àâ' |
6170 | db '®§¤ ' |
6516 | db '®§¤ ' |
6171 | db '®áâã¯' |
6517 | db '®áâã¯' |
6172 | db '¯¨á ' |
6518 | db '¯¨á ' |
6173 | db '« ¤¥«' |
6519 | db '« ¤¥«' |
6174 | db '®àâ ' |
6520 | db '®àâ ' |
6175 | ; Ctrl+Shift |
6521 | ; Ctrl+Shift |
6176 | db ' ' |
6522 | db ' ' |
6177 | db ' ' |
6523 | db ' ' |
6178 | db 'à®á¬ ' |
6524 | db 'à®á¬ ' |
6179 | db '¥¤ ªâ' |
6525 | db '¥¤ ªâ' |
6180 | db ' ' |
6526 | db ' ' |
6181 | db ' ' |
6527 | db ' ' |
6182 | db ' ' |
6528 | db ' ' |
6183 | db ' ' |
6529 | db ' ' |
6184 | db ' ' |
6530 | db ' ' |
6185 | db ' ' |
6531 | db ' ' |
6186 | db ' ' |
6532 | db ' ' |
6187 | db ' ' |
6533 | db ' ' |
6188 | ; Alt |
6534 | ; Alt |
6189 | db '¥¢ ï ' |
6535 | db '¥¢ ï ' |
6190 | db 'à ¢ ï' |
6536 | db 'à ¢ ï' |
6191 | db '¬®âà.' |
6537 | db '¬®âà.' |
6192 | db '¥¤ ª.' |
6538 | db '¥¤ ª.' |
6193 | db '¥ç âì' |
6539 | db '¥ç âì' |
6194 | db '¢ï§ì ' |
6540 | db '¢ï§ì ' |
6195 | db '᪠âì' |
6541 | db '᪠âì' |
6196 | db 'áâ®à ' |
6542 | db 'áâ®à ' |
6197 | db '¨¤¥® ' |
6543 | db '¨¤¥® ' |
6198 | db '¥à¥¢®' |
6544 | db '¥à¥¢®' |
6199 | db 'áâà ' |
6545 | db 'áâà ' |
6200 | db 'áâ ¯' |
6546 | db 'áâ ¯' |
6201 | ; Alt+Shift |
6547 | ; Alt+Shift |
6202 | db ' ' |
6548 | db ' ' |
6203 | db ' ' |
6549 | db ' ' |
6204 | db ' ' |
6550 | db ' ' |
6205 | db ' ' |
6551 | db ' ' |
6206 | db ' ' |
6552 | db ' ' |
6207 | db ' ' |
6553 | db ' ' |
6208 | db ' ' |
6554 | db ' ' |
6209 | db ' ' |
6555 | db ' ' |
6210 | db '®ä«' |
6556 | db '®ä«' |
6211 | db ' ' |
6557 | db ' ' |
6212 | db ' ' |
6558 | db ' ' |
6213 | db ' ' |
6559 | db ' ' |
6214 | ; Alt+Ctrl |
6560 | ; Alt+Ctrl |
6215 | times 12 db ' ' |
6561 | times 12 db ' ' |
6216 | ; Alt+Ctrl+Shift |
6562 | ; Alt+Ctrl+Shift |
6217 | times 12 db ' ' |
6563 | times 12 db ' ' |
6218 | else |
6564 | else |
6219 | ; No modificators |
6565 | ; No modificators |
6220 | db 'Help ' |
6566 | db 'Help ' |
6221 | db 'UserMn' |
6567 | db 'UserMn' |
6222 | db 'View ' |
6568 | db 'View ' |
6223 | db 'Edit ' |
6569 | db 'Edit ' |
6224 | db 'Copy ' |
6570 | db 'Copy ' |
6225 | db 'RenMov' |
6571 | db 'RenMov' |
6226 | db 'MkFold' |
6572 | db 'MkFold' |
6227 | db 'Delete' |
6573 | db 'Delete' |
6228 | db 'ConfMn' |
6574 | db 'ConfMn' |
6229 | db 'Quit ' |
6575 | db 'Quit ' |
6230 | db 'Plugin' |
6576 | db 'Plugin' |
6231 | db 'Screen' |
6577 | db 'Screen' |
6232 | ; Shift |
6578 | ; Shift |
6233 | db 'Add ' |
6579 | db 'Add ' |
6234 | db 'Extrct' |
6580 | db 'Extrct' |
6235 | db 'ArcCmd' |
6581 | db 'ArcCmd' |
6236 | db 'Edit..' |
6582 | db 'Edit..' |
6237 | db 'Copy ' |
6583 | db 'Copy ' |
6238 | db 'Rename' |
6584 | db 'Rename' |
6239 | db ' ' |
6585 | db ' ' |
6240 | db 'Delete' |
6586 | db 'Delete' |
6241 | db 'Save ' |
6587 | db 'Save ' |
6242 | db 'Last ' |
6588 | db 'Last ' |
6243 | db 'Group ' |
6589 | db 'Group ' |
6244 | db 'SelUp ' |
6590 | db 'SelUp ' |
6245 | ; Ctrl |
6591 | ; Ctrl |
6246 | db 'Left ' |
6592 | db 'Left ' |
6247 | db 'Right ' |
6593 | db 'Right ' |
6248 | db 'Name ' |
6594 | db 'Name ' |
6249 | db 'Extens' |
6595 | db 'Extens' |
6250 | db 'Modifn' |
6596 | db 'Modifn' |
6251 | db 'Size ' |
6597 | db 'Size ' |
6252 | db 'Unsort' |
6598 | db 'Unsort' |
6253 | db 'Creatn' |
6599 | db 'Creatn' |
6254 | db 'Access' |
6600 | db 'Access' |
6255 | db 'Descr ' |
6601 | db 'Descr ' |
6256 | db 'Owner ' |
6602 | db 'Owner ' |
6257 | db 'Sort ' |
6603 | db 'Sort ' |
6258 | ; Ctrl+Shift |
6604 | ; Ctrl+Shift |
6259 | db ' ' |
6605 | db ' ' |
6260 | db ' ' |
6606 | db ' ' |
6261 | db 'View ' |
6607 | db 'View ' |
6262 | db 'Edit ' |
6608 | db 'Edit ' |
6263 | db ' ' |
6609 | db ' ' |
6264 | db ' ' |
6610 | db ' ' |
6265 | db ' ' |
6611 | db ' ' |
6266 | db ' ' |
6612 | db ' ' |
6267 | db ' ' |
6613 | db ' ' |
6268 | db ' ' |
6614 | db ' ' |
6269 | db ' ' |
6615 | db ' ' |
6270 | db ' ' |
6616 | db ' ' |
6271 | ; Alt |
6617 | ; Alt |
6272 | db 'Left ' |
6618 | db 'Left ' |
6273 | db 'Right ' |
6619 | db 'Right ' |
6274 | db 'View..' |
6620 | db 'View..' |
6275 | db 'Edit..' |
6621 | db 'Edit..' |
6276 | db 'Print ' |
6622 | db 'Print ' |
6277 | db 'MkLink' |
6623 | db 'MkLink' |
6278 | db 'Find ' |
6624 | db 'Find ' |
6279 | db 'Histry' |
6625 | db 'Histry' |
6280 | db 'Video ' |
6626 | db 'Video ' |
6281 | db 'Tree ' |
6627 | db 'Tree ' |
6282 | db 'ViewHs' |
6628 | db 'ViewHs' |
6283 | db 'FoldHs' |
6629 | db 'FoldHs' |
6284 | ; Alt+Shift |
6630 | ; Alt+Shift |
6285 | db ' ' |
6631 | db ' ' |
6286 | db ' ' |
6632 | db ' ' |
6287 | db ' ' |
6633 | db ' ' |
6288 | db ' ' |
6634 | db ' ' |
6289 | db ' ' |
6635 | db ' ' |
6290 | db ' ' |
6636 | db ' ' |
6291 | db ' ' |
6637 | db ' ' |
6292 | db ' ' |
6638 | db ' ' |
6293 | db 'ConfPl' |
6639 | db 'ConfPl' |
6294 | db ' ' |
6640 | db ' ' |
6295 | db ' ' |
6641 | db ' ' |
6296 | db ' ' |
6642 | db ' ' |
6297 | ; Alt+Ctrl |
6643 | ; Alt+Ctrl |
6298 | times 12 db ' ' |
6644 | times 12 db ' ' |
6299 | ; Alt+Ctrl+Shift |
6645 | ; Alt+Ctrl+Shift |
6300 | times 12 db ' ' |
6646 | times 12 db ' ' |
6301 | end if |
6647 | end if |
6302 | 6648 | ||
6303 | keybar_viewer: |
6649 | keybar_viewer: |
6304 | if lang eq ru |
6650 | if lang eq ru |
6305 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
6651 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
6306 | db '®¬®éì' |
6652 | db '®¬®éì' |
6307 | db ' §¢¥à' |
6653 | db ' §¢¥à' |
6308 | db 'ë室 ' |
6654 | db 'ë室 ' |
6309 | db '®¤ ' |
6655 | db '®¤ ' |
6310 | db ' ' |
6656 | db ' ' |
6311 | db '¥¤ ªâ' |
6657 | db '¥¤ ªâ' |
6312 | db '®¨áª ' |
6658 | db '®¨áª ' |
6313 | keybar_cp: |
6659 | keybar_cp: |
6314 | db 'cp1251' |
6660 | db 'cp1251' |
6315 | db ' ' |
6661 | db ' ' |
6316 | db 'ë室 ' |
6662 | db 'ë室 ' |
6317 | db '®¤ã«¨' |
6663 | db '®¤ã«¨' |
6318 | db 'ªà ë' |
6664 | db 'ªà ë' |
6319 | ; Shift |
6665 | ; Shift |
6320 | db ' ' |
6666 | db ' ' |
6321 | db '«®¢ ' |
6667 | db '«®¢ ' |
6322 | db ' ' |
6668 | db ' ' |
6323 | db ' ' |
6669 | db ' ' |
6324 | db ' ' |
6670 | db ' ' |
6325 | db ' ' |
6671 | db ' ' |
6326 | db ' «ìè¥' |
6672 | db ' «ìè¥' |
6327 | db ' ¡«¨æ' |
6673 | db ' ¡«¨æ' |
6328 | db ' ' |
6674 | db ' ' |
6329 | db ' ' |
6675 | db ' ' |
6330 | db ' ' |
6676 | db ' ' |
6331 | db ' ' |
6677 | db ' ' |
6332 | ; Ctrl |
6678 | ; Ctrl |
6333 | db ' ' |
6679 | db ' ' |
6334 | db ' ' |
6680 | db ' ' |
6335 | db ' ' |
6681 | db ' ' |
6336 | db ' ' |
6682 | db ' ' |
6337 | db ' ' |
6683 | db ' ' |
6338 | db ' ' |
6684 | db ' ' |
6339 | db ' ' |
6685 | db ' ' |
6340 | db ' ' |
6686 | db ' ' |
6341 | db ' ' |
6687 | db ' ' |
6342 | db '®§¨æ ' |
6688 | db '®§¨æ ' |
6343 | db ' ' |
6689 | db ' ' |
6344 | db ' ' |
6690 | db ' ' |
6345 | ; Ctrl+Shift |
6691 | ; Ctrl+Shift |
6346 | db ' ' |
6692 | db ' ' |
6347 | db ' ' |
6693 | db ' ' |
6348 | db ' ' |
6694 | db ' ' |
6349 | db ' ' |
6695 | db ' ' |
6350 | db ' ' |
6696 | db ' ' |
6351 | db ' ' |
6697 | db ' ' |
6352 | db ' ' |
6698 | db ' ' |
6353 | db ' ' |
6699 | db ' ' |
6354 | db ' ' |
6700 | db ' ' |
6355 | db ' ' |
6701 | db ' ' |
6356 | db ' ' |
6702 | db ' ' |
6357 | db ' ' |
6703 | db ' ' |
6358 | ; Alt |
6704 | ; Alt |
6359 | db ' ' |
6705 | db ' ' |
6360 | db ' ' |
6706 | db ' ' |
6361 | db ' ' |
6707 | db ' ' |
6362 | db ' ' |
6708 | db ' ' |
6363 | db '¥ç âì' |
6709 | db '¥ç âì' |
6364 | db ' ' |
6710 | db ' ' |
6365 | db ' § ¤ ' |
6711 | db ' § ¤ ' |
6366 | db '¥à¥©â' |
6712 | db '¥à¥©â' |
6367 | db '¨¤¥® ' |
6713 | db '¨¤¥® ' |
6368 | db ' ' |
6714 | db ' ' |
6369 | db 'áâà ' |
6715 | db 'áâà ' |
6370 | db ' ' |
6716 | db ' ' |
6371 | ; Alt+Shift |
6717 | ; Alt+Shift |
6372 | db ' ' |
6718 | db ' ' |
6373 | db ' ' |
6719 | db ' ' |
6374 | db ' ' |
6720 | db ' ' |
6375 | db ' ' |
6721 | db ' ' |
6376 | db ' ' |
6722 | db ' ' |
6377 | db ' ' |
6723 | db ' ' |
6378 | db ' ' |
6724 | db ' ' |
6379 | db ' ' |
6725 | db ' ' |
6380 | db '®ä¨£' |
6726 | db '®ä¨£' |
6381 | db ' ' |
6727 | db ' ' |
6382 | db ' ' |
6728 | db ' ' |
6383 | db ' ' |
6729 | db ' ' |
6384 | ; Alt+Ctrl |
6730 | ; Alt+Ctrl |
6385 | times 12 db ' ' |
6731 | times 12 db ' ' |
6386 | ; Alt+Ctrl+Shift |
6732 | ; Alt+Ctrl+Shift |
6387 | times 12 db ' ' |
6733 | times 12 db ' ' |
6388 | else |
6734 | else |
6389 | ; No modificators |
6735 | ; No modificators |
6390 | db 'Help ' |
6736 | db 'Help ' |
6391 | db 'Unwrap' |
6737 | db 'Unwrap' |
6392 | db 'Quit ' |
6738 | db 'Quit ' |
6393 | db 'Hex ' |
6739 | db 'Hex ' |
6394 | db ' ' |
6740 | db ' ' |
6395 | db 'Edit ' |
6741 | db 'Edit ' |
6396 | db 'Search' |
6742 | db 'Search' |
6397 | keybar_cp: |
6743 | keybar_cp: |
6398 | db 'cp1251' |
6744 | db 'cp1251' |
6399 | db ' ' |
6745 | db ' ' |
6400 | db 'Quit ' |
6746 | db 'Quit ' |
6401 | db 'Plugin' |
6747 | db 'Plugin' |
6402 | db 'Screen' |
6748 | db 'Screen' |
6403 | ; Shift |
6749 | ; Shift |
6404 | db ' ' |
6750 | db ' ' |
6405 | db 'WWrap ' |
6751 | db 'WWrap ' |
6406 | db ' ' |
6752 | db ' ' |
6407 | db ' ' |
6753 | db ' ' |
6408 | db ' ' |
6754 | db ' ' |
6409 | db ' ' |
6755 | db ' ' |
6410 | db 'Next ' |
6756 | db 'Next ' |
6411 | db 'Table ' |
6757 | db 'Table ' |
6412 | db ' ' |
6758 | db ' ' |
6413 | db ' ' |
6759 | db ' ' |
6414 | db ' ' |
6760 | db ' ' |
6415 | db ' ' |
6761 | db ' ' |
6416 | ; Ctrl |
6762 | ; Ctrl |
6417 | db ' ' |
6763 | db ' ' |
6418 | db ' ' |
6764 | db ' ' |
6419 | db ' ' |
6765 | db ' ' |
6420 | db ' ' |
6766 | db ' ' |
6421 | db ' ' |
6767 | db ' ' |
6422 | db ' ' |
6768 | db ' ' |
6423 | db ' ' |
6769 | db ' ' |
6424 | db ' ' |
6770 | db ' ' |
6425 | db ' ' |
6771 | db ' ' |
6426 | db 'GoFile' |
6772 | db 'GoFile' |
6427 | db ' ' |
6773 | db ' ' |
6428 | db ' ' |
6774 | db ' ' |
6429 | ; Ctrl+Shift |
6775 | ; Ctrl+Shift |
6430 | db ' ' |
6776 | db ' ' |
6431 | db ' ' |
6777 | db ' ' |
6432 | db ' ' |
6778 | db ' ' |
6433 | db ' ' |
6779 | db ' ' |
6434 | db ' ' |
6780 | db ' ' |
6435 | db ' ' |
6781 | db ' ' |
6436 | db ' ' |
6782 | db ' ' |
6437 | db ' ' |
6783 | db ' ' |
6438 | db ' ' |
6784 | db ' ' |
6439 | db ' ' |
6785 | db ' ' |
6440 | db ' ' |
6786 | db ' ' |
6441 | db ' ' |
6787 | db ' ' |
6442 | ; Alt |
6788 | ; Alt |
6443 | db ' ' |
6789 | db ' ' |
6444 | db ' ' |
6790 | db ' ' |
6445 | db ' ' |
6791 | db ' ' |
6446 | db ' ' |
6792 | db ' ' |
6447 | db 'Print ' |
6793 | db 'Print ' |
6448 | db ' ' |
6794 | db ' ' |
6449 | db 'Prev ' |
6795 | db 'Prev ' |
6450 | db 'Goto ' |
6796 | db 'Goto ' |
6451 | db 'Video ' |
6797 | db 'Video ' |
6452 | db ' ' |
6798 | db ' ' |
6453 | db 'ViewHs' |
6799 | db 'ViewHs' |
6454 | db ' ' |
6800 | db ' ' |
6455 | ; Alt+Shift |
6801 | ; Alt+Shift |
6456 | db ' ' |
6802 | db ' ' |
6457 | db ' ' |
6803 | db ' ' |
6458 | db ' ' |
6804 | db ' ' |
6459 | db ' ' |
6805 | db ' ' |
6460 | db ' ' |
6806 | db ' ' |
6461 | db ' ' |
6807 | db ' ' |
6462 | db ' ' |
6808 | db ' ' |
6463 | db ' ' |
6809 | db ' ' |
6464 | db 'Config' |
6810 | db 'Config' |
6465 | db ' ' |
6811 | db ' ' |
6466 | db ' ' |
6812 | db ' ' |
6467 | db ' ' |
6813 | db ' ' |
6468 | ; Alt+Ctrl |
6814 | ; Alt+Ctrl |
6469 | times 12 db ' ' |
6815 | times 12 db ' ' |
6470 | ; Alt+Ctrl+Shift |
6816 | ; Alt+Ctrl+Shift |
6471 | times 12 db ' ' |
6817 | times 12 db ' ' |
6472 | end if |
6818 | end if |
- | 6819 | ||
- | 6820 | keybar_editor: |
|
- | 6821 | if lang eq ru |
|
- | 6822 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
|
- | 6823 | db '®¬®éì' |
|
- | 6824 | db '®åà ' |
|
- | 6825 | db ' ' |
|
- | 6826 | db ' ' |
|
- | 6827 | db ' ' |
|
- | 6828 | db 'à®á¬ ' |
|
- | 6829 | db '®¨áª ' |
|
- | 6830 | keybar_cp2: |
|
- | 6831 | db 'cp1251' |
|
- | 6832 | db ' ' |
|
- | 6833 | db 'ë室 ' |
|
- | 6834 | db '®¤ã«¨' |
|
- | 6835 | db 'ªà ë' |
|
- | 6836 | ; Shift |
|
- | 6837 | db ' ' |
|
- | 6838 | db '®åà.¢' |
|
- | 6839 | db ' ' |
|
- | 6840 | db '¥¤ ª.' |
|
- | 6841 | db ' ' |
|
- | 6842 | db ' ' |
|
- | 6843 | db ' «ìè¥' |
|
- | 6844 | db ' ¡«¨æ' |
|
- | 6845 | db ' ' |
|
- | 6846 | db 'åàëå' |
|
- | 6847 | db ' ' |
|
- | 6848 | db ' ' |
|
- | 6849 | ; Ctrl |
|
- | 6850 | db ' ' |
|
- | 6851 | db ' ' |
|
- | 6852 | db ' ' |
|
- | 6853 | db ' ' |
|
- | 6854 | db ' ' |
|
- | 6855 | db ' ' |
|
- | 6856 | db ' ´ ' |
|
- | 6857 | db ' ' |
|
- | 6858 | db ' ' |
|
- | 6859 | db '®§¨æ ' |
|
- | 6860 | db ' ' |
|
- | 6861 | db ' ' |
|
- | 6862 | ; Ctrl+Shift |
|
- | 6863 | db ' ' |
|
- | 6864 | db ' ' |
|
- | 6865 | db ' ' |
|
- | 6866 | db ' ' |
|
- | 6867 | db ' ' |
|
- | 6868 | db ' ' |
|
- | 6869 | db ' ' |
|
- | 6870 | db ' ' |
|
- | 6871 | db ' ' |
|
- | 6872 | db ' ' |
|
- | 6873 | db ' ' |
|
- | 6874 | db ' ' |
|
- | 6875 | ; Alt |
|
- | 6876 | db ' ' |
|
- | 6877 | db ' ' |
|
- | 6878 | db ' ' |
|
- | 6879 | db ' ' |
|
- | 6880 | db '¥ç âì' |
|
- | 6881 | db ' ' |
|
- | 6882 | db ' ' |
|
- | 6883 | db 'âப ' |
|
- | 6884 | db '¨¤¥® ' |
|
- | 6885 | db ' ' |
|
- | 6886 | db 'áâà ' |
|
- | 6887 | db ' ' |
|
- | 6888 | ; Alt+Shift |
|
- | 6889 | db ' ' |
|
- | 6890 | db ' ' |
|
- | 6891 | db ' ' |
|
- | 6892 | db ' ' |
|
- | 6893 | db ' ' |
|
- | 6894 | db ' ' |
|
- | 6895 | db ' ' |
|
- | 6896 | db ' ' |
|
- | 6897 | db '®ä¨£' |
|
- | 6898 | db ' ' |
|
- | 6899 | db ' ' |
|
- | 6900 | db ' ' |
|
- | 6901 | ; Alt+Ctrl |
|
- | 6902 | times 12 db ' ' |
|
- | 6903 | ; Alt+Ctrl+Shift |
|
- | 6904 | times 12 db ' ' |
|
- | 6905 | else |
|
- | 6906 | ; No modificators |
|
- | 6907 | db 'Help ' |
|
- | 6908 | db 'Save ' |
|
- | 6909 | db ' ' |
|
- | 6910 | db ' ' |
|
- | 6911 | db ' ' |
|
- | 6912 | db 'View ' |
|
- | 6913 | db 'Search' |
|
- | 6914 | keybar_cp2: |
|
- | 6915 | db 'cp1251' |
|
- | 6916 | db ' ' |
|
- | 6917 | db 'Quit ' |
|
- | 6918 | db 'Plugin' |
|
- | 6919 | db 'Screen' |
|
- | 6920 | ; Shift |
|
- | 6921 | db ' ' |
|
- | 6922 | db 'SaveAs' |
|
- | 6923 | db ' ' |
|
- | 6924 | db 'Edit..' |
|
- | 6925 | db ' ' |
|
- | 6926 | db ' ' |
|
- | 6927 | db 'Next ' |
|
- | 6928 | db 'Table ' |
|
- | 6929 | db ' ' |
|
- | 6930 | db 'SaveQ ' |
|
- | 6931 | db ' ' |
|
- | 6932 | db ' ' |
|
- | 6933 | ; Ctrl |
|
- | 6934 | db ' ' |
|
- | 6935 | db ' ' |
|
- | 6936 | db ' ' |
|
- | 6937 | db ' ' |
|
- | 6938 | db ' ' |
|
- | 6939 | db ' ' |
|
- | 6940 | db 'Replac' |
|
- | 6941 | db ' ' |
|
- | 6942 | db ' ' |
|
- | 6943 | db 'GoFile' |
|
- | 6944 | db ' ' |
|
- | 6945 | db ' ' |
|
- | 6946 | ; Ctrl+Shift |
|
- | 6947 | db ' ' |
|
- | 6948 | db ' ' |
|
- | 6949 | db ' ' |
|
- | 6950 | db ' ' |
|
- | 6951 | db ' ' |
|
- | 6952 | db ' ' |
|
- | 6953 | db ' ' |
|
- | 6954 | db ' ' |
|
- | 6955 | db ' ' |
|
- | 6956 | db ' ' |
|
- | 6957 | db ' ' |
|
- | 6958 | db ' ' |
|
- | 6959 | ; Alt |
|
- | 6960 | db ' ' |
|
- | 6961 | db ' ' |
|
- | 6962 | db ' ' |
|
- | 6963 | db ' ' |
|
- | 6964 | db 'Print ' |
|
- | 6965 | db ' ' |
|
- | 6966 | db ' ' |
|
- | 6967 | db 'Goto ' |
|
- | 6968 | db 'Video ' |
|
- | 6969 | db ' ' |
|
- | 6970 | db 'ViewHs' |
|
- | 6971 | db ' ' |
|
- | 6972 | ; Alt+Shift |
|
- | 6973 | db ' ' |
|
- | 6974 | db ' ' |
|
- | 6975 | db ' ' |
|
- | 6976 | db ' ' |
|
- | 6977 | db ' ' |
|
- | 6978 | db ' ' |
|
- | 6979 | db ' ' |
|
- | 6980 | db ' ' |
|
- | 6981 | db 'Config' |
|
- | 6982 | db ' ' |
|
- | 6983 | db ' ' |
|
- | 6984 | db ' ' |
|
- | 6985 | ; Alt+Ctrl |
|
- | 6986 | times 12 db ' ' |
|
- | 6987 | ; Alt+Ctrl+Shift |
|
- | 6988 | times 12 db ' ' |
|
- | 6989 | end if |
|
6473 | 6990 | ||
6474 | align 4 |
6991 | align 4 |
6475 | cur_width dd 80 |
6992 | cur_width dd 80 |
6476 | cur_height dd 25 |
6993 | cur_height dd 25 |
6477 | saved_width dd -1 |
6994 | saved_width dd -1 |
6478 | saved_height dd -1 |
6995 | saved_height dd -1 |
6479 | fill_width dd 0 |
6996 | fill_width dd 0 |
6480 | fill_height dd 0 |
6997 | fill_height dd 0 |
6481 | max_width = 256 |
6998 | max_width = 256 |
6482 | max_height = 256 |
6999 | max_height = 256 |
6483 | console_data_ptr dd 0 |
7000 | console_data_ptr dd 0 |
6484 | 7001 | ||
6485 | cursor_x dd -1 |
7002 | cursor_x dd -1 |
6486 | cursor_y dd -1 |
7003 | cursor_y dd -1 |
- | 7004 | cursor_size dd cursor_normal_size |
|
6487 | cur_cursor_pos dd -1 |
7005 | cur_cursor_pos dd -1 |
6488 | old_cursor_pos dd -1 |
7006 | old_cursor_pos dd -1 |
6489 | 7007 | ||
6490 | active_panel dd panel1_data |
7008 | active_panel dd panel1_data |
6491 | 7009 | ||
6492 | associations dd 0 |
7010 | associations dd 0 |
6493 | associations_size dd 1 ; terminating zero |
7011 | associations_size dd 1 ; terminating zero |
6494 | associations_allocated dd 0x1000 ; start with one page |
7012 | associations_allocated dd 0x1000 ; start with one page |
6495 | 7013 | ||
6496 | console_colors dd 0x000000, 0x000080, 0x008000, 0x008080 |
7014 | console_colors dd 0x000000, 0x000080, 0x008000, 0x008080 |
6497 | dd 0x800000, 0x800080, 0x808000, 0xC0C0C0 |
7015 | dd 0x800000, 0x800080, 0x808000, 0xC0C0C0 |
6498 | dd 0x808080, 0x0000FF, 0x00FF00, 0x00FFFF |
7016 | dd 0x808080, 0x0000FF, 0x00FF00, 0x00FFFF |
6499 | dd 0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF |
7017 | dd 0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF |
6500 | 7018 | ||
6501 | compare_fns dd compare_name |
7019 | compare_fns dd compare_name |
6502 | dd compare_name_rev |
7020 | dd compare_name_rev |
6503 | dd compare_ext |
7021 | dd compare_ext |
6504 | dd compare_ext_rev |
7022 | dd compare_ext_rev |
6505 | dd compare_modified |
7023 | dd compare_modified |
6506 | dd compare_modified_rev |
7024 | dd compare_modified_rev |
6507 | dd compare_size |
7025 | dd compare_size |
6508 | dd compare_size_rev |
7026 | dd compare_size_rev |
6509 | dd compare_unordered |
7027 | dd compare_unordered |
6510 | dd compare_unordered_rev |
7028 | dd compare_unordered_rev |
6511 | dd compare_created |
7029 | dd compare_created |
6512 | dd compare_created_rev |
7030 | dd compare_created_rev |
6513 | dd compare_accessed |
7031 | dd compare_accessed |
6514 | dd compare_accessed_rev |
7032 | dd compare_accessed_rev |
6515 | 7033 | ||
6516 | ctrlkey_tests dd ctrlkey_test0 |
7034 | ctrlkey_tests dd ctrlkey_test0 |
6517 | dd ctrlkey_test1 |
7035 | dd ctrlkey_test1 |
6518 | dd ctrlkey_test2 |
7036 | dd ctrlkey_test2 |
6519 | dd ctrlkey_test3 |
7037 | dd ctrlkey_test3 |
6520 | dd ctrlkey_test4 |
7038 | dd ctrlkey_test4 |
6521 | ctrlkey_tests_num = 5 |
7039 | ctrlkey_tests_num = 5 |
6522 | 7040 | ||
6523 | virtual at 0 |
7041 | virtual at 0 |
6524 | screen_vtable: |
7042 | screen_vtable: |
6525 | .OnRedraw dd ? |
7043 | .OnRedraw dd ? |
6526 | .OnKey dd ? |
7044 | .OnKey dd ? |
6527 | .keybar dd ? |
7045 | .keybar dd ? |
6528 | .getname dd ? |
7046 | .getname dd ? |
6529 | .OnExit dd ? |
7047 | .OnExit dd ? |
6530 | .IsHandleUsed dd ? |
7048 | .IsHandleUsed dd ? |
6531 | end virtual |
7049 | end virtual |
6532 | 7050 | ||
6533 | panels_vtable: |
7051 | panels_vtable: |
6534 | dd panels_OnRedraw |
7052 | dd panels_OnRedraw |
6535 | dd panels_OnKey |
7053 | dd panels_OnKey |
6536 | dd keybar_panels |
7054 | dd keybar_panels |
6537 | dd panels_getname |
7055 | dd panels_getname |
6538 | dd panels_OnExit |
7056 | dd panels_OnExit |
6539 | dd panels_IsHandleUsed |
7057 | dd panels_IsHandleUsed |
6540 | 7058 | ||
6541 | viewer_vtable: |
7059 | viewer_vtable: |
6542 | dd viewer_OnRedraw |
7060 | dd viewer_OnRedraw |
6543 | dd viewer_OnKey |
7061 | dd viewer_OnKey |
6544 | dd keybar_viewer |
7062 | dd keybar_viewer |
6545 | dd viewer_getname |
7063 | dd viewer_getname |
6546 | dd viewer_OnExit |
7064 | dd viewer_OnExit |
6547 | dd viewer_IsHandleUsed |
7065 | dd viewer_IsHandleUsed |
- | 7066 | ||
- | 7067 | editor_vtable: |
|
- | 7068 | dd editor_OnRedraw |
|
- | 7069 | dd editor_OnKey |
|
- | 7070 | dd keybar_editor |
|
- | 7071 | dd editor_getname |
|
- | 7072 | dd editor_OnExit |
|
- | 7073 | dd editor_IsHandleUsed |
|
6548 | 7074 | ||
6549 | ; additions to this table require changes in tools.inc::get_error_msg |
7075 | ; additions to this table require changes in tools.inc::get_error_msg |
6550 | errors1: |
7076 | errors1: |
6551 | dd error0msg |
7077 | dd error0msg |
6552 | dd error1msg |
7078 | dd error1msg |
6553 | dd error2msg |
7079 | dd error2msg |
6554 | dd error3msg |
7080 | dd error3msg |
6555 | dd error4msg |
7081 | dd error4msg |
6556 | dd error5msg |
7082 | dd error5msg |
6557 | dd error6msg |
7083 | dd error6msg |
6558 | dd error7msg |
7084 | dd error7msg |
6559 | dd error8msg |
7085 | dd error8msg |
6560 | dd error9msg |
7086 | dd error9msg |
6561 | dd error10msg |
7087 | dd error10msg |
6562 | dd error11msg |
7088 | dd error11msg |
6563 | errors2: |
7089 | errors2: |
6564 | dd error30msg |
7090 | dd error30msg |
6565 | dd error31msg |
7091 | dd error31msg |
6566 | dd error32msg |
7092 | dd error32msg |
6567 | 7093 | ||
6568 | encodings: |
7094 | encodings: |
6569 | .cp866 = 0 |
7095 | .cp866 = 0 |
6570 | .cp1251 = 1 |
7096 | .cp1251 = 1 |
6571 | .koi8r = 2 |
7097 | .koi8r = 2 |
6572 | .unicode = 3 |
7098 | .unicode = 3 |
6573 | 7099 | ||
6574 | .names: |
7100 | .names: |
6575 | db 'cp866 ' |
7101 | db 'cp866 ' |
6576 | db 'cp1251 ' |
7102 | db 'cp1251 ' |
6577 | db 'koi8-r ' |
7103 | db 'koi8-r ' |
6578 | db 'Unicode ' |
7104 | db 'Unicode ' |
6579 | 7105 | ||
6580 | .tables: |
7106 | .tables: |
6581 | ; cp866 - trivial map |
7107 | ; cp866 - trivial map |
6582 | times 128 db %+127 |
7108 | times 128 db %+127 |
6583 | ; cp1251 |
7109 | ; cp1251 |
6584 | db 0x3F,0x3F,0x27,0x3F,0x22,0x3A,0xC5,0xD8,0x3F,0x25,0x3F,0x3C,0x3F,0x3F,0x3F,0x3F |
7110 | db 0x3F,0x3F,0x27,0x3F,0x22,0x3A,0xC5,0xD8,0x3F,0x25,0x3F,0x3C,0x3F,0x3F,0x3F,0x3F |
6585 | db 0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F |
7111 | db 0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F |
6586 | db 0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4 |
7112 | db 0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4 |
6587 | db 0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5 |
7113 | db 0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5 |
6588 | times 0x30 db %-1+0x80 |
7114 | times 0x30 db %-1+0x80 |
6589 | times 0x10 db %-1+0xE0 |
7115 | times 0x10 db %-1+0xE0 |
6590 | ; koi8-r |
7116 | ; koi8-r |
6591 | db 0xC4,0xB3,0xDA,0xBF,0xC0,0xD9,0xC3,0xB4,0xC2,0xC1,0xC5,0xDF,0xDC,0xDB,0xDD,0xDE |
7117 | db 0xC4,0xB3,0xDA,0xBF,0xC0,0xD9,0xC3,0xB4,0xC2,0xC1,0xC5,0xDF,0xDC,0xDB,0xDD,0xDE |
6592 | db 0xB0,0xB1,0xB2,0xF4,0xFE,0xF9,0xFB,0xF7,0xF3,0xF2,0xFF,0xF5,0xF8,0xFD,0xFA,0xF6 |
7118 | db 0xB0,0xB1,0xB2,0xF4,0xFE,0xF9,0xFB,0xF7,0xF3,0xF2,0xFF,0xF5,0xF8,0xFD,0xFA,0xF6 |
6593 | db 0xCD,0xBA,0xD5,0xF1,0xD6,0xC9,0xB8,0xB7,0xBB,0xD4,0xD3,0xC8,0xBE,0xBD,0xBC,0xC6 |
7119 | db 0xCD,0xBA,0xD5,0xF1,0xD6,0xC9,0xB8,0xB7,0xBB,0xD4,0xD3,0xC8,0xBE,0xBD,0xBC,0xC6 |
6594 | db 0xC7,0xCC,0xB5,0xF0,0xB6,0xB9,0xD1,0xD2,0xCB,0xCF,0xD0,0xCA,0xD8,0xD7,0xCE,0xFC |
7120 | db 0xC7,0xCC,0xB5,0xF0,0xB6,0xB9,0xD1,0xD2,0xCB,0xCF,0xD0,0xCA,0xD8,0xD7,0xCE,0xFC |
6595 | db 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE |
7121 | db 0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE |
6596 | db 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA |
7122 | db 0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA |
6597 | db 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E |
7123 | db 0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E |
6598 | db 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A |
7124 | db 0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A |
6599 | 7125 | ||
6600 | .menu: |
7126 | .menu: |
6601 | db .cp866 |
7127 | db .cp866 |
6602 | .menu.1: |
7128 | .menu.1: |
6603 | dd .menu.2 |
7129 | dd .menu.2 |
6604 | dd 0 |
7130 | dd 0 |
6605 | if lang eq ru |
7131 | if lang eq ru |
6606 | db '&DOS ⥪áâ (cp866)',0 |
7132 | db '&DOS ⥪áâ (cp866)',0 |
6607 | else |
7133 | else |
6608 | db '&DOS text (cp866)',0 |
7134 | db '&DOS text (cp866)',0 |
6609 | end if |
7135 | end if |
6610 | db .cp1251 |
7136 | db .cp1251 |
6611 | .menu.2: |
7137 | .menu.2: |
6612 | dd .menu.3 |
7138 | dd .menu.3 |
6613 | dd .menu.1 |
7139 | dd .menu.1 |
6614 | if lang eq ru |
7140 | if lang eq ru |
6615 | db '&Windows ⥪áâ (cp1251)',0 |
7141 | db '&Windows ⥪áâ (cp1251)',0 |
6616 | else |
7142 | else |
6617 | db '&Windows text (cp1251)',0 |
7143 | db '&Windows text (cp1251)',0 |
6618 | end if |
7144 | end if |
6619 | db .koi8r |
7145 | db .koi8r |
6620 | .menu.3: |
7146 | .menu.3: |
6621 | dd .menu.4 |
7147 | dd .menu.4 |
6622 | dd .menu.2 |
7148 | dd .menu.2 |
6623 | if lang eq ru |
7149 | if lang eq ru |
6624 | db '&Linux ⥪áâ (koi8-r)',0 |
7150 | db '&Linux ⥪áâ (koi8-r)',0 |
6625 | else |
7151 | else |
6626 | db '&Linux text (koi8-r)',0 |
7152 | db '&Linux text (koi8-r)',0 |
6627 | end if |
7153 | end if |
6628 | db .unicode |
7154 | db .unicode |
6629 | .menu.4: |
7155 | .menu.4: |
6630 | dd 0 |
7156 | dd 0 |
6631 | dd .menu.3 |
7157 | dd .menu.3 |
6632 | db '&Unicode',0 |
7158 | db '&Unicode',0 |
6633 | 7159 | ||
6634 | active_screen dd 0 |
7160 | active_screen dd 0 |
- | 7161 | viewer_tabsize dd 8 |
|
6635 | tabsize dd 8 |
7162 | editor_tabsize dd 8 |
6636 | 7163 | ||
6637 | ascii2scan: |
7164 | ascii2scan: |
6638 | times 32 db 0 |
7165 | times 32 db 0 |
6639 | db 0x39,0x02,0x03,0x04,0x05,0x06,0x08,0x28,0x0A,0x0B,0x09,0x0D,0x33,0x0C,0x34,0x35 |
7166 | db 0x39,0x02,0x03,0x04,0x05,0x06,0x08,0x28,0x0A,0x0B,0x09,0x0D,0x33,0x0C,0x34,0x35 |
6640 | db 0x0B,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x27,0x27,0x33,0x0D,0x34,0x35 |
7167 | db 0x0B,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x27,0x27,0x33,0x0D,0x34,0x35 |
6641 | db 0x03,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
7168 | db 0x03,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
6642 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x07,0x0C |
7169 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x07,0x0C |
6643 | db 0x29,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
7170 | db 0x29,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
6644 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x29,0x00 |
7171 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x29,0x00 |
6645 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
7172 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
6646 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
7173 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
6647 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
7174 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
6648 | times 48 db 0 |
7175 | times 48 db 0 |
6649 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
7176 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
6650 | db 0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
7177 | db 0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
- | 7178 | scan2ascii: |
|
- | 7179 | db 0,0,'1234567890-=',0,0 |
|
- | 7180 | db 'qwertyuiop[]',0,0,'as' |
|
- | 7181 | db 'dfghjkl;',27h,'`',0,'\zxcv' |
|
- | 7182 | db 'bnm,./',0,0,0,' ',0,0,0,0,0,0 |
|
6651 | 7183 | ||
6652 | ; « ¢¨èë¥ á®ç¥â ¨ï |
7184 | ; « ¢¨èë¥ á®ç¥â ¨ï |
6653 | ; db scancode, reserved |
7185 | ; db scancode, reserved |
6654 | ; dw ctrlstate |
7186 | ; dw ctrlstate |
6655 | ; dd handler |
7187 | ; dd handler |
6656 | ; ctrlstate: ¬« ¤è¨¥ 4 ¡¨â - ¤«ï Shift, á«¥¤ãî騥 - ¤«ï Ctrl, á«¥¤ãî騥 - ¤«ï Alt |
7188 | ; ctrlstate: ¬« ¤è¨¥ 4 ¡¨â - ¤«ï Shift, á«¥¤ãî騥 - ¤«ï Ctrl, á«¥¤ãî騥 - ¤«ï Alt |
6657 | ; 0 = ¨ ®¤ ª« ¢¨è ¥ ¦ â |
7189 | ; 0 = ¨ ®¤ ª« ¢¨è ¥ ¦ â |
6658 | ; 1 = ஢® ®¤ ¦ â |
7190 | ; 1 = ஢® ®¤ ¦ â |
6659 | ; 2 = ®¡¥ ¦ âë |
7191 | ; 2 = ®¡¥ ¦ âë |
6660 | ; 3 = «¥¢ ï ¦ â , ¯à ¢ ï ¥â |
7192 | ; 3 = «¥¢ ï ¦ â , ¯à ¢ ï ¥â |
6661 | ; 4 = ¯à ¢ ï ¦ â , «¥¢ ï ¥â |
7193 | ; 4 = ¯à ¢ ï ¦ â , «¥¢ ï ¥â |
6662 | panels_ctrlkeys: |
7194 | panels_ctrlkeys: |
6663 | dw 0x48, 0 |
7195 | dw 0x48, 0 |
6664 | dd panels_OnKey.up |
7196 | dd panels_OnKey.up |
6665 | dw 0x50, 0 |
7197 | dw 0x50, 0 |
6666 | dd panels_OnKey.down |
7198 | dd panels_OnKey.down |
6667 | dw 0x4B, 0 |
7199 | dw 0x4B, 0 |
6668 | dd panels_OnKey.left |
7200 | dd panels_OnKey.left |
6669 | dw 0x4D, 0 |
7201 | dw 0x4D, 0 |
6670 | dd panels_OnKey.right |
7202 | dd panels_OnKey.right |
6671 | dw 0x51, 0 |
7203 | dw 0x51, 0 |
6672 | dd panels_OnKey.pgdn |
7204 | dd panels_OnKey.pgdn |
6673 | dw 0x49, 0 |
7205 | dw 0x49, 0 |
6674 | dd panels_OnKey.pgup |
7206 | dd panels_OnKey.pgup |
6675 | dw 0xF, 0 |
7207 | dw 0xF, 0 |
6676 | dd panels_OnKey.tab |
7208 | dd panels_OnKey.tab |
6677 | dw 0x47, 0 |
7209 | dw 0x47, 0 |
6678 | dd panels_OnKey.home |
7210 | dd panels_OnKey.home |
6679 | dw 0x4F, 0 |
7211 | dw 0x4F, 0 |
6680 | dd panels_OnKey.end |
7212 | dd panels_OnKey.end |
6681 | dw 0x1C, 0 |
7213 | dw 0x1C, 0 |
6682 | dd panels_OnKey.enter |
7214 | dd panels_OnKey.enter |
6683 | dw 0x3D, 0 |
7215 | dw 0x3D, 0 |
6684 | dd panels_OnKey.f3 |
7216 | dd panels_OnKey.f3 |
- | 7217 | dw 0x3E, 0 |
|
- | 7218 | dd panels_OnKey.f4 |
|
6685 | dw 0x3F, 0 |
7219 | dw 0x3F, 0 |
6686 | dd panels_OnKey.f5 |
7220 | dd panels_OnKey.f5 |
6687 | dw 0x3F, 1 |
7221 | dw 0x3F, 1 |
6688 | dd panels_OnKey.shift_f5 |
7222 | dd panels_OnKey.shift_f5 |
6689 | dw 0x41, 0 |
7223 | dw 0x41, 0 |
6690 | dd panels_OnKey.f7 |
7224 | dd panels_OnKey.f7 |
6691 | dw 0x42, 0 |
7225 | dw 0x42, 0 |
6692 | dd panels_OnKey.f8 |
7226 | dd panels_OnKey.f8 |
6693 | dw 0x43, 0x100 |
7227 | dw 0x43, 0x100 |
6694 | dd alt_f9 |
7228 | dd alt_f9 |
6695 | dw 0x44, 0 |
7229 | dw 0x44, 0 |
6696 | dd exit |
7230 | dd exit |
6697 | dw 0x5D, 0 |
7231 | dw 0x5D, 0 |
6698 | dd panels_OnKey.menu |
7232 | dd panels_OnKey.menu |
6699 | repeat 9-3+1 |
7233 | repeat 9-3+1 |
6700 | dw 0x3D+%-1, 0x10 |
7234 | dw 0x3D+%-1, 0x10 |
6701 | dd panels_OnKey.ctrl_f39 |
7235 | dd panels_OnKey.ctrl_f39 |
6702 | end repeat |
7236 | end repeat |
6703 | dw 0x3B, 0x100 |
7237 | dw 0x3B, 0x100 |
6704 | dd panels_OnKey.alt_f12 |
7238 | dd panels_OnKey.alt_f12 |
6705 | dw 0x3C, 0x100 |
7239 | dw 0x3C, 0x100 |
6706 | dd panels_OnKey.alt_f12 |
7240 | dd panels_OnKey.alt_f12 |
6707 | dw 0x58, 0 |
7241 | dw 0x58, 0 |
6708 | dd F12 |
7242 | dd F12 |
6709 | dw 0x13, 0x10 |
7243 | dw 0x13, 0x10 |
6710 | dd panels_OnKey.ctrl_r |
7244 | dd panels_OnKey.ctrl_r |
6711 | dw 2, 0x30 |
7245 | dw 2, 0x30 |
6712 | dd panels_OnKey.change_mode |
7246 | dd panels_OnKey.change_mode |
6713 | dw 3, 0x30 |
7247 | dw 3, 0x30 |
6714 | dd panels_OnKey.change_mode |
7248 | dd panels_OnKey.change_mode |
6715 | dw 4, 0x30 |
7249 | dw 4, 0x30 |
6716 | dd panels_OnKey.change_mode |
7250 | dd panels_OnKey.change_mode |
6717 | dw 5, 0x30 |
7251 | dw 5, 0x30 |
6718 | dd panels_OnKey.change_mode |
7252 | dd panels_OnKey.change_mode |
6719 | repeat 10 |
7253 | repeat 10 |
6720 | dw %+1, 0x40 |
7254 | dw %+1, 0x40 |
6721 | dd panels_OnKey.quick_jump |
7255 | dd panels_OnKey.quick_jump |
6722 | end repeat |
7256 | end repeat |
6723 | dw 0x52, 0 |
7257 | dw 0x52, 0 |
6724 | dd panels_OnKey.insert |
7258 | dd panels_OnKey.insert |
6725 | dw 0x4E, 0 |
7259 | dw 0x4E, 0 |
6726 | dd panels_OnKey.greyplus |
7260 | dd panels_OnKey.greyplus |
6727 | dw 0x4A, 0 |
7261 | dw 0x4A, 0 |
6728 | dd panels_OnKey.greyminus |
7262 | dd panels_OnKey.greyminus |
6729 | dw 0x37, 0 |
7263 | dw 0x37, 0 |
6730 | dd panels_OnKey.greyasterisk |
7264 | dd panels_OnKey.greyasterisk |
6731 | db 0 |
7265 | db 0 |
6732 | 7266 | ||
6733 | viewer_ctrlkeys: |
7267 | viewer_ctrlkeys: |
6734 | dw 1, 0 |
7268 | dw 1, 0 |
6735 | dd viewer_OnKey.exit |
7269 | dd viewer_OnKey.exit |
6736 | dw 0x51, 0 |
7270 | dw 0x51, 0 |
6737 | dd viewer_OnKey.pgdn |
7271 | dd viewer_OnKey.pgdn |
6738 | dw 0x49, 0 |
7272 | dw 0x49, 0 |
6739 | dd viewer_OnKey.pgup |
7273 | dd viewer_OnKey.pgup |
6740 | dw 0x50, 0 |
7274 | dw 0x50, 0 |
6741 | dd viewer_OnKey.down |
7275 | dd viewer_OnKey.down |
6742 | dw 0x48, 0 |
7276 | dw 0x48, 0 |
6743 | dd viewer_OnKey.up |
7277 | dd viewer_OnKey.up |
6744 | dw 0x4B, 0 |
7278 | dw 0x4B, 0 |
6745 | dd viewer_OnKey.left |
7279 | dd viewer_OnKey.left |
6746 | dw 0x4B, 0x10 |
7280 | dw 0x4B, 0x10 |
6747 | dd viewer_OnKey.ctrl_left |
7281 | dd viewer_OnKey.ctrl_left |
6748 | dw 0x4B, 0x11 |
7282 | dw 0x4B, 0x11 |
6749 | dd viewer_OnKey.ctrl_shift_left |
7283 | dd viewer_OnKey.ctrl_shift_left |
6750 | dw 0x4C, 0 |
7284 | dw 0x4C, 0 |
6751 | dd viewer_OnKey.exit |
7285 | dd viewer_OnKey.exit |
6752 | dw 0x4D, 0 |
7286 | dw 0x4D, 0 |
6753 | dd viewer_OnKey.right |
7287 | dd viewer_OnKey.right |
6754 | dw 0x4D, 0x10 |
7288 | dw 0x4D, 0x10 |
6755 | dd viewer_OnKey.ctrl_right |
7289 | dd viewer_OnKey.ctrl_right |
6756 | dw 0x4D, 0x11 |
7290 | dw 0x4D, 0x11 |
6757 | dd viewer_OnKey.ctrl_shift_right |
7291 | dd viewer_OnKey.ctrl_shift_right |
6758 | dw 0x3C, 0 |
7292 | dw 0x3C, 0 |
6759 | dd viewer_OnKey.f2 |
7293 | dd viewer_OnKey.f2 |
6760 | dw 0x3D, 0 |
7294 | dw 0x3D, 0 |
6761 | dd viewer_OnKey.exit |
7295 | dd viewer_OnKey.exit |
6762 | dw 0x3E, 0 |
7296 | dw 0x3E, 0 |
6763 | dd viewer_OnKey.f4 |
7297 | dd viewer_OnKey.f4 |
6764 | dw 0x42, 0 |
7298 | dw 0x42, 0 |
6765 | dd viewer_OnKey.f8 |
7299 | dd viewer_OnKey.f8 |
6766 | dw 0x42, 1 |
7300 | dw 0x42, 1 |
6767 | dd viewer_OnKey.shift_f8 |
7301 | dd viewer_OnKey.shift_f8 |
6768 | dw 0x44, 0 |
7302 | dw 0x44, 0 |
6769 | dd viewer_OnKey.exit |
7303 | dd viewer_OnKey.exit |
6770 | dw 0x47, 0 |
7304 | dw 0x47, 0 |
6771 | dd viewer_OnKey.home |
7305 | dd viewer_OnKey.home |
6772 | dw 0x4F, 0 |
7306 | dw 0x4F, 0 |
6773 | dd viewer_OnKey.end |
7307 | dd viewer_OnKey.end |
6774 | dw 0x58, 0 |
7308 | dw 0x58, 0 |
6775 | dd F12 |
7309 | dd F12 |
6776 | dw 0x43, 0x100 |
7310 | dw 0x43, 0x100 |
6777 | dd alt_f9 |
7311 | dd alt_f9 |
6778 | db 0 |
7312 | db 0 |
- | 7313 | ||
- | 7314 | editor_ctrlkeys: |
|
- | 7315 | dw 1, 0 |
|
- | 7316 | dd editor_OnKey.exit_confirm |
|
- | 7317 | dw 0x0E, 0 |
|
- | 7318 | dd editor_OnKey.backspace |
|
- | 7319 | dw 0x3C, 0 |
|
- | 7320 | dd editor_OnKey.f2 |
|
- | 7321 | dw 0x43, 0x100 |
|
- | 7322 | dd alt_f9 |
|
- | 7323 | dw 0x44, 0 |
|
- | 7324 | dd editor_OnKey.exit_confirm |
|
- | 7325 | dw 0x44, 1 |
|
- | 7326 | dd editor_OnKey.exit_save |
|
- | 7327 | dw 0x47, 0 |
|
- | 7328 | dd editor_OnKey.home |
|
- | 7329 | dw 0x48, 0 |
|
- | 7330 | dd editor_OnKey.up |
|
- | 7331 | dw 0x49, 0 |
|
- | 7332 | dd editor_OnKey.pgup |
|
- | 7333 | dw 0x4B, 0 |
|
- | 7334 | dd editor_OnKey.left |
|
- | 7335 | dw 0x4D, 0 |
|
- | 7336 | dd editor_OnKey.right |
|
- | 7337 | dw 0x4F, 0 |
|
- | 7338 | dd editor_OnKey.end |
|
- | 7339 | dw 0x50, 0 |
|
- | 7340 | dd editor_OnKey.down |
|
- | 7341 | dw 0x51, 0 |
|
- | 7342 | dd editor_OnKey.pgdn |
|
- | 7343 | dw 0x52, 0 |
|
- | 7344 | dd editor_OnKey.ins |
|
- | 7345 | dw 0x53, 0 |
|
- | 7346 | dd editor_OnKey.del |
|
- | 7347 | dw 0x58, 0 |
|
- | 7348 | dd F12 |
|
- | 7349 | db 0 |
|
6779 | 7350 | ||
6780 | dirinfo: |
7351 | dirinfo: |
6781 | dd 1 |
7352 | dd 1 |
6782 | .first dd 0 |
7353 | .first dd 0 |
6783 | dd 0 |
7354 | dd 0 |
6784 | .size dd 300 |
7355 | .size dd 300 |
6785 | .dirdata dd 0 |
7356 | .dirdata dd 0 |
6786 | db 0 |
7357 | db 0 |
6787 | .name dd 0 |
7358 | .name dd 0 |
6788 | 7359 | ||
6789 | readinfo: |
7360 | readinfo: |
6790 | dd 0 |
7361 | dd 0 |
6791 | .first dq 0 |
7362 | .first dq 0 |
6792 | .size dd 0 |
7363 | .size dd 0 |
6793 | .data dd 0 |
7364 | .data dd 0 |
6794 | db 0 |
7365 | db 0 |
6795 | .name dd 0 |
7366 | .name dd 0 |
6796 | 7367 | ||
6797 | writeinfo: |
7368 | writeinfo: |
6798 | .code dd 2 |
7369 | .code dd 2 |
6799 | .first dq 0 |
7370 | .first dq 0 |
6800 | .size dd 0 |
7371 | .size dd 0 |
6801 | .data dd 0 |
7372 | .data dd 0 |
6802 | db 0 |
7373 | db 0 |
6803 | .name dd 0 |
7374 | .name dd 0 |
6804 | 7375 | ||
6805 | attrinfo: |
7376 | attrinfo: |
6806 | dd 5 |
7377 | dd 5 |
6807 | dd 0 |
7378 | dd 0 |
6808 | dd 0 |
7379 | dd 0 |
6809 | dd 0 |
7380 | dd 0 |
6810 | dd .attr |
7381 | dd .attr |
6811 | db 0 |
7382 | db 0 |
6812 | .name dd 0 |
7383 | .name dd 0 |
6813 | 7384 | ||
6814 | delinfo: |
7385 | delinfo: |
6815 | dd 8 |
7386 | dd 8 |
6816 | dd 0 |
7387 | dd 0 |
6817 | dd 0 |
7388 | dd 0 |
6818 | dd 0 |
7389 | dd 0 |
6819 | dd 0 |
7390 | dd 0 |
6820 | db 0 |
7391 | db 0 |
6821 | dd execdata |
7392 | dd execdata |
6822 | 7393 | ||
6823 | mkdirinfo: |
7394 | mkdirinfo: |
6824 | dd 9 |
7395 | dd 9 |
6825 | dd 0 |
7396 | dd 0 |
6826 | dd 0 |
7397 | dd 0 |
6827 | dd 0 |
7398 | dd 0 |
6828 | dd 0 |
7399 | dd 0 |
6829 | db 0 |
7400 | db 0 |
6830 | dd CopyDestEditBuf+12 |
7401 | dd CopyDestEditBuf+12 |
6831 | 7402 | ||
6832 | if lang eq ru |
7403 | if lang eq ru |
6833 | compare_names db '¨à¬ á¤' |
7404 | compare_names db '¨à¬ á¤' |
6834 | else |
7405 | else |
6835 | compare_names db 'nNxXmMsSuUcCaA' |
7406 | compare_names db 'nNxXmMsSuUcCaA' |
6836 | end if |
7407 | end if |
6837 | 7408 | ||
6838 | ; ¤¥áì ç¨ îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ - ¢ ⥪ã饩 ॠ«¨§ 樨 ®¨ § è¨âë ¢ ¡¨ ਪ |
7409 | ; ¤¥áì ç¨ îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ - ¢ ⥪ã饩 ॠ«¨§ 樨 ®¨ § è¨âë ¢ ¡¨ ਪ |
6839 | 7410 | ||
6840 | ; ¥«ì |
7411 | ; ¥«ì |
6841 | panel_normal_color db 1Bh |
7412 | panel_normal_color db 1Bh |
6842 | panel_selected_color db 1Eh |
7413 | panel_selected_color db 1Eh |
6843 | panel_border_color db 1Bh |
7414 | panel_border_color db 1Bh |
6844 | panel_cursor_color db 30h |
7415 | panel_cursor_color db 30h |
6845 | panel_selected_cursor_color db 3Eh |
7416 | panel_selected_cursor_color db 3Eh |
6846 | panel_header_color db 1Bh |
7417 | panel_header_color db 1Bh |
6847 | panel_active_header_color db 30h |
7418 | panel_active_header_color db 30h |
6848 | column_header_color db 1Eh |
7419 | column_header_color db 1Eh |
6849 | panel_number_color db 1Bh |
7420 | panel_number_color db 1Bh |
6850 | panel_numselected_color db 3Eh |
7421 | panel_numselected_color db 3Eh |
6851 | panel_nscreens_color db 0Bh |
7422 | panel_nscreens_color db 0Bh |
6852 | ; ¨ «®£¨ |
7423 | ; ¨ «®£¨ |
6853 | dialog_colors: |
7424 | dialog_colors: |
6854 | dialog_main_color db 70h |
7425 | dialog_main_color db 70h |
6855 | dialog_border_color db 70h |
7426 | dialog_border_color db 70h |
6856 | dialog_header_color db 70h |
7427 | dialog_header_color db 70h |
6857 | dialog_edit_color db 30h |
7428 | dialog_edit_color db 30h |
6858 | dialog_unmodified_edit_color db 38h |
7429 | dialog_unmodified_edit_color db 38h |
6859 | dialog_normal_btn_color db 70h |
7430 | dialog_normal_btn_color db 70h |
6860 | dialog_selected_btn_color db 30h |
7431 | dialog_selected_btn_color db 30h |
6861 | ; ।ã¯à¥¦¤¥¨ï ¨ ®è¨¡ª¨ |
7432 | ; ।ã¯à¥¦¤¥¨ï ¨ ®è¨¡ª¨ |
6862 | warning_colors: |
7433 | warning_colors: |
6863 | ; !!! ¤®«¦ë ¡ëâì ⥠¦¥ ¯®«ï ¨ ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¤«ï ®¡ëçëå ¤¨ «®£®¢ !!! |
7434 | ; !!! ¤®«¦ë ¡ëâì ⥠¦¥ ¯®«ï ¨ ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¤«ï ®¡ëçëå ¤¨ «®£®¢ !!! |
6864 | warning_main_color db 4Fh |
7435 | warning_main_color db 4Fh |
6865 | warning_border_color db 4Fh |
7436 | warning_border_color db 4Fh |
6866 | warning_header_color db 4Fh |
7437 | warning_header_color db 4Fh |
6867 | warning_edit_color db 30h |
7438 | warning_edit_color db 30h |
6868 | warning_unmodified_edit_color db 38h |
7439 | warning_unmodified_edit_color db 38h |
6869 | warning_normal_btn_color db 4Fh |
7440 | warning_normal_btn_color db 4Fh |
6870 | warning_selected_btn_color db 70h |
7441 | warning_selected_btn_color db 70h |
6871 | ; ¥î |
7442 | ; ¥î |
6872 | menu_normal_color db 3Fh |
7443 | menu_normal_color db 3Fh |
6873 | menu_selected_color db 0Fh |
7444 | menu_selected_color db 0Fh |
6874 | menu_highlight_color db 3Eh |
7445 | menu_highlight_color db 3Eh |
6875 | menu_selected_highlight_color db 0Eh |
7446 | menu_selected_highlight_color db 0Eh |
6876 | menu_border_color db 3Fh |
7447 | menu_border_color db 3Fh |
6877 | menu_header_color db 3Fh |
7448 | menu_header_color db 3Fh |
6878 | menu_scrollbar_color db 3Fh |
7449 | menu_scrollbar_color db 3Fh |
6879 | ; ¨¥©ª ª« ¢¨è |
7450 | ; ¨¥©ª ª« ¢¨è |
6880 | keybar_number_color db 7 |
7451 | keybar_number_color db 7 |
6881 | keybar_name_color db 30h |
7452 | keybar_name_color db 30h |
6882 | keybar_bgr_color db 7 |
7453 | keybar_bgr_color db 7 |
6883 | ; ®¬ ¤ ï áâப |
7454 | ; ®¬ ¤ ï áâப |
6884 | cmdbar_normal_color db 7 |
7455 | cmdbar_normal_color db 7 |
6885 | cmdbar_prefix_color db 7 |
7456 | cmdbar_prefix_color db 7 |
6886 | ; à®á¬®âà騪 |
7457 | ; à®á¬®âà騪 |
6887 | view_normal_color db 1Bh |
7458 | view_normal_color db 1Bh |
6888 | view_status_color db 30h |
7459 | view_status_color db 30h |
6889 | view_arrows_color db 1Eh |
7460 | view_arrows_color db 1Eh |
- | 7461 | ; ¥¤ ªâ®à |
|
- | 7462 | edit_normal_color db 1Bh |
|
- | 7463 | edit_status_color db 30h |
|
6890 | 7464 | ||
6891 | ; ®¤á¢¥âª ä ©«®¢ |
7465 | ; ®¤á¢¥âª ä ©«®¢ |
6892 | highlight_num_groups dd 10 |
7466 | highlight_num_groups dd 10 |
6893 | highlight_groups dd highlight_group0 |
7467 | highlight_groups dd highlight_group0 |
6894 | dd highlight_group1 |
7468 | dd highlight_group1 |
6895 | dd highlight_group2 |
7469 | dd highlight_group2 |
6896 | dd highlight_group3 |
7470 | dd highlight_group3 |
6897 | dd highlight_group4 |
7471 | dd highlight_group4 |
6898 | dd highlight_group5 |
7472 | dd highlight_group5 |
6899 | dd highlight_group6 |
7473 | dd highlight_group6 |
6900 | dd highlight_group7 |
7474 | dd highlight_group7 |
6901 | dd highlight_group8 |
7475 | dd highlight_group8 |
6902 | dd highlight_group9 |
7476 | dd highlight_group9 |
6903 | 7477 | ||
6904 | ; ®à¬ â ®¯¨á ¨ï £àã¯¯ë ¯®¤á¢¥âª¨: |
7478 | ; ®à¬ â ®¯¨á ¨ï £àã¯¯ë ¯®¤á¢¥âª¨: |
6905 | virtual at 0 |
7479 | virtual at 0 |
6906 | highlight: |
7480 | highlight: |
6907 | .IncludeAttributes db ? |
7481 | .IncludeAttributes db ? |
6908 | .NormalColor db ? |
7482 | .NormalColor db ? |
6909 | .CursorColor db ? |
7483 | .CursorColor db ? |
6910 | .SelectedColor db ? |
7484 | .SelectedColor db ? |
6911 | .SelectedCursorColor db ? |
7485 | .SelectedCursorColor db ? |
6912 | .Mask: ; ASCIIZ-string |
7486 | .Mask: ; ASCIIZ-string |
6913 | end virtual |
7487 | end virtual |
6914 | 7488 | ||
6915 | ; all highlight masks must be in lowercase! |
7489 | ; all highlight masks must be in lowercase! |
6916 | highlight_group0: |
7490 | highlight_group0: |
6917 | db 2 |
7491 | db 2 |
6918 | db 13h, 38h, 0, 0 |
7492 | db 13h, 38h, 0, 0 |
6919 | db '*',0 |
7493 | db '*',0 |
6920 | highlight_group1: |
7494 | highlight_group1: |
6921 | db 4 |
7495 | db 4 |
6922 | db 13h, 38h, 0, 0 |
7496 | db 13h, 38h, 0, 0 |
6923 | db '*',0 |
7497 | db '*',0 |
6924 | highlight_group2: |
7498 | highlight_group2: |
6925 | db 10h |
7499 | db 10h |
6926 | db 1Fh, 3Fh, 0, 0 |
7500 | db 1Fh, 3Fh, 0, 0 |
6927 | db '*|..',0 |
7501 | db '*|..',0 |
6928 | highlight_group3: |
7502 | highlight_group3: |
6929 | db 10h |
7503 | db 10h |
6930 | db 0, 0, 0, 0 |
7504 | db 0, 0, 0, 0 |
6931 | db '..',0 |
7505 | db '..',0 |
6932 | highlight_group4: |
7506 | highlight_group4: |
6933 | db 0 |
7507 | db 0 |
6934 | db 1Ah, 3Ah, 0, 0 |
7508 | db 1Ah, 3Ah, 0, 0 |
6935 | db '*.exe,*.com,*.bat,*.cmd',0 |
7509 | db '*.exe,*.com,*.bat,*.cmd,*.kex',0 |
6936 | highlight_group5: |
7510 | highlight_group5: |
6937 | db 0 |
7511 | db 0 |
6938 | db 1Ah, 3Ah, 0, 0 |
7512 | db 1Ah, 3Ah, 0, 0 |
6939 | db '*|*.*',0 |
7513 | db '*|*.*,readme,makefile',0 |
6940 | highlight_group6: |
7514 | highlight_group6: |
6941 | db 0 |
7515 | db 0 |
6942 | db 1Dh, 3Dh, 0, 0 |
7516 | db 1Dh, 3Dh, 0, 0 |
6943 | db '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],' |
7517 | db '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],' |
6944 | db '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],' |
7518 | db '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],' |
6945 | db '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,' |
7519 | db '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,' |
6946 | db '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0 |
7520 | db '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0 |
6947 | highlight_group7: |
7521 | highlight_group7: |
6948 | db 0 |
7522 | db 0 |
6949 | db 16h, 36h, 0, 0 |
7523 | db 16h, 36h, 0, 0 |
6950 | db '*.bak,*.tmp',0 |
7524 | db '*.bak,*.tmp',0 |
6951 | highlight_group8: |
7525 | highlight_group8: |
6952 | db 0 |
7526 | db 0 |
6953 | db 17h, 37h, 0, 0 |
7527 | db 17h, 37h, 0, 0 |
6954 | db '*.asm,*.inc',0 |
7528 | db '*.asm,*.inc',0 |
6955 | highlight_group9: |
7529 | highlight_group9: |
6956 | db 10h |
7530 | db 10h |
6957 | db 1Fh, 3Fh, 0, 0 |
7531 | db 1Fh, 3Fh, 0, 0 |
6958 | db '*',0 |
7532 | db '*',0 |
6959 | 7533 | ||
6960 | bConfirmDelete db 1 |
7534 | bConfirmDelete db 1 |
6961 | bConfirmDeleteIncomplete db 0 |
7535 | bConfirmDeleteIncomplete db 0 |
6962 | 7536 | ||
6963 | FolderShortcuts dd 0,0,0,0,0,0,0,0,0,0 |
7537 | FolderShortcuts dd 0,0,0,0,0,0,0,0,0,0 |
6964 | 7538 | ||
6965 | ; ¤¥áì § ª 稢 îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ |
7539 | ; ¤¥áì § ª 稢 îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ |
6966 | 7540 | ||
6967 | bWasE0 db 0 |
7541 | bWasE0 db 0 |
6968 | ctrlstate db 0 |
7542 | ctrlstate db 0 |
6969 | MemForImage dd 0 |
7543 | MemForImage dd 0 |
6970 | restore_semicolon dd 0 |
7544 | restore_semicolon dd 0 |
6971 | bForHex db 0 |
7545 | bForHex db 0 |
6972 | 7546 | ||
6973 | align 4 |
7547 | align 4 |
6974 | ; ®®¡é¥¨¥ ® ®¡«®¬¥ ¯à¨ ¢ë¤¥«¥¨¨ ¯ ¬ï⨠|
7548 | ; ®®¡é¥¨¥ ® ®¡«®¬¥ ¯à¨ ¢ë¤¥«¥¨¨ ¯ ¬ï⨠|
6975 | nomem_dlgdata: |
7549 | nomem_dlgdata: |
6976 | dd 2 |
7550 | dd 2 |
6977 | dd -1 |
7551 | dd -1 |
6978 | dd -1 |
7552 | dd -1 |
6979 | dd 12 |
7553 | dd 12 |
6980 | dd 2 |
7554 | dd 2 |
6981 | dd 1 |
7555 | dd 1 |
6982 | dd 1 |
7556 | dd 1 |
6983 | dd aError |
7557 | dd aError |
6984 | rb 4 |
7558 | rb 8 |
6985 | dd 0 |
7559 | dd 0 |
6986 | dd 0 |
7560 | dd 0 |
6987 | dd 2 |
7561 | dd 2 |
6988 | ; áâப "No memory" |
7562 | ; áâப "No memory" |
6989 | dd 1 |
7563 | dd 1 |
6990 | dd 1,0,10,0 |
7564 | dd 1,0,10,0 |
6991 | dd aNoMemory |
7565 | dd aNoMemory |
6992 | dd 1 |
7566 | dd 1 |
6993 | ; ª®¯ª "Ok" |
7567 | ; ª®¯ª "Ok" |
6994 | dd 2 |
7568 | dd 2 |
6995 | dd 4,1,7,1 |
7569 | dd 4,1,7,1 |
6996 | dd aOk |
7570 | dd aOk |
6997 | dd 0xD |
7571 | dd 0xD |
6998 | 7572 | ||
6999 | ; ¤¨ «®£ ª®¯¨à®¢ ¨ï |
7573 | ; ¤¨ «®£ ª®¯¨à®¢ ¨ï |
7000 | copy_dlgdata: |
7574 | copy_dlgdata: |
7001 | dd 1 |
7575 | dd 1 |
7002 | .x dd -1 |
7576 | .x dd -1 |
7003 | .y dd -1 |
7577 | .y dd -1 |
7004 | .width dd ? |
7578 | .width dd ? |
7005 | .height dd 4 |
7579 | .height dd 4 |
7006 | dd 4 |
7580 | dd 4 |
7007 | dd 2 |
7581 | dd 2 |
7008 | dd aCopyCaption |
7582 | dd aCopyCaption |
7009 | .main_color db ? |
7583 | .main_color db ? |
7010 | .border_color db ? |
7584 | .border_color db ? |
7011 | .header_color db ? |
7585 | .header_color db ? |
7012 | db 0 |
7586 | db 0 |
- | 7587 | dd ? |
|
7013 | dd 0 |
7588 | dd 0 |
7014 | dd 0 |
7589 | dd 0 |
7015 | dd 4 |
7590 | dd 4 |
7016 | ; áâப '®¯¨à®¢ âì "%s" ¢:' |
7591 | ; áâப '®¯¨à®¢ âì "%s" ¢:' |
7017 | dd 1 |
7592 | dd 1 |
7018 | dd 1,0 |
7593 | dd 1,0 |
7019 | .width2 dd ? |
7594 | .width2 dd ? |
7020 | dd 0 |
7595 | dd 0 |
7021 | dd CopySourceTextBuf |
7596 | dd CopySourceTextBuf |
7022 | dd 0 |
7597 | dd 0 |
7023 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ § 票ï |
7598 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ § 票ï |
7024 | dd 3 |
7599 | dd 3 |
7025 | dd 1,1 |
7600 | dd 1,1 |
7026 | .width3 dd ? |
7601 | .width3 dd ? |
7027 | dd 1 |
7602 | dd 1 |
7028 | dd CopyDestEditBuf |
7603 | dd CopyDestEditBuf |
7029 | .flags0 dd 0 |
7604 | .flags0 dd 0 |
7030 | ; ª®¯ª "ª®¯¨à®¢ âì" |
7605 | ; ª®¯ª "ª®¯¨à®¢ âì" |
7031 | .copy_btn: |
7606 | .copy_btn: |
7032 | dd 2 |
7607 | dd 2 |
7033 | .copy_x1 dd ? |
7608 | .copy_x1 dd ? |
7034 | dd 3 |
7609 | dd 3 |
7035 | .copy_x2 dd ? |
7610 | .copy_x2 dd ? |
7036 | dd 3 |
7611 | dd 3 |
7037 | dd aCopy |
7612 | dd aCopy |
7038 | .flags1 dd 18h |
7613 | .flags1 dd 18h |
7039 | ; ª®¯ª "®â¬¥¨âì" |
7614 | ; ª®¯ª "®â¬¥¨âì" |
7040 | dd 2 |
7615 | dd 2 |
7041 | .cnl_x1 dd ? |
7616 | .cnl_x1 dd ? |
7042 | dd 3 |
7617 | dd 3 |
7043 | .cnl_x2 dd ? |
7618 | .cnl_x2 dd ? |
7044 | dd 3 |
7619 | dd 3 |
7045 | dd aCancelB |
7620 | dd aCancelB |
7046 | .flags2 dd 8 |
7621 | .flags2 dd 8 |
7047 | 7622 | ||
7048 | mkdir_dlgdata: |
7623 | mkdir_dlgdata: |
7049 | dd 1 |
7624 | dd 1 |
7050 | dd -1, -1 |
7625 | dd -1, -1 |
7051 | .width dd ? |
7626 | .width dd ? |
7052 | .height dd 4 |
7627 | .height dd 4 |
7053 | dd 4, 2 |
7628 | dd 4, 2 |
7054 | dd aMkDirCaption |
7629 | dd aMkDirCaption |
7055 | dd ? |
7630 | dd ?, ? |
7056 | dd 0 |
7631 | dd 0 |
7057 | dd 0 |
7632 | dd 0 |
7058 | dd 4 |
7633 | dd 4 |
7059 | ; âப "®§¤ âì ¯ ¯ªã" |
7634 | ; âப "®§¤ âì ¯ ¯ªã" |
7060 | dd 1 |
7635 | dd 1 |
7061 | dd 1,0,aMkDirLen,0 |
7636 | dd 1,0,aMkDirLen,0 |
7062 | dd aMkDir |
7637 | dd aMkDir |
7063 | dd 0 |
7638 | dd 0 |
7064 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ᮧ¤ ¢ ¥¬®© ¯ ¯ª¨ |
7639 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ᮧ¤ ¢ ¥¬®© ¯ ¯ª¨ |
7065 | dd 3 |
7640 | dd 3 |
7066 | dd 1,1 |
7641 | dd 1,1 |
7067 | .width2 dd ? |
7642 | .width2 dd ? |
7068 | dd 1 |
7643 | dd 1 |
7069 | dd CopyDestEditBuf |
7644 | dd CopyDestEditBuf |
7070 | .flags0 dd 0xC |
7645 | .flags0 dd 0xC |
7071 | ; ª®¯ª "த®«¦¨âì" |
7646 | ; ª®¯ª "த®«¦¨âì" |
7072 | .cont_btn: |
7647 | .cont_btn: |
7073 | dd 2 |
7648 | dd 2 |
7074 | .cont_x1 dd ? |
7649 | .cont_x1 dd ? |
7075 | dd 3 |
7650 | dd 3 |
7076 | .cont_x2 dd ? |
7651 | .cont_x2 dd ? |
7077 | dd 3 |
7652 | dd 3 |
7078 | dd a_Continue |
7653 | dd a_Continue |
7079 | .flags1 dd 18h |
7654 | .flags1 dd 18h |
7080 | ; ª®¯ª "®â¬¥¨âì" |
7655 | ; ª®¯ª "®â¬¥¨âì" |
7081 | dd 2 |
7656 | dd 2 |
7082 | .cnl_x1 dd ? |
7657 | .cnl_x1 dd ? |
7083 | dd 3 |
7658 | dd 3 |
7084 | .cnl_x2 dd ? |
7659 | .cnl_x2 dd ? |
7085 | dd 3 |
7660 | dd 3 |
7086 | dd aCancelB |
7661 | dd aCancelB |
7087 | .flags2 dd 8 |
7662 | .flags2 dd 8 |
7088 | 7663 | ||
7089 | ; ¤¨ «®£ ¢ë¤¥«¥¨ï/áïâ¨ï |
7664 | ; ¤¨ «®£ ¢ë¤¥«¥¨ï/áïâ¨ï |
7090 | mark_dlgdata: |
7665 | mark_dlgdata: |
7091 | dd 1 |
7666 | dd 1 |
7092 | dd -1, -1 |
7667 | dd -1, -1 |
7093 | dd 37, 1 |
7668 | dd 37, 1 |
7094 | dd 4, 2 |
7669 | dd 4, 2 |
7095 | .title dd ? |
7670 | .title dd ? |
7096 | dd ? |
7671 | dd ?, ? |
7097 | dd 0, 0 |
7672 | dd 0, 0 |
7098 | dd 1 |
7673 | dd 1 |
7099 | ; ¯®«¥ । ªâ¨à®¢ ¨ï |
7674 | ; ¯®«¥ । ªâ¨à®¢ ¨ï |
7100 | dd 3 |
7675 | dd 3 |
7101 | dd 1, 0, 35, 0 |
7676 | dd 1, 0, 35, 0 |
7102 | dd enter_string_buf |
7677 | dd enter_string_buf |
7103 | .flags dd ? |
7678 | .flags dd ? |
- | 7679 | ||
- | 7680 | ; ¤¨ «®£ ¡ëáâண® ¯®¨áª ¢ ¯ ¥«¨ (Alt+¡ãª¢ë) |
|
- | 7681 | QuickSearchDlg: |
|
- | 7682 | dd 5 |
|
- | 7683 | .x dd ? |
|
- | 7684 | .y dd ? |
|
- | 7685 | dd 20, 1 |
|
- | 7686 | dd 1, 1 |
|
- | 7687 | dd aSearch |
|
- | 7688 | dd ?, ? |
|
- | 7689 | dd 0, 0 |
|
- | 7690 | dd 1 |
|
- | 7691 | ; ¯®«¥ । ªâ¨à®¢ ¨ï |
|
- | 7692 | dd 3 |
|
- | 7693 | dd 1, 0, 18, 0 |
|
- | 7694 | dd quick_search_buf |
|
- | 7695 | dd 1Ch |
|
7104 | 7696 | ||
7105 | RetryOrCancelBtn: |
7697 | RetryOrCancelBtn: |
7106 | dd aRetry |
7698 | dd aRetry |
7107 | dd a_Cancel |
7699 | dd a_Cancel |
7108 | DeleteOrKeepBtn: |
7700 | DeleteOrKeepBtn: |
7109 | dd a_Delete |
7701 | dd a_Delete |
7110 | dd aKeep |
7702 | dd aKeep |
7111 | RetryOrIgnoreBtn: |
7703 | RetryOrIgnoreBtn: |
7112 | dd aRetry |
7704 | dd aRetry |
7113 | dd aIgnore |
7705 | dd aIgnore |
7114 | DeleteOrCancelBtn: |
7706 | DeleteOrCancelBtn: |
7115 | dd a_Delete |
7707 | dd a_Delete |
7116 | dd a_Cancel |
7708 | dd a_Cancel |
7117 | DeleteErrorBtn: |
7709 | DeleteErrorBtn: |
7118 | dd aRetry |
7710 | dd aRetry |
7119 | dd aSkip |
7711 | dd aSkip |
7120 | dd aSkipAll |
7712 | dd aSkipAll |
7121 | dd a_Cancel |
7713 | dd a_Cancel |
7122 | ContinueBtn: |
7714 | ContinueBtn: |
7123 | dd aContinue |
7715 | dd aContinue |
- | 7716 | ||
- | 7717 | EditorExitBtn: |
|
- | 7718 | dd aSave |
|
- | 7719 | dd aDontSave |
|
- | 7720 | dd aContinueEdit |
|
7124 | 7721 | ||
- | 7722 | aCannotOpenFile_ptr dd aCannotOpenFile |
|
- | 7723 | EditConfigErr_ptr: |
|
- | 7724 | dd aEditConfigErr1 |
|
7125 | aCannotOpenFile_ptr dd aCannotOpenFile |
7725 | dd aEditConfigErr2 |
7126 | if lang eq ru |
7726 | if lang eq ru |
7127 | aDeleteCaption db '¤ «¥¨¥',0 |
7727 | aDeleteCaption db '¤ «¥¨¥',0 |
7128 | aConfirmDeleteText db 'ë å®â¨â¥ 㤠«¨âì',0 |
7728 | aConfirmDeleteText db 'ë å®â¨â¥ 㤠«¨âì',0 |
7129 | aDeleteFolder db ' ¯ ¯ªã',0 |
7729 | aDeleteFolder db ' ¯ ¯ªã',0 |
7130 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
7730 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
7131 | aDeleteFile db ' ä ©«',0 |
7731 | aDeleteFile db ' ä ©«',0 |
7132 | aCancelB db '[ ⬥¨âì ]',0 |
7732 | aCancelB db '[ ⬥¨âì ]',0 |
7133 | aCancelBLength = $ - aCancelB - 1 |
7733 | aCancelBLength = $ - aCancelB - 1 |
7134 | aCopyCaption db '®¯¨à®¢ ¨¥',0 |
7734 | aCopyCaption db '®¯¨à®¢ ¨¥',0 |
7135 | aCopy db '[ ®¯¨à®¢ âì ]',0 |
7735 | aCopy db '[ ®¯¨à®¢ âì ]',0 |
7136 | aCopyLength = $ - aCopy - 1 |
7736 | aCopyLength = $ - aCopy - 1 |
7137 | a_Continue db '[ த®«¦¨âì ]',0 |
7737 | a_Continue db '[ த®«¦¨âì ]',0 |
7138 | a_ContinueLength = $ - a_Continue - 1 |
7738 | a_ContinueLength = $ - a_Continue - 1 |
7139 | aCopy1 db '®¯¨à®¢ âì ',0 |
7739 | aCopy1 db '®¯¨à®¢ âì ',0 |
7140 | aCopy2 db ' ¢:',0 |
7740 | aCopy2 db ' ¢:',0 |
7141 | aError db '訡ª ',0 |
7741 | aError db '訡ª ',0 |
7142 | aContinue db 'த®«¦¨âì',0 |
7742 | aContinue db 'த®«¦¨âì',0 |
7143 | aRetry db '®¢â®à¨âì',0 |
7743 | aRetry db '®¢â®à¨âì',0 |
7144 | a_Cancel db '⬥¨âì',0 |
7744 | a_Cancel db '⬥¨âì',0 |
7145 | a_Delete db '¤ «¨âì',0 |
7745 | a_Delete db '¤ «¨âì',0 |
7146 | aSkip db 'யãáâ¨âì',0 |
7746 | aSkip db 'யãáâ¨âì',0 |
7147 | aSkipAll db 'யãáâ¨âì ¢á¥',0 |
7747 | aSkipAll db 'யãáâ¨âì ¢á¥',0 |
7148 | error0msg db 'âà ®... ¥â ®è¨¡ª¨',0 |
7748 | error0msg db 'âà ®... ¥â ®è¨¡ª¨',0 |
7149 | error1msg db 'âà ®... ¥ ®¯à¥¤¥«¥ ¡ § ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0 |
7749 | error1msg db 'âà ®... ¥ ®¯à¥¤¥«¥ ¡ § ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0 |
7150 | error2msg db 'ãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë',0 |
7750 | error2msg db 'ãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë',0 |
7151 | error3msg db '¥¨§¢¥áâ ï ä ©«®¢ ï á¨á⥬ ',0 |
7751 | error3msg db '¥¨§¢¥áâ ï ä ©«®¢ ï á¨á⥬ ',0 |
7152 | error4msg db 'âà ®... 訡ª 4',0 |
7752 | error4msg db 'âà ®... 訡ª 4',0 |
7153 | error5msg db ' ©« ¥ ©¤¥',0 |
7753 | error5msg db ' ©« ¥ ©¤¥',0 |
7154 | error6msg db ' ©« § ª®ç¨«áï',0 |
7754 | error6msg db ' ©« § ª®ç¨«áï',0 |
7155 | error7msg db 'âà ®... ª § â¥«ì ¢¥ ¯ ¬ï⨠¯à¨«®¦¥¨ï',0 |
7755 | error7msg db 'âà ®... ª § â¥«ì ¢¥ ¯ ¬ï⨠¯à¨«®¦¥¨ï',0 |
7156 | error8msg db '¨áª § ¯®«¥',0 |
7756 | error8msg db '¨áª § ¯®«¥',0 |
7157 | error9msg db ' ©«®¢ ï áâàãªâãà à §àãè¥ ',0 |
7757 | error9msg db ' ©«®¢ ï áâàãªâãà à §àãè¥ ',0 |
7158 | error10msg db '®áâ㯠§ ¯à¥éñ',0 |
7758 | error10msg db '®áâ㯠§ ¯à¥éñ',0 |
7159 | error11msg db '訡ª ãáâனá⢠',0 |
7759 | error11msg db '訡ª ãáâனá⢠',0 |
7160 | error30msg db '¥¤®áâ â®ç® ¯ ¬ïâ¨',0 |
7760 | error30msg db '¥¤®áâ â®ç® ¯ ¬ïâ¨',0 |
7161 | error31msg db ' ©« ¥ ï¥âáï ¨á¯®«ï¥¬ë¬',0 |
7761 | error31msg db ' ©« ¥ ï¥âáï ¨á¯®«ï¥¬ë¬',0 |
7162 | error32msg db '«¨èª®¬ ¬®£® ¯à®æ¥áᮢ',0 |
7762 | error32msg db '«¨èª®¬ ¬®£® ¯à®æ¥áᮢ',0 |
7163 | aUnknownError db '¥¨§¢¥áâë© ª®¤ ®è¨¡ª¨: ',0 |
7763 | aUnknownError db '¥¨§¢¥áâë© ª®¤ ®è¨¡ª¨: ',0 |
7164 | aCannotReadFolder db '¥ ¬®£ã ¯à®ç¨â âì ¯ ¯ªã',0 |
7764 | aCannotReadFolder db '¥ ¬®£ã ¯à®ç¨â âì ¯ ¯ªã',0 |
7165 | aRunError db '訡ª ¯à¨ § ¯ã᪥ ¯à®£à ¬¬ë:',0 |
7765 | aRunError db '訡ª ¯à¨ § ¯ã᪥ ¯à®£à ¬¬ë:',0 |
7166 | aFileNameTooBig db '®«®¥ ¨¬ï ä ©« ᫨誮¬ ¤«¨®¥',0 |
7766 | aFileNameTooBig db '®«®¥ ¨¬ï ä ©« ᫨誮¬ ¤«¨®¥',0 |
7167 | aFolderNameTooBig db '®«®¥ ¨¬ï ¯ ¯ª¨ ᫨誮¬ ¤«¨®¥',0 |
7767 | aFolderNameTooBig db '®«®¥ ¨¬ï ¯ ¯ª¨ ᫨誮¬ ¤«¨®¥',0 |
7168 | aCmdLineTooBig db '®¬ ¤ ï áâப ¯à¥¢ëè ¥â £à ¨æã OS ¢ 256 ᨬ¢®«®¢',0 |
7768 | aCmdLineTooBig db '®¬ ¤ ï áâப ¯à¥¢ëè ¥â £à ¨æã OS ¢ 256 ᨬ¢®«®¢',0 |
7169 | aCannotCopyToSelf db ' ©« ¥ ¬®¦¥â ¡ëâì ᪮¯¨à®¢ ¢ á ¬®£® ᥡï',0 |
7769 | aCannotCopyToSelf db ' ©« ¥ ¬®¦¥â ¡ëâì ᪮¯¨à®¢ ¢ á ¬®£® ᥡï',0 |
7170 | aCannotReadFile db '¥ ¬®£ã ¯à®ç¨â âì ä ©«',0 |
7770 | aCannotReadFile db '¥ ¬®£ã ¯à®ç¨â âì ä ©«',0 |
7171 | aIncompleteFile db 'ë« ¯®«ãç¥ ¥¯®«ë© ä ©«. ¤ «¨âì ¥£®?',0 |
7771 | aIncompleteFile db 'ë« ¯®«ãç¥ ¥¯®«ë© ä ©«. ¤ «¨âì ¥£®?',0 |
7172 | aKeep db 'áâ ¢¨âì',0 |
7772 | aKeep db 'áâ ¢¨âì',0 |
7173 | aCannotWriteFile db '¥ ¬®£ã § ¯¨á âì ¢ ä ©«',0 |
7773 | aCannotWriteFile db '¥ ¬®£ã § ¯¨á âì ¢ ä ©«',0 |
7174 | aCannotDeleteFile db '¥ ¬®£ã 㤠«¨âì ä ©«',0 |
7774 | aCannotDeleteFile db '¥ ¬®£ã 㤠«¨âì ä ©«',0 |
7175 | aCannotDeleteFolder db '¥ ¬®£ã 㤠«¨âì ¯ ¯ªã',0 |
7775 | aCannotDeleteFolder db '¥ ¬®£ã 㤠«¨âì ¯ ¯ªã',0 |
7176 | aNotFolder db '¥ ï¥âáï ¯ ¯ª®©',0 |
7776 | aNotFolder db '¥ ï¥âáï ¯ ¯ª®©',0 |
7177 | aIgnore db '£®à¨à®¢ âì',0 |
7777 | aIgnore db '£®à¨à®¢ âì',0 |
7178 | aMkDirCaption db '®§¤ ¨¥ ¯ ¯ª¨',0 |
7778 | aMkDirCaption db '®§¤ ¨¥ ¯ ¯ª¨',0 |
7179 | aMkDir db '®§¤ âì ¯ ¯ªã',0 |
7779 | aMkDir db '®§¤ âì ¯ ¯ªã',0 |
7180 | aMkDirLen = $ - aMkDir - 1 |
7780 | aMkDirLen = $ - aMkDir - 1 |
7181 | aCannotMakeFolder db '¥ ¬®£ã ᮧ¤ âì ¯ ¯ªã',0 |
7781 | aCannotMakeFolder db '¥ ¬®£ã ᮧ¤ âì ¯ ¯ªã',0 |
7182 | aName db 3,'•' |
7782 | aName db 3,'•' |
7183 | aSize db 6,' §¬¥à' |
7783 | aSize db 6,' §¬¥à' |
7184 | aDate db 4,' â ' |
7784 | aDate db 4,' â ' |
7185 | aTime db 5,'६ï' |
7785 | aTime db 5,'६ï' |
7186 | aCannotLoadDLL db '¥ ¬®£ã § £à㧨âì DLL',0 |
7786 | aCannotLoadDLL db '¥ ¬®£ã § £à㧨âì DLL',0 |
7187 | aCannotLoadPlugin db '¥ ¬®£ã § £à㧨âì ¯« £¨',0 |
7787 | aCannotLoadPlugin db '¥ ¬®£ã § £à㧨âì ¯« £¨',0 |
7188 | aInvalidDLL db ' ©« ¥ ©¤¥ ¨«¨ ¨¬¥¥â ¥¢¥àë© ä®à¬ â',0 |
7788 | aInvalidDLL db ' ©« ¥ ©¤¥ ¨«¨ ¨¬¥¥â ¥¢¥àë© ä®à¬ â',0 |
7189 | aMissingExport db '¥®¡å®¤¨¬ ï äãªæ¨ï ¥ ©¤¥ ',0 |
7789 | aMissingExport db '¥®¡å®¤¨¬ ï äãªæ¨ï ¥ ©¤¥ ',0 |
7190 | aInitFailed db '訡ª ¯à¨ ¨¨æ¨ «¨§ 樨',0 |
7790 | aInitFailed db '訡ª ¯à¨ ¨¨æ¨ «¨§ 樨',0 |
7191 | aIncompatibleVersion db '¥á®¢¬¥á⨬ ï ¢¥àá¨ï',0 |
7791 | aIncompatibleVersion db '¥á®¢¬¥á⨬ ï ¢¥àá¨ï',0 |
7192 | aTables db ' ¡«¨æë',0 |
7792 | aTables db ' ¡«¨æë',0 |
7193 | aSelect db '®¬¥â¨âì',0 |
7793 | aSelect db '®¬¥â¨âì',0 |
7194 | aDeselect db 'ïâì',0 |
7794 | aDeselect db 'ïâì',0 |
7195 | aCannotOpenFile db '訡ª ¯à¨ ®âªàë⨨ ä ©« ',0 |
7795 | aCannotOpenFile db '訡ª ¯à¨ ®âªàë⨨ ä ©« ',0 |
7196 | aCannotSetFolder db '¥ ¬®£ã § ©â¨ ¢ ¯ ¯ªã',0 |
7796 | aCannotSetFolder db '¥ ¬®£ã § ©â¨ ¢ ¯ ¯ªã',0 |
- | 7797 | aSearch db '®¨áª',0 |
|
- | 7798 | aEditConfigErr1 db '訡ª ¢ ª®ä¨£ãà 樨 ¯« £¨®¢ ¤«ï । ªâ®à .',0 |
|
- | 7799 | aEditConfigErr2 db '®¯à®¡ã©â¥ ã¡à âì «¨è¨¥ ¯« £¨ë.',0 |
|
- | 7800 | aEditNoMemory db ' ©« ᫨誮¬ ¢¥«¨ª ¤«ï § £à㧪¨ ¢ । ªâ®à.',0 |
|
- | 7801 | aLine db ' âப ' |
|
- | 7802 | aCol db ' ®« ' |
|
- | 7803 | aEditorTitle db '¥¤ ªâ®à',0 |
|
- | 7804 | aFileModified db ' ©« ¡ë« ¨§¬¥ñ',0 |
|
- | 7805 | aSave db '®åà ¨âì',0 |
|
- | 7806 | aDontSave db '¥ á®åà ïâì',0 |
|
- | 7807 | aContinueEdit db 'த®«¦¨âì । ªâ¨à®¢ ¨¥',0 |
|
- | 7808 | aCannotSaveToPlugin db '®åà ¥¨¥ ä ©«®¢ ¯ ¥«ïå ¯« £¨®¢ ¥ ¯®¤¤¥à¦¨¢ ¥âáï',0 |
|
7197 | else |
7809 | else |
7198 | aDeleteCaption db 'Delete',0 |
7810 | aDeleteCaption db 'Delete',0 |
7199 | aConfirmDeleteText db 'Do you wish to delete',0 |
7811 | aConfirmDeleteText db 'Do you wish to delete',0 |
7200 | aDeleteFolder db ' the folder',0 |
7812 | aDeleteFolder db ' the folder',0 |
7201 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
7813 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
7202 | aDeleteFile db ' the file',0 |
7814 | aDeleteFile db ' the file',0 |
7203 | aDelete db ' Delete ',0 |
7815 | aDelete db ' Delete ',0 |
7204 | aDeleteLength = $ - aDelete - 1 |
7816 | aDeleteLength = $ - aDelete - 1 |
7205 | aCancel db ' Cancel ',0 |
7817 | aCancel db ' Cancel ',0 |
7206 | aCancelLength = $ - aCancel - 1 |
7818 | aCancelLength = $ - aCancel - 1 |
7207 | aCancelB db '[ Cancel ]',0 |
7819 | aCancelB db '[ Cancel ]',0 |
7208 | aCancelBLength = $ - aCancelB - 1 |
7820 | aCancelBLength = $ - aCancelB - 1 |
7209 | aCopyCaption db 'Copy',0 |
7821 | aCopyCaption db 'Copy',0 |
7210 | aCopy db '[ Copy ]',0 |
7822 | aCopy db '[ Copy ]',0 |
7211 | aCopyLength = $ - aCopy - 1 |
7823 | aCopyLength = $ - aCopy - 1 |
7212 | a_Continue db '[ Continue ]',0 |
7824 | a_Continue db '[ Continue ]',0 |
7213 | a_ContinueLength = $ - a_Continue - 1 |
7825 | a_ContinueLength = $ - a_Continue - 1 |
7214 | aCopy1 db 'Copy "',0 |
7826 | aCopy1 db 'Copy "',0 |
7215 | aCopy2 db '" to:',0 |
7827 | aCopy2 db '" to:',0 |
7216 | aError db 'Error',0 |
7828 | aError db 'Error',0 |
7217 | aContinue db 'Continue',0 |
7829 | aContinue db 'Continue',0 |
7218 | aRetry db 'Retry',0 |
7830 | aRetry db 'Retry',0 |
7219 | a_Cancel db 'Cancel',0 |
7831 | a_Cancel db 'Cancel',0 |
7220 | a_Delete db 'Delete',0 |
7832 | a_Delete db 'Delete',0 |
7221 | aSkip db 'Skip',0 |
7833 | aSkip db 'Skip',0 |
7222 | aSkipAll db 'Skip all',0 |
7834 | aSkipAll db 'Skip all',0 |
7223 | error0msg db 'Strange... No error',0 |
7835 | error0msg db 'Strange... No error',0 |
7224 | error1msg db 'Strange... Hard disk base and/or partition not defined',0 |
7836 | error1msg db 'Strange... Hard disk base and/or partition not defined',0 |
7225 | error2msg db 'The file system does not support this function',0 |
7837 | error2msg db 'The file system does not support this function',0 |
7226 | error3msg db 'Unknown file system',0 |
7838 | error3msg db 'Unknown file system',0 |
7227 | error4msg db 'Strange... Error 4',0 |
7839 | error4msg db 'Strange... Error 4',0 |
7228 | error5msg db 'File not found',0 |
7840 | error5msg db 'File not found',0 |
7229 | error6msg db 'End of file',0 |
7841 | error6msg db 'End of file',0 |
7230 | error7msg db 'Strange... Pointer lies outside of application memory',0 |
7842 | error7msg db 'Strange... Pointer lies outside of application memory',0 |
7231 | error8msg db 'Disk is full',0 |
7843 | error8msg db 'Disk is full',0 |
7232 | error9msg db 'File structure is destroyed',0 |
7844 | error9msg db 'File structure is destroyed',0 |
7233 | error10msg db 'Access denied',0 |
7845 | error10msg db 'Access denied',0 |
7234 | error11msg db 'Device error',0 |
7846 | error11msg db 'Device error',0 |
7235 | error30msg db 'Not enough memory',0 |
7847 | error30msg db 'Not enough memory',0 |
7236 | error31msg db 'File is not executable',0 |
7848 | error31msg db 'File is not executable',0 |
7237 | error32msg db 'Too many processes',0 |
7849 | error32msg db 'Too many processes',0 |
7238 | aUnknownError db 'Unknown error code: ',0 |
7850 | aUnknownError db 'Unknown error code: ',0 |
7239 | aCannotReadFolder db 'Cannot read folder',0 |
7851 | aCannotReadFolder db 'Cannot read folder',0 |
7240 | aRunError db 'Cannot execute program:',0 |
7852 | aRunError db 'Cannot execute program:',0 |
7241 | aFileNameTooBig db 'Full file name is too long',0 |
7853 | aFileNameTooBig db 'Full file name is too long',0 |
7242 | aFolderNameTooBig db 'Full folder name is too long',0 |
7854 | aFolderNameTooBig db 'Full folder name is too long',0 |
7243 | aCmdLineTooBig db 'Command line is too long (OS limit is 256 symbols)',0 |
7855 | aCmdLineTooBig db 'Command line is too long (OS limit is 256 symbols)',0 |
7244 | aCannotCopyToSelf db 'File cannot be copied onto itself',0 |
7856 | aCannotCopyToSelf db 'File cannot be copied onto itself',0 |
7245 | aCannotReadFile db 'Cannot read file',0 |
7857 | aCannotReadFile db 'Cannot read file',0 |
7246 | aIncompleteFile db 'Incomplete file was retrieved. Delete it?',0 |
7858 | aIncompleteFile db 'Incomplete file was retrieved. Delete it?',0 |
7247 | aKeep db 'Keep',0 |
7859 | aKeep db 'Keep',0 |
7248 | aCannotWriteFile db 'Cannot write to the file',0 |
7860 | aCannotWriteFile db 'Cannot write to the file',0 |
7249 | aCannotDeleteFile db 'Cannot delete the file',0 |
7861 | aCannotDeleteFile db 'Cannot delete the file',0 |
7250 | aCannotDeleteFolder db 'Cannot delete the folder',0 |
7862 | aCannotDeleteFolder db 'Cannot delete the folder',0 |
7251 | aNotFolder db 'is not a folder',0 |
7863 | aNotFolder db 'is not a folder',0 |
7252 | aIgnore db 'Ignore',0 |
7864 | aIgnore db 'Ignore',0 |
7253 | aMkDirCaption db 'Make folder',0 |
7865 | aMkDirCaption db 'Make folder',0 |
7254 | aMkDir db 'Create the folder',0 |
7866 | aMkDir db 'Create the folder',0 |
7255 | aMkDirLen = $ - aMkDir - 1 |
7867 | aMkDirLen = $ - aMkDir - 1 |
7256 | aCannotMakeFolder db 'Cannot create folder',0 |
7868 | aCannotMakeFolder db 'Cannot create folder',0 |
7257 | aName db 4,'Name' |
7869 | aName db 4,'Name' |
7258 | aSize db 4,'Size' |
7870 | aSize db 4,'Size' |
7259 | aDate db 4,'Date' |
7871 | aDate db 4,'Date' |
7260 | aTime db 4,'Time' |
7872 | aTime db 4,'Time' |
7261 | aCannotLoadDLL db 'Cannot load DLL',0 |
7873 | aCannotLoadDLL db 'Cannot load DLL',0 |
7262 | aCannotLoadPlugin db 'Cannot load plugin',0 |
7874 | aCannotLoadPlugin db 'Cannot load plugin',0 |
7263 | aInvalidDLL db 'File is not found or invalid',0 |
7875 | aInvalidDLL db 'File is not found or invalid',0 |
7264 | aMissingExport db 'Required function is not present',0 |
7876 | aMissingExport db 'Required function is not present',0 |
7265 | aInitFailed db 'Initialization failed',0 |
7877 | aInitFailed db 'Initialization failed',0 |
7266 | aIncompatibleVersion db 'Incompatible version',0 |
7878 | aIncompatibleVersion db 'Incompatible version',0 |
7267 | aTables db 'Tables',0 |
7879 | aTables db 'Tables',0 |
7268 | aSelect db 'Select',0 |
7880 | aSelect db 'Select',0 |
7269 | aDeselect db 'Deselect',0 |
7881 | aDeselect db 'Deselect',0 |
7270 | aCannotOpenFile db 'Cannot open the file',0 |
7882 | aCannotOpenFile db 'Cannot open the file',0 |
7271 | aCannotSetFolder db 'Cannot enter to folder',0 |
7883 | aCannotSetFolder db 'Cannot enter to folder',0 |
- | 7884 | aSearch db 'Search',0 |
|
- | 7885 | aEditConfigErr1 db 'Error in configuration of plugins for the editor.',0 |
|
- | 7886 | aEditConfigErr2 db 'Try to remove unnecessary plugins.',0 |
|
- | 7887 | aLine db ' Line' |
|
- | 7888 | aCol db ' Col ' |
|
- | 7889 | aEditorTitle db 'Editor',0 |
|
- | 7890 | aFileModified db 'File has been modified',0 |
|
- | 7891 | aSave db 'Save',0 |
|
- | 7892 | aDontSave db 'Do not save',0 |
|
- | 7893 | aContinueEdit db 'Continue editing',0 |
|
- | 7894 | aCannotSaveToPlugin db 'Saving is not supported for plugin panels',0 |
|
7272 | end if |
7895 | end if |
7273 | 7896 | ||
7274 | aOk db 'OK',0 |
7897 | aOk db 'OK',0 |
7275 | aNoMemory db 'No memory!' |
7898 | aNoMemory db 'No memory!' |
7276 | nullstr db 0 |
7899 | nullstr db 0 |
7277 | aUntitled db 'untitled',0 |
7900 | aUntitled db 'untitled',0 |
7278 | aDotDot db '..',0,0 |
7901 | aDotDot db '..',0,0 |
7279 | standard_dll_path: |
7902 | standard_dll_path: |
7280 | libini_name db '/sys/lib/' |
7903 | libini_name db '/sys/lib/' |
7281 | standard_dll_path_size = $ - standard_dll_path |
7904 | standard_dll_path_size = $ - standard_dll_path |
7282 | db 'libini.obj',0 |
7905 | db 'libini.obj',0 |
7283 | aStart db 'START',0 |
7906 | aStart db 'START',0 |
7284 | aLibInit db 'lib_init',0 |
7907 | aLibInit db 'lib_init',0 |
7285 | aVersion db 'version',0 |
7908 | aVersion db 'version',0 |
7286 | aIniGetInt db 'ini.get_int',0 |
7909 | aIniGetInt db 'ini.get_int',0 |
7287 | aIniGetStr db 'ini.get_str',0 |
7910 | aIniGetStr db 'ini.get_str',0 |
7288 | aIniSetInt db 'ini.set_int',0 |
7911 | aIniSetInt db 'ini.set_int',0 |
7289 | aIniEnumKeys db 'ini.enum_keys',0 |
7912 | aIniEnumKeys db 'ini.enum_keys',0 |
7290 | aPluginLoad db 'plugin_load',0 |
7913 | aPluginLoad db 'plugin_load',0 |
7291 | aPluginUnload db 'plugin_unload',0 |
7914 | aPluginUnload db 'plugin_unload',0 |
7292 | aGetattr db 'getattr',0 |
7915 | aGetattr db 'getattr',0 |
7293 | aOpen db 'open',0 |
7916 | aOpen db 'open',0 |
7294 | aRead db 'read',0 |
7917 | aRead db 'read',0 |
7295 | aSetpos db 'setpos',0 |
7918 | aSetpos db 'setpos',0 |
7296 | aClose db 'close',0 |
7919 | aClose db 'close',0 |
7297 | aOpenFilePlugin db 'OpenFilePlugin',0 |
7920 | aOpenFilePlugin db 'OpenFilePlugin',0 |
7298 | aClosePlugin db 'ClosePlugin',0 |
7921 | aClosePlugin db 'ClosePlugin',0 |
7299 | aReadFolder db 'ReadFolder',0 |
7922 | aReadFolder db 'ReadFolder',0 |
7300 | aSetFolder db 'SetFolder',0 |
7923 | aSetFolder db 'SetFolder',0 |
7301 | aGetOpenPluginInfo db 'GetOpenPluginInfo',0 |
7924 | aGetOpenPluginInfo db 'GetOpenPluginInfo',0 |
7302 | aGetPanelTitle db 'GetPanelTitle',0 |
7925 | aGetPanelTitle db 'GetPanelTitle',0 |
7303 | aGetFiles db 'GetFiles',0 |
7926 | aGetFiles db 'GetFiles',0 |
- | 7927 | aEditInfoSize db 'EditInfoSize',0 |
|
7304 | 7928 | ||
7305 | aConfirmations db 'Confirmations',0 |
7929 | aConfirmations db 'Confirmations',0 |
7306 | aConfirmDelete db 'Delete',0 |
7930 | aConfirmDelete db 'Delete',0 |
7307 | aConfirmDeleteIncomplete db 'DeleteIncomplete',0 |
7931 | aConfirmDeleteIncomplete db 'DeleteIncomplete',0 |
7308 | 7932 | ||
7309 | aPanels db 'Panels',0 |
7933 | aPanels db 'Panels',0 |
7310 | aLeftViewMode db 'LeftViewMode',0 |
7934 | aLeftViewMode db 'LeftViewMode',0 |
7311 | aRightViewMode db 'RightViewMode',0 |
7935 | aRightViewMode db 'RightViewMode',0 |
- | 7936 | ||
- | 7937 | aEditor db 'Editor',0 |
|
- | 7938 | aEolStyle db 'EOLStyle',0 |
|
7312 | 7939 | ||
7313 | aAssociations db 'Associations',0 |
7940 | aAssociations db 'Associations',0 |
7314 | aPlugins db 'Plugins',0 |
7941 | aPlugins db 'Plugins',0 |
7315 | aMenu db 'Menu',0 |
7942 | aMenu db 'Menu',0 |
7316 | aFolderShortcuts db 'FolderShortcuts',0 |
7943 | aFolderShortcuts db 'FolderShortcuts',0 |
7317 | aShortcut db 'Shortcut' |
7944 | aShortcut db 'Shortcut' |
7318 | .d db '0',0 |
7945 | .d db '0',0 |
7319 | 7946 | ||
7320 | align 4 |
7947 | align 4 |
7321 | ini_import: |
7948 | ini_import: |
7322 | ini.get_int dd aIniGetInt |
7949 | ini.get_int dd aIniGetInt |
7323 | ini.get_str dd aIniGetStr |
7950 | ini.get_str dd aIniGetStr |
7324 | ini.enum_keys dd aIniEnumKeys |
7951 | ini.enum_keys dd aIniEnumKeys |
7325 | ini.set_int dd aIniSetInt |
7952 | ini.set_int dd aIniSetInt |
7326 | dd 0 |
7953 | dd 0 |
7327 | 7954 | ||
7328 | plugin_exported: |
7955 | plugin_exported: |
7329 | dd aPluginUnload |
7956 | dd aPluginUnload |
7330 | dd aGetattr |
7957 | dd aGetattr |
7331 | dd aOpen |
7958 | dd aOpen |
7332 | dd aRead |
7959 | dd aRead |
7333 | dd aSetpos |
7960 | dd aSetpos |
7334 | dd aClose |
7961 | dd aClose |
7335 | dd aOpenFilePlugin |
7962 | dd aOpenFilePlugin |
7336 | dd aClosePlugin |
7963 | dd aClosePlugin |
7337 | dd aReadFolder |
7964 | dd aReadFolder |
7338 | dd aSetFolder |
7965 | dd aSetFolder |
7339 | dd aGetOpenPluginInfo |
7966 | dd aGetOpenPluginInfo |
7340 | dd aGetPanelTitle |
7967 | dd aGetPanelTitle |
7341 | dd aGetFiles |
7968 | dd aGetFiles |
- | 7969 | dd aEditInfoSize |
|
7342 | dd 0 |
7970 | dd 0 |
7343 | plugin_exported_default: |
7971 | plugin_exported_default: |
7344 | dd plugin_unload_default |
7972 | dd plugin_unload_default |
7345 | dd getattr_default |
7973 | dd getattr_default |
7346 | dd open_default |
7974 | dd open_default |
7347 | dd read |
7975 | dd read |
7348 | dd setpos_default |
7976 | dd setpos_default |
7349 | dd close |
7977 | dd close |
7350 | dd OpenFilePlugin_default |
7978 | dd OpenFilePlugin_default |
7351 | dd ClosePlugin_default |
7979 | dd ClosePlugin_default |
7352 | dd ReadFolder_default |
7980 | dd ReadFolder_default |
7353 | dd SetFolder_default |
7981 | dd SetFolder_default |
7354 | dd GetOpenPluginInfo_default |
7982 | dd GetOpenPluginInfo_default |
7355 | dd GetPanelTitle_default |
7983 | dd GetPanelTitle_default |
7356 | dd GetFiles_default |
7984 | dd GetFiles_default |
- | 7985 | dd 0 ; default value for EditInfoSize |
|
7357 | 7986 | ||
7358 | kfar_info: |
7987 | kfar_info: |
7359 | dd .size |
7988 | dd .size |
7360 | dd version_dword |
7989 | dd version_dword |
7361 | dd open |
7990 | dd open |
7362 | dd open2 |
7991 | dd open2 |
7363 | dd read |
7992 | dd read |
7364 | dd -1 ; write: to be implemented |
7993 | dd -1 ; write: to be implemented |
7365 | dd seek |
7994 | dd seek |
7366 | dd tell |
7995 | dd tell |
7367 | dd -1 ; flush: to be implemented |
7996 | dd -1 ; flush: to be implemented |
7368 | dd filesize |
7997 | dd filesize |
7369 | dd close |
7998 | dd close |
7370 | dd xpgalloc |
7999 | dd xpgalloc |
7371 | dd xpgrealloc |
8000 | dd xpgrealloc |
7372 | dd pgfree |
8001 | dd pgfree |
7373 | dd getfreemem |
8002 | dd getfreemem |
7374 | dd libini_alloc |
8003 | dd libini_alloc |
7375 | dd libini_realloc |
8004 | dd libini_realloc |
7376 | dd libini_free |
8005 | dd libini_free |
7377 | dd menu |
8006 | dd menu |
7378 | dd menu_centered_in |
8007 | dd menu_centered_in |
7379 | dd DialogBox |
8008 | dd DialogBox |
7380 | dd SayErr |
8009 | dd SayErr |
7381 | dd Message |
8010 | dd Message |
7382 | dd cur_width |
8011 | dd cur_width |
7383 | .size = $ - kfar_info |
8012 | .size = $ - kfar_info |
7384 | 8013 | ||
7385 | plugins dd 0 |
8014 | plugins dd 0 |
7386 | num_plugins dd 0 |
8015 | num_plugins dd 0 |
7387 | alloc_plugins dd 0 |
8016 | alloc_plugins dd 0 |
- | 8017 | ||
- | 8018 | EditPlugInfo dd 0 |
|
- | 8019 | EditEOLStyle db edit.eol_unix |
|
7388 | 8020 | ||
7389 | virtual at 0 |
8021 | virtual at 0 |
7390 | PluginInfo: |
8022 | PluginInfo: |
7391 | .unload dd ? |
8023 | .unload dd ? |
7392 | .getattr dd ? |
8024 | .getattr dd ? |
7393 | .open dd ? |
8025 | .open dd ? |
7394 | .read dd ? |
8026 | .read dd ? |
7395 | .setpos dd ? |
8027 | .setpos dd ? |
7396 | .close dd ? |
8028 | .close dd ? |
7397 | .OpenFilePlugin dd ? |
8029 | .OpenFilePlugin dd ? |
7398 | .ClosePlugin dd ? |
8030 | .ClosePlugin dd ? |
7399 | .ReadFolder dd ? |
8031 | .ReadFolder dd ? |
7400 | .SetFolder dd ? |
8032 | .SetFolder dd ? |
7401 | .GetOpenPluginInfo dd ? |
8033 | .GetOpenPluginInfo dd ? |
7402 | .GetPanelTitle dd ? |
8034 | .GetPanelTitle dd ? |
7403 | .GetFiles dd ? |
8035 | .GetFiles dd ? |
- | 8036 | .EditInfoSize dd ? |
|
- | 8037 | .EditInfoOffs dd ? |
|
7404 | .size = $ |
8038 | .size = $ |
7405 | end virtual |
8039 | end virtual |
7406 | 8040 | ||
7407 | virtual at 0 |
8041 | virtual at 0 |
7408 | PanelMode: |
8042 | PanelMode: |
7409 | ; up to 16 columns on one panel |
8043 | ; up to 16 columns on one panel |
7410 | .NumColumns dd ? |
8044 | .NumColumns dd ? |
7411 | ; available column types: |
8045 | ; available column types: |
7412 | COLUMN_TYPE_NONE = 0 |
8046 | COLUMN_TYPE_NONE = 0 |
7413 | COLUMN_TYPE_NAME = 1 |
8047 | COLUMN_TYPE_NAME = 1 |
7414 | COLUMN_NAME_MARK = 10h ; (reserved) |
8048 | COLUMN_NAME_MARK = 10h ; (reserved) |
7415 | COLUMN_NAME_NOPATH = 20h ; (reserved) |
8049 | COLUMN_NAME_NOPATH = 20h ; (reserved) |
7416 | COLUMN_NAME_RIGHTALIGN = 40h ; (reserved) |
8050 | COLUMN_NAME_RIGHTALIGN = 40h ; (reserved) |
7417 | COLUMN_TYPE_SIZE = 2 |
8051 | COLUMN_TYPE_SIZE = 2 |
7418 | COLUMN_SIZE_COMMA = 10h ; (reserved) |
8052 | COLUMN_SIZE_COMMA = 10h ; (reserved) |
7419 | COLUMN_TYPE_PACKED_SIZE = 3 ; (reserved) |
8053 | COLUMN_TYPE_PACKED_SIZE = 3 ; (reserved) |
7420 | COLUMN_TYPE_DATE = 4 |
8054 | COLUMN_TYPE_DATE = 4 |
7421 | COLUMN_TYPE_TIME = 5 |
8055 | COLUMN_TYPE_TIME = 5 |
7422 | COLUMN_TYPE_DATETIME = 6 ; (reserved) |
8056 | COLUMN_TYPE_DATETIME = 6 ; (reserved) |
7423 | COLUMN_TYPE_DATETIME_CREATION = 7 ; (reserved) |
8057 | COLUMN_TYPE_DATETIME_CREATION = 7 ; (reserved) |
7424 | COLUMN_TYPE_DATETIME_ACCESS = 8 ; (reserved) |
8058 | COLUMN_TYPE_DATETIME_ACCESS = 8 ; (reserved) |
7425 | COLUMN_TYPE_ATTRIBUTES = 9 ; (reserved) |
8059 | COLUMN_TYPE_ATTRIBUTES = 9 ; (reserved) |
7426 | COLUMN_TYPE_DESCRIPTION = 10 ; (reserved) |
8060 | COLUMN_TYPE_DESCRIPTION = 10 ; (reserved) |
7427 | COLUMN_TYPE_OWNER = 11 ; (reserved) |
8061 | COLUMN_TYPE_OWNER = 11 ; (reserved) |
7428 | COLUMN_TYPE_NUMLINKS = 12 ; (reserved) |
8062 | COLUMN_TYPE_NUMLINKS = 12 ; (reserved) |
7429 | COLUMN_TYPE_CUSTOM = 13 ; (reserved) |
8063 | COLUMN_TYPE_CUSTOM = 13 ; (reserved) |
7430 | .ColumnTypes rb 16 |
8064 | .ColumnTypes rb 16 |
7431 | 8065 | ||
7432 | .ColumnWidths rb 16 |
8066 | .ColumnWidths rb 16 |
7433 | .bFullScreen db ? ; (reserved) |
8067 | .bFullScreen db ? ; (reserved) |
7434 | .bAlignExtensions db ? |
8068 | .bAlignExtensions db ? |
7435 | rb 2 |
8069 | rb 2 |
7436 | .size = $ |
8070 | .size = $ |
7437 | end virtual |
8071 | end virtual |
7438 | 8072 | ||
7439 | align 4 |
8073 | align 4 |
7440 | column_headers: |
8074 | column_headers: |
7441 | dd nullstr |
8075 | dd nullstr |
7442 | dd aName |
8076 | dd aName |
7443 | dd aSize |
8077 | dd aSize |
7444 | dd nullstr |
8078 | dd nullstr |
7445 | dd aDate |
8079 | dd aDate |
7446 | dd aTime |
8080 | dd aTime |
7447 | draw_column_proc: |
8081 | draw_column_proc: |
7448 | dd draw_empty_column |
8082 | dd draw_empty_column |
7449 | dd draw_name_column |
8083 | dd draw_name_column |
7450 | dd draw_size_column |
8084 | dd draw_size_column |
7451 | dd -1 |
8085 | dd -1 |
7452 | dd draw_date_column |
8086 | dd draw_date_column |
7453 | dd draw_time_column |
8087 | dd draw_time_column |
7454 | colmodes: |
8088 | colmodes: |
7455 | ; ०¨¬ 0 : NM,SC,D |
8089 | ; ०¨¬ 0 : NM,SC,D |
7456 | dd 3 |
8090 | dd 3 |
7457 | db COLUMN_TYPE_NAME+COLUMN_NAME_MARK, COLUMN_TYPE_SIZE+COLUMN_SIZE_COMMA |
8091 | db COLUMN_TYPE_NAME+COLUMN_NAME_MARK, COLUMN_TYPE_SIZE+COLUMN_SIZE_COMMA |
7458 | db COLUMN_TYPE_DATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
8092 | db COLUMN_TYPE_DATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
7459 | db 0, 10, 8 |
8093 | db 0, 10, 8 |
7460 | times 13 db 0 |
8094 | times 13 db 0 |
7461 | db 0, 1 |
8095 | db 0, 1 |
7462 | times 2 db 0 |
8096 | times 2 db 0 |
7463 | ; ०¨¬ 1 : N,N,N |
8097 | ; ०¨¬ 1 : N,N,N |
7464 | dd 3 |
8098 | dd 3 |
7465 | db COLUMN_TYPE_NAME, COLUMN_TYPE_NAME, COLUMN_TYPE_NAME |
8099 | db COLUMN_TYPE_NAME, COLUMN_TYPE_NAME, COLUMN_TYPE_NAME |
7466 | times 13 db 0 |
8100 | times 13 db 0 |
7467 | times 16 db 0 |
8101 | times 16 db 0 |
7468 | db 0, 1 |
8102 | db 0, 1 |
7469 | times 2 db 0 |
8103 | times 2 db 0 |
7470 | ; ०¨¬ 2 : N,N |
8104 | ; ०¨¬ 2 : N,N |
7471 | dd 2 |
8105 | dd 2 |
7472 | db COLUMN_TYPE_NAME, COLUMN_TYPE_NAME |
8106 | db COLUMN_TYPE_NAME, COLUMN_TYPE_NAME |
7473 | times 14 db 0 |
8107 | times 14 db 0 |
7474 | times 16 db 0 |
8108 | times 16 db 0 |
7475 | db 0, 0 |
8109 | db 0, 0 |
7476 | times 2 db 0 |
8110 | times 2 db 0 |
7477 | ; ०¨¬ 3 : N,S,D,T |
8111 | ; ०¨¬ 3 : N,S,D,T |
7478 | dd 4 |
8112 | dd 4 |
7479 | db COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE, COLUMN_TYPE_DATE, COLUMN_TYPE_TIME |
8113 | db COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE, COLUMN_TYPE_DATE, COLUMN_TYPE_TIME |
7480 | times 12 db 0 |
8114 | times 12 db 0 |
7481 | db 0, 6, 8, 5 |
8115 | db 0, 6, 8, 5 |
7482 | times 12 db 0 |
8116 | times 12 db 0 |
7483 | db 0, 1 |
8117 | db 0, 1 |
7484 | times 2 db 0 |
8118 | times 2 db 0 |
7485 | ; ०¨¬ 4 : N,S |
8119 | ; ०¨¬ 4 : N,S |
7486 | dd 2 |
8120 | dd 2 |
7487 | db COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE |
8121 | db COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE |
7488 | times 14 db 0 |
8122 | times 14 db 0 |
7489 | db 0, 6 |
8123 | db 0, 6 |
7490 | times 14 db 0 |
8124 | times 14 db 0 |
7491 | db 0, 0 |
8125 | db 0, 0 |
7492 | times 2 db 0 |
8126 | times 2 db 0 |
7493 | ; ०¨¬ 5 : N,S,P,DM,DC,DA,A |
8127 | ; ०¨¬ 5 : N,S,P,DM,DC,DA,A |
7494 | ; ०¨¬ 6 : N,Z |
8128 | ; ०¨¬ 6 : N,Z |
7495 | ; ०¨¬ 7 : N,S,Z |
8129 | ; ०¨¬ 7 : N,S,Z |
7496 | ; ०¨¬ 8 : N,S,O |
8130 | ; ०¨¬ 8 : N,S,O |
7497 | ; ०¨¬ 9 : N,S,LN |
8131 | ; ०¨¬ 9 : N,S,LN |
7498 | 8132 | ||
7499 | execinfo: |
8133 | execinfo: |
7500 | dd 7 |
8134 | dd 7 |
7501 | dd 0 |
8135 | dd 0 |
7502 | execparams dd 0 |
8136 | execparams dd 0 |
7503 | dd 0 |
8137 | dd 0 |
7504 | dd 0 |
8138 | dd 0 |
7505 | db 0 |
8139 | db 0 |
7506 | execptr dd ? |
8140 | execptr dd ? |
7507 | 8141 | ||
7508 | IncludeIGlobals |
8142 | IncludeIGlobals |
7509 | 8143 | ||
7510 | i_end: |
8144 | i_end: |
7511 | 8145 | ||
7512 | IncludeUGlobals |
8146 | IncludeUGlobals |
7513 | 8147 | ||
7514 | execdata rb 1024 |
8148 | execdata rb 1024 |
7515 | execdataend: |
8149 | execdataend: |
7516 | align 4 |
8150 | align 4 |
7517 | attrinfo.attr rb 40 |
8151 | attrinfo.attr rb 40 |
7518 | 8152 | ||
7519 | panel1_data: |
8153 | panel1_data: |
7520 | panel1_left dd ? |
8154 | panel1_left dd ? |
7521 | panel1_top dd ? |
8155 | panel1_top dd ? |
7522 | panel1_width dd ? |
8156 | panel1_width dd ? |
7523 | panel1_height dd ? |
8157 | panel1_height dd ? |
7524 | panel1_index dd ? |
8158 | panel1_index dd ? |
7525 | panel1_start dd ? |
8159 | panel1_start dd ? |
7526 | panel1_colsz dd ? |
8160 | panel1_colsz dd ? |
7527 | panel1_colst dd ? |
8161 | panel1_colst dd ? |
7528 | panel1_sortmode db ? |
8162 | panel1_sortmode db ? |
7529 | rb 3 |
8163 | rb 3 |
7530 | panel1_nfa dd ? |
8164 | panel1_nfa dd ? |
7531 | panel1_numfiles dd ? |
8165 | panel1_numfiles dd ? |
7532 | panel1_files dd ? |
8166 | panel1_files dd ? |
7533 | panel1_hPlugin dd ? |
8167 | panel1_hPlugin dd ? |
7534 | panel1_hFile dd ? |
8168 | panel1_hFile dd ? |
7535 | panel1_parents dd ? |
8169 | panel1_parents dd ? |
7536 | panel1_parents_sz dd ? |
8170 | panel1_parents_sz dd ? |
7537 | panel1_parents_alloc dd ? |
8171 | panel1_parents_alloc dd ? |
7538 | panel1_colmode dd ? |
8172 | panel1_colmode dd ? |
7539 | panel1_colwidths rd 16+1 |
8173 | panel1_colwidths rd 16+1 |
7540 | panel1_total_num dd ? |
8174 | panel1_total_num dd ? |
7541 | panel1_total_size dq ? |
8175 | panel1_total_size dq ? |
7542 | panel1_selected_num dd ? |
8176 | panel1_selected_num dd ? |
7543 | panel1_selected_size dq ? |
8177 | panel1_selected_size dq ? |
7544 | panel1_plugin_info: |
8178 | panel1_plugin_info: |
7545 | panel1_plugin_flags dd ? |
8179 | panel1_plugin_flags dd ? |
7546 | panel1_dir rb 1024 |
8180 | panel1_dir rb 1024 |
7547 | 8181 | ||
7548 | panel2_data: |
8182 | panel2_data: |
7549 | panel2_left dd ? |
8183 | panel2_left dd ? |
7550 | panel2_top dd ? |
8184 | panel2_top dd ? |
7551 | panel2_width dd ? |
8185 | panel2_width dd ? |
7552 | panel2_height dd ? |
8186 | panel2_height dd ? |
7553 | panel2_index dd ? |
8187 | panel2_index dd ? |
7554 | panel2_start dd ? |
8188 | panel2_start dd ? |
7555 | panel2_colsz dd ? |
8189 | panel2_colsz dd ? |
7556 | panel2_colst dd ? |
8190 | panel2_colst dd ? |
7557 | panel2_sortmode db ? |
8191 | panel2_sortmode db ? |
7558 | rb 3 |
8192 | rb 3 |
7559 | panel2_nfa dd ? |
8193 | panel2_nfa dd ? |
7560 | panel2_numfiles dd ? |
8194 | panel2_numfiles dd ? |
7561 | panel2_files dd ? |
8195 | panel2_files dd ? |
7562 | panel2_hPlugin dd ? |
8196 | panel2_hPlugin dd ? |
7563 | panel2_hFile dd ? |
8197 | panel2_hFile dd ? |
7564 | panel2_parents dd ? |
8198 | panel2_parents dd ? |
7565 | panel2_parents_sz dd ? |
8199 | panel2_parents_sz dd ? |
7566 | panel2_parents_alloc dd ? |
8200 | panel2_parents_alloc dd ? |
7567 | panel2_colmode dd ? |
8201 | panel2_colmode dd ? |
7568 | panel2_colwidths rd 16+1 |
8202 | panel2_colwidths rd 16+1 |
7569 | panel2_total_num dd ? |
8203 | panel2_total_num dd ? |
7570 | panel2_total_size dq ? |
8204 | panel2_total_size dq ? |
7571 | panel2_selected_num dd ? |
8205 | panel2_selected_num dd ? |
7572 | panel2_selected_size dq ? |
8206 | panel2_selected_size dq ? |
7573 | panel2_plugin_info: |
8207 | panel2_plugin_info: |
7574 | panel2_plugin_flags dd ? |
8208 | panel2_plugin_flags dd ? |
7575 | panel2_dir rb 1024 |
8209 | panel2_dir rb 1024 |
7576 | 8210 | ||
7577 | ;console_data rb max_width*max_height*2 |
8211 | ;console_data rb max_width*max_height*2 |
7578 | 8212 | ||
- | 8213 | nomem_dlgsavearea rb 8 + (12+4)*(3+3)*2 |
|
- | 8214 | ||
- | 8215 | quicksearch_savearea rb 22*3*2 |
|
- | 8216 | quicksearch_maxlen = 64 |
|
7579 | nomem_dlgsavearea rb (12+4)*(3+3)*2 |
8217 | quick_search_buf rb 12 + quicksearch_maxlen |
7580 | 8218 | ||
7581 | cur_header rb max_width |
8219 | cur_header rb max_width |
7582 | tmp dd ? |
8220 | tmp dd ? |
7583 | 8221 | ||
7584 | skinh dd ? |
8222 | skinh dd ? |
7585 | std_colors rd 10 |
8223 | std_colors rd 10 |
7586 | 8224 | ||
7587 | min_y dd ? |
8225 | min_y dd ? |
7588 | max_y dd ? |
8226 | max_y dd ? |
7589 | min_x dd ? |
8227 | min_x dd ? |
7590 | max_x dd ? |
8228 | max_x dd ? |
7591 | used_width dd ? |
8229 | used_width dd ? |
7592 | used_height dd ? |
8230 | used_height dd ? |
7593 | 8231 | ||
7594 | wnd_width dd ? |
8232 | wnd_width dd ? |
7595 | wnd_height dd ? |
8233 | wnd_height dd ? |
7596 | 8234 | ||
7597 | column_left dd ? |
8235 | column_left dd ? |
7598 | column_top dd ? |
8236 | column_top dd ? |
7599 | column_width dd ? |
8237 | column_width dd ? |
7600 | column_height dd ? |
8238 | column_height dd ? |
7601 | column_index dd ? |
8239 | column_index dd ? |
7602 | last_column_index dd ? |
8240 | last_column_index dd ? |
7603 | 8241 | ||
7604 | scrpos dq ? |
8242 | scrpos dq ? |
7605 | viewer_right_side dq ? |
8243 | viewer_right_side dq ? |
- | 8244 | ||
- | 8245 | EditDataSize dd ? |
|
- | 8246 | EditBlockStart dd ? |
|
- | 8247 | EditBlockSize dd ? |
|
7606 | 8248 | ||
7607 | saved_file_name: |
8249 | saved_file_name: |
7608 | procinfo rb 1024 |
8250 | procinfo rb 1024 |
7609 | lower_file_name = procinfo + 512 |
8251 | lower_file_name = procinfo + 512 |
7610 | 8252 | ||
7611 | app_path rb 1100 |
8253 | app_path rb 1100 |
7612 | 8254 | ||
7613 | error_msg rb 128 |
8255 | error_msg rb 128 |
7614 | 8256 | ||
7615 | prev_dir rb 1024 |
8257 | prev_dir rb 1024 |
7616 | 8258 | ||
7617 | driveinfo rb 32+304 |
8259 | driveinfo rb 32+304 |
7618 | tmpname rb 32 |
8260 | tmpname rb 32 |
7619 | 8261 | ||
7620 | screens dd ? |
8262 | screens dd ? |
7621 | num_screens dd ? |
8263 | num_screens dd ? |
7622 | active_screen_vtable dd ? |
8264 | active_screen_vtable dd ? |
7623 | active_screen_data dd ? |
8265 | active_screen_data dd ? |
7624 | 8266 | ||
7625 | default_attr dd ? |
8267 | default_attr dd ? |
7626 | left_dotdot_entry rb 40+4 ; 40 bytes for attributes + '..' |
8268 | left_dotdot_entry rb 40+4 ; 40 bytes for attributes + '..' |
7627 | right_dotdot_entry rb 40+4 |
8269 | right_dotdot_entry rb 40+4 |
7628 | 8270 | ||
7629 | aConfirmDeleteTextBuf rb aConfirmDeleteTextMax + 1 |
8271 | aConfirmDeleteTextBuf rb aConfirmDeleteTextMax + 1 |
7630 | CopySourceTextBuf rb 512 |
8272 | CopySourceTextBuf rb 512 |
7631 | CopyDestEditBuf rb 12+512+1 |
8273 | CopyDestEditBuf rb 12+512+1 |
7632 | .length = $ - CopyDestEditBuf - 13 |
8274 | .length = $ - CopyDestEditBuf - 13 |
7633 | 8275 | ||
7634 | enter_string_buf rb 12+512+1 |
8276 | enter_string_buf rb 12+512+1 |
7635 | 8277 | ||
7636 | bMemForImageValidData db ? |
8278 | bMemForImageValidData db ? |
7637 | 8279 | ||
7638 | align 4 |
8280 | align 4 |
7639 | tolower_table rb 256 |
8281 | tolower_table rb 256 |
7640 | layout rb 128 |
8282 | layout rb 128 |
7641 | 8283 | ||
7642 | copy_buffer_size = 65536 |
8284 | copy_buffer_size = 65536 |
7643 | copy_buffer rb copy_buffer_size |
8285 | copy_buffer rb copy_buffer_size |
7644 | 8286 | ||
7645 | filedata_buffer_size = 1024 |
8287 | filedata_buffer_size = 1024 |
7646 | filedata_buffer rb filedata_buffer_size |
8288 | filedata_buffer rb filedata_buffer_size |
7647 | 8289 | ||
7648 | source_hModule dd ? |
8290 | source_hModule dd ? |
7649 | source_hPlugin dd ? |
8291 | source_hPlugin dd ? |
7650 | source_hFile dd ? |
8292 | source_hFile dd ? |
7651 | ; data for directory delete |
8293 | ; data for directory delete |
7652 | ; If directory nested level is >1024, then its full name is too big, |
8294 | ; If directory nested level is >1024, then its full name is too big, |
7653 | ; so we see the overflow when creating full name (we check for this!) |
8295 | ; so we see the overflow when creating full name (we check for this!) |
7654 | del_dir_stack rd 1024 |
8296 | del_dir_stack rd 1024 |
7655 | del_dir_stack_ptr dd ? |
8297 | del_dir_stack_ptr dd ? |
7656 | del_dir_query_size = 32 |
8298 | del_dir_query_size = 32 |
7657 | del_dir_query_area rb 32+304*del_dir_query_size |
8299 | del_dir_query_area rb 32+304*del_dir_query_size |
7658 | 8300 | ||
7659 | label copy_dir_stack dword at del_dir_stack |
8301 | label copy_dir_stack dword at del_dir_stack |
7660 | label copy_dir_stack_ptr dword at del_dir_stack_ptr |
8302 | label copy_dir_stack_ptr dword at del_dir_stack_ptr |
7661 | copy_dir_query_size = del_dir_query_size |
8303 | copy_dir_query_size = del_dir_query_size |
7662 | copy_dir_query_area = del_dir_query_area |
8304 | copy_dir_query_area = del_dir_query_area |
7663 | del_bSkipAll db ? ; for directory errors |
8305 | del_bSkipAll db ? ; for directory errors |
7664 | label copy_bSkipAll byte at del_bSkipAll |
8306 | label copy_bSkipAll byte at del_bSkipAll |
7665 | copy_bSkipAll2 db ? ; for file read/write errors |
8307 | copy_bSkipAll2 db ? ; for file read/write errors |
7666 | copy_bSkipAll3 db ? ; for SetFolder errors |
8308 | copy_bSkipAll3 db ? ; for SetFolder errors |
7667 | 8309 | ||
7668 | bEndSlash db ? |
8310 | bEndSlash db ? |
7669 | bDestIsFolder db ? |
8311 | bDestIsFolder db ? |
7670 | bNeedRestoreName db ? |
8312 | bNeedRestoreName db ? |
7671 | 8313 | ||
7672 | ; stack |
8314 | ; stack |
7673 | align 4 |
8315 | align 4 |
7674 | rb 32768 |
8316 | rb 32768 |
7675 | stacktop: |
8317 | stacktop: |
7676 | 8318 | ||
7677 | mem:=>=>=>=>=>=> |
8319 | mem:=>=>=>=>=>=> |