Rev 314 | Rev 485 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 314 | Rev 321 | ||
---|---|---|---|
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, 0 |
8 | dd 0, 0 |
9 | 9 | ||
10 | include 'lang.inc' |
10 | include 'lang.inc' |
11 | include 'font.inc' |
11 | include 'font.inc' |
12 | include 'sort.inc' |
12 | include 'sort.inc' |
13 | include 'kglobals.inc' |
13 | include 'kglobals.inc' |
14 | include 'memalloc.inc' |
14 | include 'memalloc.inc' |
15 | include 'dialogs.inc' |
15 | include 'dialogs.inc' |
16 | include 'viewer.inc' |
16 | include 'viewer.inc' |
17 | include 'tools.inc' |
17 | include 'tools.inc' |
18 | 18 | ||
19 | start: |
19 | start: |
20 | mov eax, mem |
20 | mov eax, mem |
21 | call mf_init |
21 | call mf_init |
22 | call init_console |
22 | call init_console |
23 | call draw_window |
23 | call draw_window |
24 | push 66 |
24 | push 66 |
25 | pop eax |
25 | pop eax |
26 | push 1 |
26 | push 1 |
27 | pop ebx |
27 | pop ebx |
28 | mov ecx, ebx |
28 | mov ecx, ebx |
29 | int 40h ; set keyboard mode to scancodes |
29 | int 40h ; set keyboard mode to scancodes |
30 | mov esi, def_left_dir |
30 | mov esi, def_left_dir |
31 | mov edi, panel1_dir |
31 | mov edi, panel1_dir |
32 | @@: |
32 | @@: |
33 | lodsb |
33 | lodsb |
34 | stosb |
34 | stosb |
35 | test al, al |
35 | test al, al |
36 | jnz @b |
36 | jnz @b |
37 | @@: |
- | |
38 | mov esi, def_right_dir |
37 | mov esi, def_right_dir |
39 | mov edi, panel2_dir |
38 | mov edi, panel2_dir |
40 | @@: |
39 | @@: |
41 | lodsb |
40 | lodsb |
42 | stosb |
41 | stosb |
43 | test al, al |
42 | test al, al |
44 | jnz @b |
43 | jnz @b |
45 | mov eax, 200 |
44 | mov eax, 200 |
46 | mov [panel1_nfa], eax |
45 | mov [panel1_nfa], eax |
47 | mov [panel2_nfa], eax |
46 | mov [panel2_nfa], eax |
48 | mov eax, 200*4 + 32 + 200*304 |
47 | mov eax, 200*4 + 32 + 200*304 |
49 | push eax |
48 | push eax |
50 | call mf_alloc |
49 | call mf_alloc |
51 | mov [panel1_files], eax |
50 | mov [panel1_files], eax |
52 | pop eax |
51 | pop eax |
53 | call mf_alloc |
52 | call mf_alloc |
54 | mov [panel2_files], eax |
53 | mov [panel2_files], eax |
55 | test eax, eax |
54 | test eax, eax |
56 | jz exit |
55 | jz exit |
57 | cmp [panel1_files], eax |
56 | cmp [panel1_files], eax |
58 | jz exit |
57 | jz exit |
59 | mov [panel1_sortmode], 0 ; sort by name |
58 | mov [panel1_sortmode], 0 ; sort by name |
60 | mov [panel2_sortmode], 0 |
59 | mov [panel2_sortmode], 0 |
61 | mov [num_screens], 1 |
60 | mov [num_screens], 1 |
62 | mov eax, 8 |
61 | mov eax, 8 |
63 | call mf_alloc |
62 | call mf_alloc |
64 | mov [screens], eax |
63 | mov [screens], eax |
65 | test eax, eax |
64 | test eax, eax |
66 | jz exit |
65 | jz exit |
67 | mov ecx, panels_vtable |
66 | mov ecx, panels_vtable |
68 | mov [eax], ecx |
67 | mov [eax], ecx |
69 | mov [active_screen_vtable], ecx |
68 | mov [active_screen_vtable], ecx |
70 | call draw_keybar |
69 | call draw_keybar |
71 | call draw_cmdbar |
70 | call draw_cmdbar |
72 | mov [prev_dir], 0 |
71 | mov [prev_dir], 0 |
73 | mov ebp, panel1_data |
72 | mov ebp, panel1_data |
74 | call read_folder |
73 | call read_folder |
75 | call draw_panel |
74 | call draw_panel |
76 | mov [bSilentFolderMode], 1 |
75 | mov [bSilentFolderMode], 1 |
77 | mov ebp, panel2_data |
76 | mov ebp, panel2_data |
78 | call read_folder |
77 | call read_folder |
79 | call draw_panel |
78 | call draw_panel |
80 | event: |
79 | event: |
81 | push 10 |
80 | push 10 |
82 | pop eax |
81 | pop eax |
83 | int 40h |
82 | int 40h |
84 | dec eax |
83 | dec eax |
85 | jz redraw |
84 | jz redraw |
86 | dec eax |
85 | dec eax |
87 | jz key |
86 | jz key |
88 | ; button - we have only one button, close |
87 | ; button - we have only one button, close |
89 | exit: |
88 | exit: |
90 | or eax, -1 |
89 | or eax, -1 |
91 | int 40h |
90 | int 40h |
92 | redraw: |
91 | redraw: |
93 | ; query kbd state from OS |
92 | ; query kbd state from OS |
94 | mov al, 66 |
93 | mov al, 66 |
95 | push 3 |
94 | push 3 |
96 | pop ebx |
95 | pop ebx |
97 | int 0x40 |
96 | int 0x40 |
98 | and eax, 0x3F |
97 | and eax, 0x3F |
99 | cmp al, [ctrlstate] |
98 | cmp al, [ctrlstate] |
100 | mov [ctrlstate], al |
99 | mov [ctrlstate], al |
101 | jz @f |
100 | jz @f |
102 | call draw_keybar |
101 | call draw_keybar |
103 | @@: |
102 | @@: |
104 | mov al, 9 |
103 | mov al, 9 |
105 | mov ebx, procinfo |
104 | mov ebx, procinfo |
106 | or ecx, -1 |
105 | or ecx, -1 |
107 | int 40h |
106 | int 40h |
108 | ; test if rolled up |
107 | ; test if rolled up |
109 | ; height of rolled up window is [skinh]+3 |
108 | ; height of rolled up window is [skinh]+3 |
110 | mov eax, [ebx+46] |
109 | mov eax, [ebx+46] |
111 | sub eax, [skinh] |
110 | sub eax, [skinh] |
112 | cmp eax, 5 |
111 | cmp eax, 5 |
113 | ja @f |
112 | ja @f |
114 | mov al, 12 |
113 | mov al, 12 |
115 | push 1 |
114 | push 1 |
116 | pop ebx |
115 | pop ebx |
117 | int 0x40 |
116 | int 0x40 |
118 | xor eax, eax |
117 | xor eax, eax |
119 | ; ebx, ecx, edi are ignored by function 0 after first redraw |
118 | ; ebx, ecx, edi are ignored by function 0 after first redraw |
120 | mov edx, 0x53000000 |
119 | mov edx, 0x53000000 |
121 | int 0x40 |
120 | int 0x40 |
122 | mov al, 12 |
121 | mov al, 12 |
123 | inc ebx |
122 | inc ebx |
124 | int 0x40 |
123 | int 0x40 |
125 | jmp event |
124 | jmp event |
126 | @@: |
125 | @@: |
127 | xor ecx, ecx |
126 | xor ecx, ecx |
128 | mov eax, [ebx+42] |
127 | mov eax, [ebx+42] |
129 | mov [wnd_width], eax |
128 | mov [wnd_width], eax |
130 | sub eax, 5*2-1 |
129 | sub eax, 5*2-1 |
131 | jae @f |
130 | jae @f |
132 | xor eax, eax |
131 | xor eax, eax |
133 | @@: |
132 | @@: |
134 | cdq |
133 | cdq |
135 | mov esi, font_width |
134 | mov esi, font_width |
136 | div esi |
135 | div esi |
137 | cmp eax, 54 |
136 | cmp eax, 54 |
138 | jae @f |
137 | jae @f |
139 | mov al, 54 |
138 | mov al, 54 |
140 | mov ch, 1 |
139 | mov ch, 1 |
141 | @@: |
140 | @@: |
142 | cmp eax, 255 |
141 | cmp eax, 255 |
143 | jbe @f |
142 | jbe @f |
144 | mov eax, 255 |
143 | mov eax, 255 |
145 | mov ch, 1 |
144 | mov ch, 1 |
146 | @@: |
145 | @@: |
147 | cmp eax, [cur_width] |
146 | cmp eax, [cur_width] |
148 | mov [cur_width], eax |
147 | mov [cur_width], eax |
149 | setnz cl |
148 | setnz cl |
150 | or cl, ch |
149 | or cl, ch |
151 | test edx, edx |
150 | test edx, edx |
152 | mov [fill_width], edx |
151 | mov [fill_width], edx |
153 | setnz ch |
152 | setnz ch |
154 | mov eax, [ebx+46] |
153 | mov eax, [ebx+46] |
155 | mov [wnd_height], eax |
154 | mov [wnd_height], eax |
156 | sub eax, [skinh] |
155 | sub eax, [skinh] |
157 | sub eax, 5-1 |
156 | sub eax, 5-1 |
158 | jns @f |
157 | jns @f |
159 | xor eax, eax |
158 | xor eax, eax |
160 | @@: |
159 | @@: |
161 | cdq |
160 | cdq |
162 | mov esi, font_height |
161 | mov esi, font_height |
163 | div esi |
162 | div esi |
164 | cmp eax, 8 |
163 | cmp eax, 8 |
165 | jae @f |
164 | jae @f |
166 | mov al, 8 |
165 | mov al, 8 |
167 | mov cl, 1 |
166 | mov cl, 1 |
168 | @@: |
167 | @@: |
169 | cmp eax, 255 |
168 | cmp eax, 255 |
170 | jbe @f |
169 | jbe @f |
171 | mov eax, 255 |
170 | mov eax, 255 |
172 | mov cl, 1 |
171 | mov cl, 1 |
173 | @@: |
172 | @@: |
174 | mov [fill_height], edx |
173 | mov [fill_height], edx |
175 | cmp eax, [cur_height] |
174 | cmp eax, [cur_height] |
176 | mov [cur_height], eax |
175 | mov [cur_height], eax |
177 | jnz .resize |
176 | jnz .resize |
178 | test cl, cl |
177 | test cl, cl |
179 | jnz .resize |
178 | jnz .resize |
180 | test edx, edx |
179 | test edx, edx |
181 | setnz cl |
180 | setnz cl |
182 | or cl, ch |
181 | or cl, ch |
183 | jz @f |
182 | jz @f |
184 | test byte [ebx+70], 1 |
183 | test byte [ebx+70], 1 |
185 | jnz @f |
184 | jnz @f |
186 | .resize: |
185 | .resize: |
187 | push 67 |
186 | push 67 |
188 | pop eax |
187 | pop eax |
189 | or ebx, -1 |
188 | or ebx, -1 |
190 | or ecx, -1 |
189 | or ecx, -1 |
191 | mov edx, [cur_width] |
190 | mov edx, [cur_width] |
192 | imul edx, font_width |
191 | imul edx, font_width |
193 | add edx, 5*2-1 |
192 | add edx, 5*2-1 |
194 | mov esi, [cur_height] |
193 | mov esi, [cur_height] |
195 | imul esi, font_height |
194 | imul esi, font_height |
196 | add esi, [skinh] |
195 | add esi, [skinh] |
197 | add esi, 5-1 |
196 | add esi, 5-1 |
198 | int 40h |
197 | int 40h |
199 | .resize_draw: |
198 | .resize_draw: |
200 | call init_console |
199 | call init_console |
201 | ; call draw_window |
200 | ; call draw_window |
202 | call draw_keybar |
201 | call draw_keybar |
203 | mov ebp, [active_screen_data] |
202 | mov ebp, [active_screen_data] |
204 | mov eax, [active_screen_vtable] |
203 | mov eax, [active_screen_vtable] |
205 | call dword [eax+screen_vtable.OnRedraw] |
204 | call dword [eax+screen_vtable.OnRedraw] |
206 | jmp event |
205 | jmp event |
207 | @@: |
206 | @@: |
208 | call draw_window |
207 | call draw_window |
209 | jmp event |
208 | jmp event |
210 | alt_f9: |
209 | alt_f9: |
211 | cmp [saved_width], -1 |
210 | cmp [saved_width], -1 |
212 | jz @f |
211 | jz @f |
213 | mov eax, [saved_width] |
212 | mov eax, [saved_width] |
214 | mov [cur_width], eax |
213 | mov [cur_width], eax |
215 | or [saved_width], -1 |
214 | or [saved_width], -1 |
216 | mov eax, [saved_height] |
215 | mov eax, [saved_height] |
217 | mov [cur_height], eax |
216 | mov [cur_height], eax |
218 | or [saved_height], -1 |
217 | or [saved_height], -1 |
219 | jmp redraw.resize |
218 | jmp redraw.resize |
220 | @@: |
219 | @@: |
221 | push 48 |
220 | push 48 |
222 | pop eax |
221 | pop eax |
223 | push 5 |
222 | push 5 |
224 | pop ebx |
223 | pop ebx |
225 | int 0x40 |
224 | int 0x40 |
226 | push eax |
225 | push eax |
227 | sub eax, [esp+2] |
226 | sub eax, [esp+2] |
228 | inc eax |
227 | inc eax |
229 | movzx eax, ax |
228 | movzx eax, ax |
230 | sub eax, 10 |
229 | sub eax, 10 |
231 | xor edx, edx |
230 | xor edx, edx |
232 | mov ecx, font_width |
231 | mov ecx, font_width |
233 | div ecx |
232 | div ecx |
234 | xchg [cur_width], eax |
233 | xchg [cur_width], eax |
235 | mov [saved_width], eax |
234 | mov [saved_width], eax |
236 | mov eax, ebx |
235 | mov eax, ebx |
237 | shr ebx, 16 |
236 | shr ebx, 16 |
238 | sub eax, ebx |
237 | sub eax, ebx |
239 | sub eax, 5-1 |
238 | sub eax, 5-1 |
240 | sub eax, [skinh] |
239 | sub eax, [skinh] |
241 | xor edx, edx |
240 | xor edx, edx |
242 | mov ecx, font_height |
241 | mov ecx, font_height |
243 | div ecx |
242 | div ecx |
244 | xchg [cur_height], eax |
243 | xchg [cur_height], eax |
245 | mov [saved_height], eax |
244 | mov [saved_height], eax |
246 | mov ecx, ebx |
245 | mov ecx, ebx |
247 | pop ebx |
246 | pop ebx |
248 | shr ebx, 16 |
247 | shr ebx, 16 |
249 | mov edx, [cur_width] |
248 | mov edx, [cur_width] |
250 | imul edx, font_width |
249 | imul edx, font_width |
251 | add edx, 5*2-1 |
250 | add edx, 5*2-1 |
252 | mov esi, [cur_height] |
251 | mov esi, [cur_height] |
253 | imul esi, font_height |
252 | imul esi, font_height |
254 | add esi, [skinh] |
253 | add esi, [skinh] |
255 | add esi, 4 |
254 | add esi, 4 |
256 | push 67 |
255 | push 67 |
257 | pop eax |
256 | pop eax |
258 | int 0x40 |
257 | int 0x40 |
259 | jmp redraw.resize_draw |
258 | jmp redraw.resize_draw |
260 | key: |
259 | key: |
261 | mov al, 2 |
260 | mov al, 2 |
262 | int 40h |
261 | int 40h |
263 | test al, al |
262 | test al, al |
264 | jnz event |
263 | jnz event |
265 | xchg al, ah |
264 | xchg al, ah |
266 | cmp al, 0xE0 |
265 | cmp al, 0xE0 |
267 | jnz @f |
266 | jnz @f |
268 | mov [bWasE0], 1 |
267 | mov [bWasE0], 1 |
269 | jmp event |
268 | jmp event |
270 | @@: |
269 | @@: |
271 | xchg ah, [bWasE0] |
270 | xchg ah, [bWasE0] |
272 | mov ebp, [active_screen_data] |
271 | mov ebp, [active_screen_data] |
273 | mov edx, [active_screen_vtable] |
272 | mov edx, [active_screen_vtable] |
274 | cmp al, 0x1D |
273 | cmp al, 0x1D |
275 | jz .ctrl_down |
274 | jz .ctrl_down |
276 | cmp al, 0x9D |
275 | cmp al, 0x9D |
277 | jz .ctrl_up |
276 | jz .ctrl_up |
278 | cmp al, 0x2A |
277 | cmp al, 0x2A |
279 | jz .lshift_down |
278 | jz .lshift_down |
280 | cmp al, 0xAA |
279 | cmp al, 0xAA |
281 | jz .lshift_up |
280 | jz .lshift_up |
282 | cmp al, 0x36 |
281 | cmp al, 0x36 |
283 | jz .rshift_down |
282 | jz .rshift_down |
284 | cmp al, 0xB6 |
283 | cmp al, 0xB6 |
285 | jz .rshift_up |
284 | jz .rshift_up |
286 | cmp al, 0x38 |
285 | cmp al, 0x38 |
287 | jz .alt_down |
286 | jz .alt_down |
288 | cmp al, 0xB8 |
287 | cmp al, 0xB8 |
289 | jz .alt_up |
288 | jz .alt_up |
290 | call [edx+screen_vtable.OnKey] |
289 | call [edx+screen_vtable.OnKey] |
291 | jmp event |
290 | jmp event |
292 | .ctrl_down: |
291 | .ctrl_down: |
293 | test ah, ah |
292 | test ah, ah |
294 | jnz .rctrl_down |
293 | jnz .rctrl_down |
295 | or [ctrlstate], 4 |
294 | or [ctrlstate], 4 |
296 | jmp .keybar |
295 | jmp .keybar |
297 | .rctrl_down: |
296 | .rctrl_down: |
298 | or [ctrlstate], 8 |
297 | or [ctrlstate], 8 |
299 | jmp .keybar |
298 | jmp .keybar |
300 | .ctrl_up: |
299 | .ctrl_up: |
301 | test ah, ah |
300 | test ah, ah |
302 | jnz .rctrl_up |
301 | jnz .rctrl_up |
303 | and [ctrlstate], not 4 |
302 | and [ctrlstate], not 4 |
304 | jmp .keybar |
303 | jmp .keybar |
305 | .rctrl_up: |
304 | .rctrl_up: |
306 | and [ctrlstate], not 8 |
305 | and [ctrlstate], not 8 |
307 | .keybar: |
306 | .keybar: |
308 | call draw_keybar |
307 | call draw_keybar |
309 | call draw_image |
308 | call draw_image |
310 | @@: jmp event |
309 | @@: jmp event |
311 | .lshift_down: |
310 | .lshift_down: |
312 | ; ignore E0 2A sequence |
311 | ; ignore E0 2A sequence |
313 | ; e.g. arrow keys with NumLock on generate sequence E0 2A E0 xx / E0 xx+80 E0 AA |
312 | ; e.g. arrow keys with NumLock on generate sequence E0 2A E0 xx / E0 xx+80 E0 AA |
314 | ; where xx is scancode, so we can safely ignore E0 2A |
313 | ; where xx is scancode, so we can safely ignore E0 2A |
315 | test ah, ah |
314 | test ah, ah |
316 | jnz @b |
315 | jnz @b |
317 | or [ctrlstate], 1 |
316 | or [ctrlstate], 1 |
318 | jmp .keybar |
317 | jmp .keybar |
319 | .lshift_up: |
318 | .lshift_up: |
320 | ; ignore E0 AA sequence |
319 | ; ignore E0 AA sequence |
321 | test ah, ah |
320 | test ah, ah |
322 | jnz @b |
321 | jnz @b |
323 | and [ctrlstate], not 1 |
322 | and [ctrlstate], not 1 |
324 | jmp .keybar |
323 | jmp .keybar |
325 | .rshift_down: |
324 | .rshift_down: |
326 | or [ctrlstate], 2 |
325 | or [ctrlstate], 2 |
327 | jmp .keybar |
326 | jmp .keybar |
328 | .rshift_up: |
327 | .rshift_up: |
329 | and [ctrlstate], not 2 |
328 | and [ctrlstate], not 2 |
330 | jmp .keybar |
329 | jmp .keybar |
331 | .alt_down: |
330 | .alt_down: |
332 | test ah, ah |
331 | test ah, ah |
333 | jnz .ralt_down |
332 | jnz .ralt_down |
334 | or [ctrlstate], 0x10 |
333 | or [ctrlstate], 0x10 |
335 | jmp .keybar |
334 | jmp .keybar |
336 | .ralt_down: |
335 | .ralt_down: |
337 | or [ctrlstate], 0x20 |
336 | or [ctrlstate], 0x20 |
338 | jmp .keybar |
337 | jmp .keybar |
339 | .alt_up: |
338 | .alt_up: |
340 | test ah, ah |
339 | test ah, ah |
341 | jnz .ralt_up |
340 | jnz .ralt_up |
342 | and [ctrlstate], not 0x10 |
341 | and [ctrlstate], not 0x10 |
343 | jmp .keybar |
342 | jmp .keybar |
344 | .ralt_up: |
343 | .ralt_up: |
345 | and [ctrlstate], not 0x20 |
344 | and [ctrlstate], not 0x20 |
346 | jmp .keybar |
345 | jmp .keybar |
347 | 346 | ||
348 | process_ctrl_keys: |
347 | process_ctrl_keys: |
349 | cmp byte [esi], 0 |
348 | cmp byte [esi], 0 |
350 | jz .done |
349 | jz .done |
351 | push ecx |
350 | push ecx |
352 | cmp al, [esi] |
351 | cmp al, [esi] |
353 | jz .check |
352 | jz .check |
354 | .cont: |
353 | .cont: |
355 | pop ecx |
354 | pop ecx |
356 | add esi, 8 |
355 | add esi, 8 |
357 | jmp process_ctrl_keys |
356 | jmp process_ctrl_keys |
358 | .done: |
357 | .done: |
359 | stc |
358 | stc |
360 | ret |
359 | ret |
361 | .check: |
360 | .check: |
362 | mov cl, 0 |
361 | mov cl, 0 |
363 | call .check_ctrlkey |
362 | call .check_ctrlkey |
364 | jc .cont |
363 | jc .cont |
365 | mov cl, 2 |
364 | mov cl, 2 |
366 | call .check_ctrlkey |
365 | call .check_ctrlkey |
367 | jc .cont |
366 | jc .cont |
368 | mov cl, 4 |
367 | mov cl, 4 |
369 | call .check_ctrlkey |
368 | call .check_ctrlkey |
370 | jc .cont |
369 | jc .cont |
371 | pop ecx |
370 | pop ecx |
372 | call dword [esi+4] |
371 | call dword [esi+4] |
373 | clc |
372 | clc |
374 | ret |
373 | ret |
375 | .check_ctrlkey: |
374 | .check_ctrlkey: |
376 | push eax edx |
375 | push eax edx |
377 | movzx edx, [ctrlstate] |
376 | movzx edx, [ctrlstate] |
378 | shr edx, cl |
377 | shr edx, cl |
379 | add cl, cl |
378 | add cl, cl |
380 | movzx eax, word [esi+2] |
379 | movzx eax, word [esi+2] |
381 | shr eax, cl |
380 | shr eax, cl |
382 | and eax, 15 |
381 | and eax, 15 |
383 | cmp al, ctrlkey_tests_num |
382 | cmp al, ctrlkey_tests_num |
384 | jae .fail |
383 | jae .fail |
385 | xchg eax, edx |
384 | xchg eax, edx |
386 | and al, 3 |
385 | and al, 3 |
387 | call [ctrlkey_tests + edx*4] |
386 | call [ctrlkey_tests + edx*4] |
388 | cmp al, 1 |
387 | cmp al, 1 |
389 | pop edx eax |
388 | pop edx eax |
390 | ret |
389 | ret |
391 | .fail: |
390 | .fail: |
392 | stc |
391 | stc |
393 | pop edx eax |
392 | pop edx eax |
394 | ret |
393 | ret |
395 | 394 | ||
396 | ctrlkey_test0: |
395 | ctrlkey_test0: |
397 | test al, al |
396 | test al, al |
398 | setz al |
397 | setz al |
399 | ret |
398 | ret |
400 | ctrlkey_test1: |
399 | ctrlkey_test1: |
401 | test al, al |
400 | test al, al |
402 | setnp al |
401 | setnp al |
403 | ret |
402 | ret |
404 | ctrlkey_test2: |
403 | ctrlkey_test2: |
405 | cmp al, 3 |
404 | cmp al, 3 |
406 | setz al |
405 | setz al |
407 | ret |
406 | ret |
408 | ctrlkey_test3: |
407 | ctrlkey_test3: |
409 | cmp al, 1 |
408 | cmp al, 1 |
410 | setz al |
409 | setz al |
411 | ret |
410 | ret |
412 | ctrlkey_test4: |
411 | ctrlkey_test4: |
413 | cmp al, 2 |
412 | cmp al, 2 |
414 | setz al |
413 | setz al |
415 | ret |
414 | ret |
416 | 415 | ||
417 | new_screen: |
416 | new_screen: |
418 | call xmalloc |
417 | call xmalloc |
419 | test eax, eax |
418 | test eax, eax |
420 | jnz @f |
419 | jnz @f |
421 | ret |
420 | ret |
422 | @@: |
421 | @@: |
423 | mov ebp, eax |
422 | mov ebp, eax |
424 | mov ebx, [num_screens] |
423 | mov ebx, [num_screens] |
425 | inc ebx |
424 | inc ebx |
426 | shl ebx, 3 |
425 | shl ebx, 3 |
427 | mov eax, [screens] |
426 | mov eax, [screens] |
428 | call xrealloc |
427 | call xrealloc |
429 | test eax, eax |
428 | test eax, eax |
430 | jnz @f |
429 | jnz @f |
431 | mov eax, ebp |
430 | mov eax, ebp |
432 | call mf_free |
431 | call mf_free |
433 | xor eax, eax |
432 | xor eax, eax |
434 | ret |
433 | ret |
435 | @@: |
434 | @@: |
436 | mov [screens], eax |
435 | mov [screens], eax |
437 | inc [num_screens] |
436 | inc [num_screens] |
438 | mov [eax+ebx-8], edx |
437 | mov [eax+ebx-8], edx |
439 | mov [eax+ebx-4], ebp |
438 | mov [eax+ebx-4], ebp |
440 | mov eax, [num_screens] |
439 | mov eax, [num_screens] |
441 | dec eax |
440 | dec eax |
442 | mov [active_screen], eax |
441 | mov [active_screen], eax |
443 | mov [active_screen_vtable], edx |
442 | mov [active_screen_vtable], edx |
444 | mov [active_screen_data], ebp |
443 | mov [active_screen_data], ebp |
445 | jmp draw_keybar |
444 | jmp draw_keybar |
446 | 445 | ||
447 | next_screen: |
446 | next_screen: |
448 | mov eax, [active_screen] |
447 | mov eax, [active_screen] |
449 | inc eax |
448 | inc eax |
450 | cmp eax, [num_screens] |
449 | cmp eax, [num_screens] |
451 | jnz @f |
450 | jnz @f |
452 | xor eax, eax |
451 | xor eax, eax |
453 | @@: mov [active_screen], eax |
452 | @@: mov [active_screen], eax |
454 | jmp change_screen |
453 | jmp change_screen |
455 | 454 | ||
456 | delete_active_screen: |
455 | delete_active_screen: |
457 | mov edi, [screens] |
456 | mov edi, [screens] |
458 | mov eax, [active_screen] |
457 | mov eax, [active_screen] |
459 | shl eax, 3 |
458 | shl eax, 3 |
460 | add edi, eax |
459 | add edi, eax |
461 | push dword [edi+4] |
460 | push dword [edi+4] |
462 | lea esi, [edi+8] |
461 | lea esi, [edi+8] |
463 | mov ecx, [num_screens] |
462 | mov ecx, [num_screens] |
464 | sub ecx, [active_screen] |
463 | sub ecx, [active_screen] |
465 | dec ecx |
464 | dec ecx |
466 | add ecx, ecx |
465 | add ecx, ecx |
467 | rep movsd |
466 | rep movsd |
468 | dec [num_screens] |
467 | dec [num_screens] |
469 | mov ebx, [num_screens] |
468 | mov ebx, [num_screens] |
470 | shl ebx, 3 |
469 | shl ebx, 3 |
471 | mov eax, [screens] |
470 | mov eax, [screens] |
472 | call mf_realloc ; must succeed, because we decrease size |
471 | call mf_realloc ; must succeed, because we decrease size |
473 | pop eax |
472 | pop eax |
474 | call mf_free |
473 | call mf_free |
475 | and [active_screen], 0 |
474 | and [active_screen], 0 |
476 | 475 | ||
477 | change_screen: |
476 | change_screen: |
478 | pusha |
477 | pusha |
479 | mov eax, [active_screen] |
478 | mov eax, [active_screen] |
480 | mov esi, [screens] |
479 | mov esi, [screens] |
481 | mov ebp, [esi+eax*8+4] |
480 | mov ebp, [esi+eax*8+4] |
482 | mov eax, [esi+eax*8] |
481 | mov eax, [esi+eax*8] |
483 | mov [active_screen_vtable], eax |
482 | mov [active_screen_vtable], eax |
484 | mov [active_screen_data], ebp |
483 | mov [active_screen_data], ebp |
485 | call draw_keybar |
484 | call draw_keybar |
486 | call [eax+screen_vtable.OnRedraw] |
485 | call [eax+screen_vtable.OnRedraw] |
487 | popa |
486 | popa |
488 | ret |
487 | ret |
489 | 488 | ||
490 | F12: |
489 | F12: |
491 | mov eax, [cur_width] |
490 | mov eax, [cur_width] |
492 | add eax, 8 |
491 | add eax, 8 |
493 | mov esi, eax |
492 | mov esi, eax |
494 | mul [num_screens] |
493 | mul [num_screens] |
495 | call xmalloc |
494 | call xmalloc |
496 | test eax, eax |
495 | test eax, eax |
497 | jnz @f |
496 | jnz @f |
498 | ret |
497 | ret |
499 | @@: |
498 | @@: |
500 | mov ebx, eax |
499 | mov ebx, eax |
501 | mov edi, eax |
500 | mov edi, eax |
502 | xor ecx, ecx |
501 | xor ecx, ecx |
503 | .next: |
502 | .next: |
504 | xor eax, eax |
503 | xor eax, eax |
505 | stosd |
504 | stosd |
506 | inc ecx |
505 | inc ecx |
507 | cmp ecx, [num_screens] |
506 | cmp ecx, [num_screens] |
508 | jz @f |
507 | jz @f |
509 | lea eax, [edi+esi-4] |
508 | lea eax, [edi+esi-4] |
510 | mov dword [edi-4], eax |
509 | mov dword [edi-4], eax |
511 | @@: |
510 | @@: |
512 | xor eax, eax |
511 | xor eax, eax |
513 | stosd |
512 | stosd |
514 | dec ecx |
513 | dec ecx |
515 | jz @f |
514 | jz @f |
516 | lea eax, [edi-8] |
515 | lea eax, [edi-8] |
517 | sub eax, esi |
516 | sub eax, esi |
518 | mov dword [edi-4], eax |
517 | mov dword [edi-4], eax |
519 | @@: |
518 | @@: |
520 | mov al, '&' |
519 | mov al, '&' |
521 | stosb |
520 | stosb |
522 | cmp ecx, 36 |
521 | cmp ecx, 36 |
523 | jae .noletter |
522 | jae .noletter |
524 | lea eax, [ecx+'0'] |
523 | lea eax, [ecx+'0'] |
525 | cmp al, '9' |
524 | cmp al, '9' |
526 | jbe @f |
525 | jbe @f |
527 | add al, 7 |
526 | add al, 7 |
528 | @@: |
527 | @@: |
529 | stosb |
528 | stosb |
530 | mov al, '.' |
529 | mov al, '.' |
531 | stosb |
530 | stosb |
532 | jmp .letter_done |
531 | jmp .letter_done |
533 | .noletter: |
532 | .noletter: |
534 | mov al, ' ' |
533 | mov al, ' ' |
535 | stosb |
534 | stosb |
536 | stosb |
535 | stosb |
537 | .letter_done: |
536 | .letter_done: |
538 | mov al, ' ' |
537 | mov al, ' ' |
539 | stosb |
538 | stosb |
540 | pushad |
539 | pushad |
541 | mov eax, [screens] |
540 | mov eax, [screens] |
542 | mov ebp, [eax+ecx*8+4] |
541 | mov ebp, [eax+ecx*8+4] |
543 | mov eax, [eax+ecx*8] |
542 | mov eax, [eax+ecx*8] |
544 | mov ecx, [cur_width] |
543 | mov ecx, [cur_width] |
545 | sub ecx, 12 |
544 | sub ecx, 12 |
546 | call [eax + screen_vtable.getname] |
545 | call [eax + screen_vtable.getname] |
547 | popad |
546 | popad |
548 | sub edi, 4 |
547 | sub edi, 4 |
549 | add edi, [cur_width] |
548 | add edi, [cur_width] |
550 | inc ecx |
549 | inc ecx |
551 | cmp ecx, [num_screens] |
550 | cmp ecx, [num_screens] |
552 | jb .next |
551 | jb .next |
553 | mov eax, [active_screen] |
552 | mov eax, [active_screen] |
554 | mul esi |
553 | mul esi |
555 | add eax, ebx |
554 | add eax, ebx |
556 | push 1 |
555 | push 1 |
557 | push aScreens |
556 | push aScreens |
558 | push eax |
557 | push eax |
559 | call menu |
558 | call menu |
560 | cmp eax, -1 |
559 | cmp eax, -1 |
561 | jz @f |
560 | jz @f |
562 | sub eax, ebx |
561 | sub eax, ebx |
563 | div esi |
562 | div esi |
564 | mov [active_screen], eax |
563 | mov [active_screen], eax |
565 | @@: |
564 | @@: |
566 | mov eax, ebx |
565 | mov eax, ebx |
567 | call mf_free |
566 | call mf_free |
568 | jmp change_screen |
567 | jmp change_screen |
569 | 568 | ||
570 | panels_OnKey: |
569 | panels_OnKey: |
571 | mov ebp, [active_panel] |
570 | mov ebp, [active_panel] |
572 | mov ecx, [ebp + panel1_index - panel1_data] |
571 | mov ecx, [ebp + panel1_index - panel1_data] |
573 | mov edx, [ebp + panel1_start - panel1_data] |
572 | mov edx, [ebp + panel1_start - panel1_data] |
574 | mov ebx, [ebp + panel1_colst - panel1_data] |
573 | mov ebx, [ebp + panel1_colst - panel1_data] |
575 | add ebx, edx |
574 | add ebx, edx |
576 | mov esi, panels_ctrlkeys |
575 | mov esi, panels_ctrlkeys |
577 | jmp process_ctrl_keys |
576 | jmp process_ctrl_keys |
578 | .ret: |
577 | .ret: |
579 | ret |
578 | ret |
580 | .up: |
579 | .up: |
581 | jecxz .ret |
580 | jecxz .ret |
582 | dec ecx |
581 | dec ecx |
583 | mov [ebp + panel1_index - panel1_data], ecx |
582 | mov [ebp + panel1_index - panel1_data], ecx |
584 | cmp ecx, edx |
583 | cmp ecx, edx |
585 | jae .done_redraw |
584 | jae .done_redraw |
586 | mov [ebp + panel1_start - panel1_data], ecx |
585 | mov [ebp + panel1_start - panel1_data], ecx |
587 | .done_redraw: |
586 | .done_redraw: |
588 | ; call draw_panel |
587 | ; call draw_panel |
589 | ; ret |
588 | ; ret |
590 | jmp draw_panel |
589 | jmp draw_panel |
591 | .down: |
590 | .down: |
592 | inc ecx |
591 | inc ecx |
593 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
592 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
594 | jae .ret |
593 | jae .ret |
595 | mov [ebp + panel1_index - panel1_data], ecx |
594 | mov [ebp + panel1_index - panel1_data], ecx |
596 | cmp ecx, ebx |
595 | cmp ecx, ebx |
597 | jb .done_redraw |
596 | jb .done_redraw |
598 | sub ecx, [ebp + panel1_colst - panel1_data] |
597 | sub ecx, [ebp + panel1_colst - panel1_data] |
599 | inc ecx |
598 | inc ecx |
600 | mov [ebp + panel1_start - panel1_data], ecx |
599 | mov [ebp + panel1_start - panel1_data], ecx |
601 | jmp .done_redraw |
600 | jmp .done_redraw |
602 | .left: |
601 | .left: |
603 | jecxz .ret |
602 | jecxz .ret |
604 | sub ecx, [ebp + panel1_colsz - panel1_data] |
603 | sub ecx, [ebp + panel1_colsz - panel1_data] |
605 | jae @f |
604 | jae @f |
606 | xor ecx, ecx |
605 | xor ecx, ecx |
607 | @@: |
606 | @@: |
608 | mov [ebp + panel1_index - panel1_data], ecx |
607 | mov [ebp + panel1_index - panel1_data], ecx |
609 | cmp ecx, edx |
608 | cmp ecx, edx |
610 | jae .done_redraw |
609 | jae .done_redraw |
611 | sub edx, [ebp + panel1_colsz - panel1_data] |
610 | sub edx, [ebp + panel1_colsz - panel1_data] |
612 | jae @f |
611 | jae @f |
613 | xor edx, edx |
612 | xor edx, edx |
614 | @@: |
613 | @@: |
615 | mov [ebp + panel1_start - panel1_data], edx |
614 | mov [ebp + panel1_start - panel1_data], edx |
616 | jmp .done_redraw |
615 | jmp .done_redraw |
617 | .right: |
616 | .right: |
618 | add ecx, [ebp + panel1_colsz - panel1_data] |
617 | add ecx, [ebp + panel1_colsz - panel1_data] |
619 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
618 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
620 | jb @f |
619 | jb @f |
621 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
620 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
622 | dec ecx |
621 | dec ecx |
623 | @@: |
622 | @@: |
624 | mov [ebp + panel1_index - panel1_data], ecx |
623 | mov [ebp + panel1_index - panel1_data], ecx |
625 | cmp ecx, ebx |
624 | cmp ecx, ebx |
626 | jb .done_redraw |
625 | jb .done_redraw |
627 | add ebx, [ebp + panel1_colsz - panel1_data] |
626 | add ebx, [ebp + panel1_colsz - panel1_data] |
628 | cmp ebx, [ebp + panel1_numfiles - panel1_data] |
627 | cmp ebx, [ebp + panel1_numfiles - panel1_data] |
629 | jbe @f |
628 | jbe @f |
630 | mov ebx, [ebp + panel1_numfiles - panel1_data] |
629 | mov ebx, [ebp + panel1_numfiles - panel1_data] |
631 | @@: |
630 | @@: |
632 | sub ebx, [ebp + panel1_colst - panel1_data] |
631 | sub ebx, [ebp + panel1_colst - panel1_data] |
633 | jae @f |
632 | jae @f |
634 | xor ebx, ebx |
633 | xor ebx, ebx |
635 | @@: |
634 | @@: |
636 | mov [ebp + panel1_start - panel1_data], ebx |
635 | mov [ebp + panel1_start - panel1_data], ebx |
637 | jmp .done_redraw |
636 | jmp .done_redraw |
638 | .tab: |
637 | .tab: |
639 | xor [active_panel], panel1_data xor panel2_data |
638 | xor [active_panel], panel1_data xor panel2_data |
640 | call draw_cmdbar |
639 | call draw_cmdbar |
641 | call draw_panel |
640 | call draw_panel |
642 | mov ebp, [active_panel] |
641 | mov ebp, [active_panel] |
643 | jmp .done_redraw |
642 | jmp .done_redraw |
644 | .home: |
643 | .home: |
645 | and [ebp + panel1_start - panel1_data], 0 |
644 | and [ebp + panel1_start - panel1_data], 0 |
646 | and [ebp + panel1_index - panel1_data], 0 |
645 | and [ebp + panel1_index - panel1_data], 0 |
647 | jmp .done_redraw |
646 | jmp .done_redraw |
648 | .end: |
647 | .end: |
649 | mov eax, [ebp + panel1_numfiles - panel1_data] |
648 | mov eax, [ebp + panel1_numfiles - panel1_data] |
650 | dec eax |
649 | dec eax |
651 | mov [ebp + panel1_index - panel1_data], eax |
650 | mov [ebp + panel1_index - panel1_data], eax |
652 | inc eax |
651 | inc eax |
653 | sub eax, [ebp + panel1_colst - panel1_data] |
652 | sub eax, [ebp + panel1_colst - panel1_data] |
654 | jae @f |
653 | jae @f |
655 | xor eax, eax |
654 | xor eax, eax |
656 | @@: |
655 | @@: |
657 | mov [ebp + panel1_start - panel1_data], eax |
656 | mov [ebp + panel1_start - panel1_data], eax |
658 | jmp .done_redraw |
657 | jmp .done_redraw |
659 | .enter: |
658 | .enter: |
660 | call get_curfile_folder_entry |
659 | call get_curfile_folder_entry |
661 | test byte [ecx], 10h |
660 | test byte [ecx], 10h |
662 | jnz .enter_folder |
661 | jnz .enter_folder |
663 | call find_extension |
662 | call find_extension |
664 | jc .run_app |
663 | jc .run_app |
665 | jnz .run_app |
664 | jnz .run_app |
666 | .run_association: |
665 | .run_association: |
667 | mov eax, [edi+4] |
666 | mov eax, [edi+4] |
668 | .run_association2: |
667 | .run_association2: |
669 | mov [execparams], execdata |
668 | mov [execparams], execdata |
670 | mov [execptr], eax |
669 | mov [execptr], eax |
671 | jmp .dorun |
670 | jmp .dorun |
672 | .run_app: |
671 | .run_app: |
673 | mov [execptr], execdata |
672 | mov [execptr], execdata |
674 | and [execparams], 0 |
673 | and [execparams], 0 |
675 | .dorun: |
674 | .dorun: |
676 | lea esi, [ebp + panel1_dir - panel1_data] |
675 | lea esi, [ebp + panel1_dir - panel1_data] |
677 | mov edi, execdata |
676 | mov edi, execdata |
678 | ; TODO: add overflow check |
- | |
679 | @@: |
677 | @@: |
680 | lodsb |
678 | lodsb |
681 | test al, al |
679 | test al, al |
682 | jz @f |
680 | jz @f |
683 | stosb |
681 | stosb |
- | 682 | cmp edi, execdataend-1 |
|
- | 683 | jae .bigfilename |
|
684 | jmp @b |
684 | jmp @b |
685 | @@: |
685 | @@: |
686 | lea esi, [ecx+40] |
686 | lea esi, [ecx+40] |
687 | mov al, '/' |
687 | mov al, '/' |
688 | stosb |
688 | stosb |
689 | @@: |
689 | @@: |
690 | lodsb |
690 | lodsb |
691 | stosb |
691 | stosb |
- | 692 | cmp edi, execdataend |
|
- | 693 | ja .bigfilename |
|
692 | test al, al |
694 | test al, al |
693 | jnz @b |
695 | jnz @b |
694 | ; for fasm call - special handling, because |
696 | ; for fasm call - special handling, because |
695 | ; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile |
697 | ; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile |
696 | ; 2) fasm will probably create new file in directory, so we want to reload panel data |
698 | ; 2) fasm will probably create new file in directory, so we want to reload panel data |
697 | xor edx, edx |
699 | xor edx, edx |
698 | cmp [execparams], edx |
700 | cmp [execparams], edx |
699 | jz .nofasm |
701 | jz .nofasm |
700 | cmp [execptr], fasm |
702 | cmp [execptr], fasm |
701 | jnz .nofasm |
703 | jnz .nofasm |
702 | ; TODO: add buffer/cmdline overflow check |
704 | cmp edi, execdata+(execdataend-execdata)/2 |
- | 705 | ja .bigfilename |
|
703 | mov esi, execdata |
706 | mov esi, execdata |
704 | @@: |
707 | @@: |
705 | lodsb |
708 | lodsb |
706 | stosb |
709 | stosb |
707 | test al, al |
710 | test al, al |
708 | jnz @b |
711 | jnz @b |
709 | mov byte [esi-1], ',' |
712 | mov byte [esi-1], ',' |
710 | inc edx |
713 | inc edx |
711 | ; output file: no extension if input file has extension, '.bin' otherwise |
714 | ; output file: no extension if input file has extension, '.bin' otherwise |
712 | push edi |
715 | push edi |
713 | @@: |
716 | @@: |
714 | dec edi |
717 | dec edi |
715 | cmp byte [edi], '.' |
718 | cmp byte [edi], '.' |
716 | jz .ptfound |
719 | jz .ptfound |
717 | cmp byte [edi], '/' |
720 | cmp byte [edi], '/' |
718 | jnz @b |
721 | jnz @b |
719 | pop edi |
722 | pop edi |
- | 723 | cmp edi, execdataend-4 |
|
- | 724 | ja .bigfilename |
|
720 | mov dword [edi-1], '.bin' |
725 | mov dword [edi-1], '.bin' |
721 | mov byte [edi+3], 0 |
726 | mov byte [edi+3], 0 |
722 | jmp .nofasm |
727 | jmp .nofasm |
723 | .ptfound: |
728 | .ptfound: |
724 | mov byte [edi], 0 |
729 | mov byte [edi], 0 |
725 | pop edi |
730 | pop edi |
726 | .nofasm: |
731 | .nofasm: |
- | 732 | mov ebx, execinfo |
|
- | 733 | ; if command line is more than 256 symbols, the kernel will truncate it |
|
- | 734 | ; we does not want this! |
|
- | 735 | ; N.B. We know that command line is either NULL or execdata, which is always ASCIIZ string, |
|
- | 736 | ; but can be up to 1023 symbols |
|
- | 737 | mov esi, [ebx+8] |
|
- | 738 | test esi, esi |
|
- | 739 | jz .cmdlinelenok |
|
- | 740 | @@: |
|
- | 741 | lodsb |
|
- | 742 | test al, al |
|
- | 743 | jnz @b |
|
- | 744 | sub esi, [ebx+8] |
|
- | 745 | dec esi |
|
- | 746 | cmp esi, 256 |
|
- | 747 | ja .bigcmdline |
|
- | 748 | .cmdlinelenok: |
|
727 | push 70 |
749 | push 70 |
728 | pop eax |
750 | pop eax |
729 | mov ebx, execinfo |
- | |
730 | int 40h |
751 | int 40h |
- | 752 | neg eax |
|
- | 753 | js @f |
|
- | 754 | push aContinue |
|
- | 755 | mov esi, esp |
|
- | 756 | call get_error_msg |
|
- | 757 | push eax |
|
- | 758 | push aRunError |
|
- | 759 | mov eax, esp |
|
- | 760 | push esi |
|
- | 761 | push 1 |
|
- | 762 | push eax |
|
- | 763 | push 2 |
|
- | 764 | push -1 |
|
- | 765 | push -1 |
|
- | 766 | push aError |
|
- | 767 | call SayErr |
|
- | 768 | add esp, 3*4 |
|
- | 769 | ret |
|
- | 770 | @@: |
|
731 | test edx, edx |
771 | test edx, edx |
732 | jz @f |
772 | jz @f |
733 | push 5 |
773 | push 5 |
734 | pop eax |
774 | pop eax |
735 | push 20 |
775 | push 20 |
736 | pop ebx |
776 | pop ebx |
737 | int 0x40 |
777 | int 0x40 |
738 | jmp .ctrl_r |
778 | jmp .ctrl_r |
739 | @@: |
779 | @@: |
740 | ret |
780 | ret |
- | 781 | .bigfilename3: |
|
- | 782 | pop esi |
|
- | 783 | .bigfilename2: |
|
- | 784 | pop esi |
|
- | 785 | .bigfilename: |
|
- | 786 | mov eax, aFileNameTooBig |
|
- | 787 | @@: |
|
- | 788 | push aContinue |
|
- | 789 | mov esi, esp |
|
- | 790 | push eax |
|
- | 791 | mov eax, esp |
|
- | 792 | push esi |
|
- | 793 | push 1 |
|
- | 794 | push eax |
|
- | 795 | push 1 |
|
- | 796 | push -1 |
|
- | 797 | push -1 |
|
- | 798 | push aError |
|
- | 799 | call SayErr |
|
- | 800 | add esp, 2*4 |
|
- | 801 | ret |
|
- | 802 | .bigcmdline: |
|
- | 803 | mov eax, aCmdLineTooBig |
|
- | 804 | jmp @b |
|
- | 805 | .bigfoldername2: |
|
- | 806 | mov byte [ecx], 0 |
|
- | 807 | .bigfoldername: |
|
- | 808 | mov eax, aFolderNameTooBig |
|
- | 809 | jmp @b |
|
- | 810 | .copytoself: |
|
- | 811 | mov eax, aCannotCopyToSelf |
|
- | 812 | jmp @b |
|
741 | .enter_folder: |
813 | .enter_folder: |
742 | lea esi, [ecx+40] |
814 | lea esi, [ecx+40] |
743 | cmp word [esi], '..' |
815 | cmp word [esi], '..' |
744 | jnz @f |
816 | jnz @f |
745 | cmp byte [esi+2], 0 |
817 | cmp byte [esi+2], 0 |
746 | jz .dotdot |
818 | jz .dotdot |
747 | @@: |
819 | @@: |
748 | push esi |
820 | push esi |
749 | lea esi, [ebp + panel1_dir - panel1_data] |
821 | lea esi, [ebp + panel1_dir - panel1_data] |
750 | mov edi, prev_dir |
822 | mov edi, prev_dir |
751 | @@: |
823 | @@: |
752 | lodsb |
824 | lodsb |
753 | stosb |
825 | stosb |
754 | test al, al |
826 | test al, al |
755 | jnz @b |
827 | jnz @b |
756 | lea edi, [esi-1] |
828 | lea edi, [esi-1] |
- | 829 | lea edx, [ebp + panel1_dir - panel1_data + 1024] |
|
- | 830 | cmp esi, edx |
|
757 | pop esi |
831 | pop esi |
- | 832 | jae .bigfoldername |
|
- | 833 | mov ecx, edi |
|
758 | mov al, '/' |
834 | mov al, '/' |
759 | cmp [edi-1], al |
835 | cmp [edi-1], al |
760 | jz @f |
836 | jz @f |
761 | stosb |
837 | stosb |
762 | @@: |
838 | @@: |
763 | ; TODO: add buffer overflow check |
- | |
764 | @@: |
- | |
765 | lodsb |
839 | lodsb |
- | 840 | cmp edi, edx |
|
- | 841 | jae .bigfoldername2 |
|
766 | stosb |
842 | stosb |
767 | test al, al |
843 | test al, al |
768 | jnz @b |
844 | jnz @b |
769 | .reread: |
845 | .reread: |
770 | call read_folder |
846 | call read_folder |
771 | .done_cmdbar: |
847 | .done_cmdbar: |
772 | call draw_cmdbar |
848 | call draw_cmdbar |
773 | jmp .done_redraw |
849 | jmp .done_redraw |
774 | .dotdot: |
850 | .dotdot: |
775 | lea edi, [ebp + panel1_dir - panel1_data] |
851 | lea edi, [ebp + panel1_dir - panel1_data] |
776 | mov al, 0 |
852 | mov al, 0 |
777 | or ecx, -1 |
853 | or ecx, -1 |
778 | repnz scasb |
854 | repnz scasb |
779 | dec edi |
855 | dec edi |
780 | mov al, '/' |
856 | mov al, '/' |
781 | std |
857 | std |
782 | repnz scasb |
858 | repnz scasb |
783 | cld |
859 | cld |
784 | inc edi |
860 | inc edi |
785 | mov byte [edi], 0 |
861 | mov byte [edi], 0 |
786 | inc edi |
862 | inc edi |
787 | push edi |
863 | push edi |
788 | call read_folder |
864 | call read_folder |
789 | pop edi |
865 | pop edi |
790 | mov edx, [ebp + panel1_files - panel1_data] |
866 | mov edx, [ebp + panel1_files - panel1_data] |
791 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
867 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
792 | .scanloop: |
868 | .scanloop: |
793 | mov esi, [edx] |
869 | mov esi, [edx] |
794 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
795 | lea esi, [esi+eax*4+32+40] |
870 | add esi, 40 |
796 | add esi, [ebp + panel1_files - panel1_data] |
- | |
797 | push esi edi |
871 | push esi edi |
798 | @@: |
872 | @@: |
799 | lodsb |
873 | lodsb |
800 | call match_symbol |
874 | call match_symbol |
801 | jnz @f |
875 | jnz @f |
802 | inc edi |
876 | inc edi |
803 | test al, al |
877 | test al, al |
804 | jnz @b |
878 | jnz @b |
805 | @@: |
879 | @@: |
806 | pop edi esi |
880 | pop edi esi |
807 | jz .scanfound |
881 | jz .scanfound |
808 | add edx, 4 |
882 | add edx, 4 |
809 | loop .scanloop |
883 | loop .scanloop |
810 | jmp .scandone |
884 | jmp .scandone |
811 | .scanfound: |
885 | .scanfound: |
812 | sub edx, [ebp + panel1_files - panel1_data] |
886 | sub edx, [ebp + panel1_files - panel1_data] |
813 | shr edx, 2 |
887 | shr edx, 2 |
814 | mov [ebp + panel1_index - panel1_data], edx |
888 | mov [ebp + panel1_index - panel1_data], edx |
815 | sub edx, [ebp + panel1_colst - panel1_data] |
889 | sub edx, [ebp + panel1_colst - panel1_data] |
816 | jb .scandone |
890 | jb .scandone |
817 | inc edx |
891 | inc edx |
818 | mov [ebp + panel1_start - panel1_data], edx |
892 | mov [ebp + panel1_start - panel1_data], edx |
819 | .scandone: |
893 | .scandone: |
820 | jmp .done_cmdbar |
894 | jmp .done_cmdbar |
821 | .ctrl_f39: |
895 | .ctrl_f39: |
822 | sub al, 0x3D |
896 | sub al, 0x3D |
823 | add al, al |
897 | add al, al |
824 | mov ah, [ebp + panel1_sortmode - panel1_data] |
898 | mov ah, [ebp + panel1_sortmode - panel1_data] |
825 | and ah, 0xFE |
899 | and ah, 0xFE |
826 | cmp al, ah |
900 | cmp al, ah |
827 | jnz @f |
901 | jnz @f |
828 | and [ebp + panel1_sortmode - panel1_data], 1 |
902 | and [ebp + panel1_sortmode - panel1_data], 1 |
829 | or al, [ebp + panel1_sortmode - panel1_data] |
903 | or al, [ebp + panel1_sortmode - panel1_data] |
830 | xor al, 1 |
904 | xor al, 1 |
831 | @@: |
905 | @@: |
832 | mov [ebp + panel1_sortmode - panel1_data], al |
906 | mov [ebp + panel1_sortmode - panel1_data], al |
833 | mov eax, [ebp + panel1_index - panel1_data] |
907 | mov eax, [ebp + panel1_index - panel1_data] |
834 | mov ecx, [ebp + panel1_files - panel1_data] |
908 | mov ecx, [ebp + panel1_files - panel1_data] |
835 | push dword [ecx+eax*4] |
909 | push dword [ecx+eax*4] |
836 | push ecx |
910 | push ecx |
837 | call sort_files |
911 | call sort_files |
838 | pop edi |
912 | pop edi |
839 | pop eax |
913 | pop eax |
840 | or ecx, -1 |
914 | or ecx, -1 |
841 | repnz scasd |
915 | repnz scasd |
842 | not ecx |
916 | not ecx |
843 | dec ecx |
917 | dec ecx |
844 | mov [ebp + panel1_index - panel1_data], ecx |
918 | mov [ebp + panel1_index - panel1_data], ecx |
845 | sub ecx, [ebp + panel1_start - panel1_data] |
919 | sub ecx, [ebp + panel1_start - panel1_data] |
846 | jb .less_start |
920 | jb .less_start |
847 | sub ecx, [ebp + panel1_colst - panel1_data] |
921 | sub ecx, [ebp + panel1_colst - panel1_data] |
848 | jae .gr_end |
922 | jae .gr_end |
849 | @@: jmp .done_redraw |
923 | @@: jmp .done_redraw |
850 | .less_start: |
924 | .less_start: |
851 | add [ebp + panel1_start - panel1_data], ecx |
925 | add [ebp + panel1_start - panel1_data], ecx |
852 | jmp @b |
926 | jmp @b |
853 | .gr_end: |
927 | .gr_end: |
854 | inc ecx |
928 | inc ecx |
855 | add [ebp + panel1_start - panel1_data], ecx |
929 | add [ebp + panel1_start - panel1_data], ecx |
856 | jmp @b |
930 | jmp @b |
857 | .alt_f12: |
931 | .alt_f12: |
858 | mov ebp, panel1_data |
932 | mov ebp, panel1_data |
859 | cmp al, 0x3B |
933 | cmp al, 0x3B |
860 | jz @f |
934 | jz @f |
861 | mov ebp, panel2_data |
935 | mov ebp, panel2_data |
862 | @@: |
936 | @@: |
863 | ; get drives list |
937 | ; get drives list |
864 | mov ebx, dirinfo |
938 | mov ebx, dirinfo |
865 | mov [ebx+dirinfo.size-dirinfo], 1 |
939 | mov [ebx+dirinfo.size-dirinfo], 1 |
866 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
940 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
867 | mov [ebx+dirinfo.name-dirinfo], tmpname |
941 | mov [ebx+dirinfo.name-dirinfo], tmpname |
868 | mov byte [tmpname], '/' |
942 | mov byte [tmpname], '/' |
869 | xor ecx, ecx |
943 | xor ecx, ecx |
870 | .drive_loop_e: |
944 | .drive_loop_e: |
871 | mov byte [tmpname+1], 0 |
945 | mov byte [tmpname+1], 0 |
872 | push 70 |
946 | push 70 |
873 | pop eax |
947 | pop eax |
874 | int 40h |
948 | int 40h |
875 | mov ebx, dirinfo |
949 | mov ebx, dirinfo |
876 | test eax, eax |
950 | test eax, eax |
877 | jnz .drive_loop_e_done |
951 | jnz .drive_loop_e_done |
878 | mov esi, driveinfo+32+40 |
952 | mov esi, driveinfo+32+40 |
879 | mov edi, tmpname+1 |
953 | mov edi, tmpname+1 |
880 | @@: |
954 | @@: |
881 | lodsb |
955 | lodsb |
882 | stosb |
956 | stosb |
883 | test al, al |
957 | test al, al |
884 | jnz @b |
958 | jnz @b |
885 | push [ebx+dirinfo.first-dirinfo] |
959 | push [ebx+dirinfo.first-dirinfo] |
886 | and [ebx+dirinfo.first-dirinfo], 0 |
960 | and [ebx+dirinfo.first-dirinfo], 0 |
887 | .drive_loop_i: |
961 | .drive_loop_i: |
888 | push 70 |
962 | push 70 |
889 | pop eax |
963 | pop eax |
890 | int 40h |
964 | int 40h |
891 | mov ebx, dirinfo |
965 | mov ebx, dirinfo |
892 | test eax, eax |
966 | test eax, eax |
893 | jnz .drive_loop_i_done |
967 | jnz .drive_loop_i_done |
894 | mov eax, 32+8 |
968 | mov eax, 32+8 |
895 | call xmalloc |
969 | call xmalloc |
896 | test eax, eax |
970 | test eax, eax |
897 | jz .drive_loop_i_done |
971 | jz .drive_loop_i_done |
898 | jecxz @f |
972 | jecxz @f |
899 | mov [ecx], eax |
973 | mov [ecx], eax |
900 | @@: |
974 | @@: |
901 | and dword [eax], 0 |
975 | and dword [eax], 0 |
902 | mov [eax+4], ecx |
976 | mov [eax+4], ecx |
903 | mov ecx, eax |
977 | mov ecx, eax |
904 | lea edi, [eax+8] |
978 | lea edi, [eax+8] |
905 | mov esi, tmpname |
979 | mov esi, tmpname |
906 | @@: |
980 | @@: |
907 | lodsb |
981 | lodsb |
908 | test al, al |
982 | test al, al |
909 | jz @f |
983 | jz @f |
910 | stosb |
984 | stosb |
911 | jmp @b |
985 | jmp @b |
912 | @@: |
986 | @@: |
913 | mov esi, driveinfo+32+40 |
987 | mov esi, driveinfo+32+40 |
914 | mov al, '/' |
988 | mov al, '/' |
915 | stosb |
989 | stosb |
916 | @@: |
990 | @@: |
917 | lodsb |
991 | lodsb |
918 | stosb |
992 | stosb |
919 | test al, al |
993 | test al, al |
920 | jnz @b |
994 | jnz @b |
921 | inc [ebx+dirinfo.first-dirinfo] |
995 | inc [ebx+dirinfo.first-dirinfo] |
922 | jmp .drive_loop_i |
996 | jmp .drive_loop_i |
923 | .drive_loop_i_done: |
997 | .drive_loop_i_done: |
924 | pop [ebx+dirinfo.first-dirinfo] |
998 | pop [ebx+dirinfo.first-dirinfo] |
925 | inc [ebx+dirinfo.first-dirinfo] |
999 | inc [ebx+dirinfo.first-dirinfo] |
926 | jmp .drive_loop_e |
1000 | jmp .drive_loop_e |
927 | .drive_loop_e_done: |
1001 | .drive_loop_e_done: |
928 | and [ebx+dirinfo.first-dirinfo], 0 |
1002 | and [ebx+dirinfo.first-dirinfo], 0 |
929 | lea edi, [ebp + panel1_dir - panel1_data] |
1003 | lea edi, [ebp + panel1_dir - panel1_data] |
930 | .find_cur_drive_loop: |
1004 | .find_cur_drive_loop: |
931 | push edi |
1005 | push edi |
932 | lea esi, [ecx+8] |
1006 | lea esi, [ecx+8] |
933 | @@: |
1007 | @@: |
934 | lodsb |
1008 | lodsb |
935 | test al, al |
1009 | test al, al |
936 | jz .cur_drive_found |
1010 | jz .cur_drive_found |
937 | call match_symbol |
1011 | call match_symbol |
938 | jnz @f |
1012 | jnz @f |
939 | inc edi |
1013 | inc edi |
940 | jmp @b |
1014 | jmp @b |
941 | @@: |
1015 | @@: |
942 | cmp dword [ecx+4], 0 |
1016 | cmp dword [ecx+4], 0 |
943 | jz @f |
1017 | jz @f |
944 | pop edi |
1018 | pop edi |
945 | mov ecx, [ecx+4] |
1019 | mov ecx, [ecx+4] |
946 | jmp .find_cur_drive_loop |
1020 | jmp .find_cur_drive_loop |
947 | @@: |
1021 | @@: |
948 | .cur_drive_found: |
1022 | .cur_drive_found: |
949 | pop edi |
1023 | pop edi |
950 | push 1 |
1024 | push 1 |
951 | push aDrive |
1025 | push aDrive |
952 | push ecx |
1026 | push ecx |
953 | mov eax, [ebp + panel1_height - panel1_data] |
1027 | mov eax, [ebp + panel1_height - panel1_data] |
954 | sub eax, 2 |
1028 | sub eax, 2 |
955 | jae @f |
1029 | jae @f |
956 | add eax, 2 |
1030 | add eax, 2 |
957 | @@: |
1031 | @@: |
958 | push eax |
1032 | push eax |
959 | push [ebp + panel1_width - panel1_data] |
1033 | push [ebp + panel1_width - panel1_data] |
960 | push [ebp + panel1_top - panel1_data] |
1034 | push [ebp + panel1_top - panel1_data] |
961 | push [ebp + panel1_left - panel1_data] |
1035 | push [ebp + panel1_left - panel1_data] |
962 | call menu_centered_in |
1036 | call menu_centered_in |
963 | cmp eax, -1 |
1037 | cmp eax, -1 |
964 | jz .ret2 |
1038 | jz .ret2 |
965 | lea esi, [eax+8] |
1039 | lea esi, [eax+8] |
966 | lea edi, [ebp + panel1_dir - panel1_data] |
1040 | lea edi, [ebp + panel1_dir - panel1_data] |
967 | push ecx esi edi |
1041 | push ecx esi edi |
968 | mov esi, edi |
1042 | mov esi, edi |
969 | mov edi, prev_dir |
1043 | mov edi, prev_dir |
970 | mov ecx, 1024/4 |
1044 | mov ecx, 1024/4 |
971 | rep movsd |
1045 | rep movsd |
972 | pop edi esi ecx |
1046 | pop edi esi ecx |
973 | @@: |
1047 | @@: |
974 | lodsb |
1048 | lodsb |
975 | stosb |
1049 | stosb |
976 | test al, al |
1050 | test al, al |
977 | jnz @b |
1051 | jnz @b |
978 | @@: |
1052 | @@: |
979 | cmp dword [ecx+4], 0 |
1053 | cmp dword [ecx+4], 0 |
980 | jz @f |
1054 | jz @f |
981 | mov ecx, [ecx+4] |
1055 | mov ecx, [ecx+4] |
982 | jmp @b |
1056 | jmp @b |
983 | @@: |
1057 | @@: |
984 | mov eax, ecx |
1058 | mov eax, ecx |
985 | mov ecx, [ecx] |
1059 | mov ecx, [ecx] |
986 | call mf_free |
1060 | call mf_free |
987 | test ecx, ecx |
1061 | test ecx, ecx |
988 | jnz @b |
1062 | jnz @b |
989 | call read_folder |
1063 | call read_folder |
990 | jmp .done_redraw |
1064 | jmp .done_redraw |
991 | .shift_f5: |
1065 | .shift_f5: |
992 | call get_curfile_folder_entry |
1066 | call get_curfile_folder_entry |
993 | lea esi, [ecx+40] |
1067 | lea esi, [ecx+40] |
994 | mov edi, CopyDestEditBuf |
1068 | mov edi, CopyDestEditBuf |
995 | mov eax, CopyDestEditBuf.length |
1069 | mov eax, CopyDestEditBuf.length |
996 | stosd |
1070 | stosd |
997 | scasd |
1071 | scasd |
998 | xor eax, eax |
1072 | xor eax, eax |
999 | stosd |
1073 | stosd |
1000 | mov edx, edi |
1074 | mov edx, edi |
1001 | @@: |
1075 | @@: |
1002 | lodsb |
1076 | lodsb |
1003 | test al, al |
1077 | test al, al |
1004 | jz .f5_common |
1078 | jz .f5_common |
1005 | stosb |
1079 | stosb |
1006 | jmp @b |
1080 | jmp @b |
1007 | .f5: |
1081 | .f5: |
1008 | mov edi, CopyDestEditBuf |
1082 | mov edi, CopyDestEditBuf |
1009 | mov eax, CopyDestEditBuf.length |
1083 | mov eax, CopyDestEditBuf.length |
1010 | stosd |
1084 | stosd |
1011 | scasd |
1085 | scasd |
1012 | xor eax, eax |
1086 | xor eax, eax |
1013 | stosd |
1087 | stosd |
1014 | mov edx, edi |
1088 | mov edx, edi |
1015 | mov esi, ebp |
1089 | mov esi, ebp |
1016 | xor esi, panel1_data xor panel2_data |
1090 | xor esi, panel1_data xor panel2_data |
1017 | add esi, panel1_dir - panel1_data |
1091 | add esi, panel1_dir - panel1_data |
1018 | @@: |
1092 | @@: |
1019 | lodsb |
1093 | lodsb |
1020 | test al, al |
1094 | test al, al |
1021 | jz @f |
1095 | jz @f |
- | 1096 | cmp edi, CopyDestEditBuf+12+511 |
|
- | 1097 | jae .bigfoldername |
|
1022 | stosb |
1098 | stosb |
1023 | jmp @b |
1099 | jmp @b |
1024 | @@: |
1100 | @@: |
1025 | mov al, '/' |
1101 | mov al, '/' |
1026 | stosb |
1102 | stosb |
1027 | .f5_common: |
1103 | .f5_common: |
1028 | mov byte [edi], 0 |
1104 | mov byte [edi], 0 |
1029 | sub edi, edx |
1105 | sub edi, edx |
1030 | mov [edx-8], edi |
1106 | mov [edx-8], edi |
1031 | mov edi, CopySourceTextBuf |
1107 | mov edi, CopySourceTextBuf |
1032 | mov esi, aCopy1 |
1108 | mov esi, aCopy1 |
1033 | @@: |
1109 | @@: |
1034 | lodsb |
1110 | lodsb |
1035 | test al, al |
1111 | test al, al |
1036 | jz @f |
1112 | jz @f |
1037 | stosb |
1113 | stosb |
1038 | jmp @b |
1114 | jmp @b |
1039 | @@: |
1115 | @@: |
1040 | call get_curfile_folder_entry |
1116 | call get_curfile_folder_entry |
1041 | lea esi, [ecx+40] |
1117 | lea esi, [ecx+40] |
1042 | lea eax, [esi+1] |
1118 | lea eax, [esi+1] |
1043 | @@: |
1119 | @@: |
1044 | inc esi |
1120 | inc esi |
1045 | cmp byte [esi-1], 0 |
1121 | cmp byte [esi-1], 0 |
1046 | jnz @b |
1122 | jnz @b |
1047 | sub esi, eax |
1123 | sub esi, eax |
1048 | xchg eax, esi |
1124 | xchg eax, esi |
1049 | dec esi |
1125 | dec esi |
1050 | mov edx, [cur_width] |
1126 | mov edx, [cur_width] |
1051 | sub edx, 50 |
1127 | sub edx, 50 |
1052 | sub eax, edx |
1128 | sub eax, edx |
1053 | jbe @f |
1129 | jbe @f |
1054 | add esi, eax |
1130 | add esi, eax |
1055 | mov al, '.' |
1131 | mov al, '.' |
1056 | stosb |
1132 | stosb |
1057 | stosb |
1133 | stosb |
1058 | stosb |
1134 | stosb |
1059 | @@: |
1135 | @@: |
1060 | lodsb |
1136 | lodsb |
1061 | test al, al |
1137 | test al, al |
1062 | jz @f |
1138 | jz @f |
1063 | stosb |
1139 | stosb |
1064 | jmp @b |
1140 | jmp @b |
1065 | @@: |
1141 | @@: |
1066 | mov esi, aCopy2 |
1142 | mov esi, aCopy2 |
1067 | @@: |
1143 | @@: |
1068 | lodsb |
1144 | lodsb |
1069 | stosb |
1145 | stosb |
1070 | test al, al |
1146 | test al, al |
1071 | jnz @b |
1147 | jnz @b |
1072 | mov ebx, copy_dlgdata |
1148 | mov ebx, copy_dlgdata |
1073 | mov eax, [cur_width] |
1149 | mov eax, [cur_width] |
1074 | sub eax, 12 |
1150 | sub eax, 12 |
1075 | mov [ebx + dlgtemplate.width], eax |
1151 | mov [ebx + dlgtemplate.width], eax |
1076 | dec eax |
1152 | dec eax |
1077 | dec eax |
1153 | dec eax |
1078 | mov [ebx - copy_dlgdata + copy_dlgdata.width2], eax |
1154 | mov [ebx - copy_dlgdata + copy_dlgdata.width2], eax |
1079 | mov [ebx - copy_dlgdata + copy_dlgdata.width3], eax |
1155 | mov [ebx - copy_dlgdata + copy_dlgdata.width3], eax |
1080 | shr eax, 1 |
1156 | shr eax, 1 |
1081 | dec eax |
1157 | dec eax |
1082 | dec eax |
1158 | dec eax |
1083 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x2], eax |
1159 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x2], eax |
1084 | sub eax, aCopyLength-1 |
1160 | sub eax, aCopyLength-1 |
1085 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x1], eax |
1161 | mov [ebx - copy_dlgdata + copy_dlgdata.copy_x1], eax |
1086 | add eax, aCopyLength+3 |
1162 | add eax, aCopyLength+3 |
1087 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x1], eax |
1163 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x1], eax |
1088 | add eax, aCancelBLength - 1 |
1164 | add eax, aCancelBLength - 1 |
1089 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x2], eax |
1165 | mov [ebx - copy_dlgdata + copy_dlgdata.cnl_x2], eax |
1090 | mov byte [ebx - copy_dlgdata + copy_dlgdata.flags0], 0xC |
1166 | mov byte [ebx - copy_dlgdata + copy_dlgdata.flags0], 0xC |
1091 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags1], not 4 |
1167 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags1], not 4 |
1092 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags2], not 4 |
1168 | and byte [ebx - copy_dlgdata + copy_dlgdata.flags2], not 4 |
1093 | push ebx |
1169 | push ebx |
1094 | call DialogBox |
1170 | call DialogBox |
1095 | cmp eax, copy_dlgdata.copy_btn |
1171 | cmp eax, copy_dlgdata.copy_btn |
1096 | jnz .ret2 |
1172 | jnz .ret2 |
1097 | ; ®¯¨à㥬 |
1173 | ; ®¯¨à㥬 |
1098 | mov esi, CopyDestEditBuf+12 |
1174 | mov esi, CopyDestEditBuf+12 |
1099 | mov edi, esi |
1175 | mov edi, esi |
1100 | xor eax, eax |
1176 | xor eax, eax |
1101 | or ecx, -1 |
1177 | or ecx, -1 |
1102 | repnz scasb |
1178 | repnz scasb |
1103 | dec edi |
1179 | dec edi |
1104 | dec edi |
1180 | dec edi |
1105 | cmp edi, esi |
1181 | cmp edi, esi |
1106 | jb .ret2 |
1182 | jb .ret2 |
1107 | cmp byte [edi], '/' |
1183 | cmp byte [edi], '/' |
1108 | jnz @f |
1184 | jnz @f |
1109 | ; «¨ç¨¥/®âáãâá⢨¥ § ª 稢 î饣® á«íè ¢ ¦® ⮫쪮 ¤«ï ª®¯¨à®¢ ¨ï ¯ ¯®ª |
1185 | ; «¨ç¨¥/®âáãâá⢨¥ § ª 稢 î饣® á«íè ¢ ¦® ⮫쪮 ¤«ï ª®¯¨à®¢ ¨ï ¯ ¯®ª |
1110 | cmp edi, esi |
1186 | cmp edi, esi |
1111 | jz @f |
1187 | jz @f |
1112 | mov byte [edi], 0 |
1188 | mov byte [edi], 0 |
1113 | dec edi |
1189 | dec edi |
1114 | @@: |
1190 | @@: |
1115 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
1191 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
1116 | cmp byte [esi], '/' |
1192 | cmp byte [esi], '/' |
1117 | jz .copy_absolute_path |
1193 | jz .copy_absolute_path |
1118 | push esi |
1194 | push esi |
1119 | push edi |
1195 | push edi |
1120 | lea edi, [ebp + panel1_dir - panel1_data] |
1196 | lea edi, [ebp + panel1_dir - panel1_data] |
1121 | or ecx, -1 |
1197 | or ecx, -1 |
1122 | xor eax, eax |
1198 | xor eax, eax |
1123 | repnz scasb |
1199 | repnz scasb |
1124 | not ecx |
1200 | not ecx |
1125 | pop edi |
1201 | pop edi |
- | 1202 | push edi |
|
- | 1203 | add edi, ecx |
|
- | 1204 | cmp edi, CopyDestEditBuf+12+513 |
|
- | 1205 | pop edi |
|
- | 1206 | jb @f |
|
- | 1207 | pop esi |
|
- | 1208 | jmp .bigfilename |
|
- | 1209 | @@: |
|
1126 | lea edx, [edi+2] |
1210 | lea edx, [edi+2] |
1127 | sub edx, esi |
1211 | sub edx, esi |
1128 | lea edi, [edi+ecx+1] |
1212 | lea edi, [edi+ecx+1] |
1129 | xchg ecx, edx |
1213 | xchg ecx, edx |
1130 | std |
1214 | std |
1131 | lea esi, [esi+ecx-1] |
1215 | lea esi, [esi+ecx-1] |
1132 | rep movsb |
1216 | rep movsb |
1133 | cld |
1217 | cld |
1134 | pop edi |
1218 | pop edi |
1135 | lea esi, [ebp + panel1_dir - panel1_data] |
1219 | lea esi, [ebp + panel1_dir - panel1_data] |
1136 | push edi |
1220 | push edi |
1137 | mov ecx, edx |
1221 | mov ecx, edx |
1138 | rep movsb |
1222 | rep movsb |
1139 | mov byte [edi-1], '/' |
1223 | mov byte [edi-1], '/' |
1140 | pop esi |
1224 | pop esi |
1141 | .copy_absolute_path: |
1225 | .copy_absolute_path: |
1142 | ; ®«ãç ¥¬ âਡãâë § 票ï |
1226 | ; ®«ãç ¥¬ âਡãâë § 票ï |
1143 | mov cl, 0x10 |
1227 | mov cl, 0x10 |
1144 | xor eax, eax |
1228 | xor eax, eax |
1145 | mov edi, esi |
1229 | mov edi, esi |
1146 | .countslashloop: |
1230 | .countslashloop: |
1147 | cmp byte [edi], '/' |
1231 | cmp byte [edi], '/' |
1148 | jnz @f |
1232 | jnz @f |
1149 | inc eax |
1233 | inc eax |
1150 | @@: |
1234 | @@: |
1151 | inc edi |
1235 | inc edi |
1152 | cmp byte [edi], 0 |
1236 | cmp byte [edi], 0 |
1153 | jnz .countslashloop |
1237 | jnz .countslashloop |
1154 | cmp eax, 2 |
1238 | cmp eax, 2 |
1155 | jbe @f |
1239 | jbe @f |
1156 | mov ebx, attrinfo |
1240 | mov ebx, attrinfo |
1157 | mov [attrinfo.attr], 0 |
1241 | mov [attrinfo.attr], 0 |
1158 | mov [ebx + attrinfo.name - attrinfo], esi |
1242 | mov [ebx + attrinfo.name - attrinfo], esi |
1159 | push 70 |
1243 | push 70 |
1160 | pop eax |
1244 | pop eax |
1161 | int 0x40 |
1245 | int 0x40 |
1162 | mov cl, byte [attrinfo.attr] |
1246 | mov cl, byte [attrinfo.attr] |
1163 | @@: |
1247 | @@: |
1164 | test cl, 0x10 |
1248 | test cl, 0x10 |
1165 | jz .copyfile |
1249 | jz .copyfile |
1166 | ; ¬ ¯®¤áã㫨 ª â «®£ § 票ï, ¤®¯¨áë¢ ¥¬ ¨¬ï ä ©« |
1250 | ; ¬ ¯®¤áã㫨 ª â «®£ § 票ï, ¤®¯¨áë¢ ¥¬ ¨¬ï ä ©« |
- | 1251 | cmp edi, CopyDestEditBuf+12+513 |
|
- | 1252 | jae .bigfilename |
|
1167 | mov al, '/' |
1253 | mov al, '/' |
1168 | stosb |
1254 | stosb |
1169 | push esi |
1255 | push esi |
1170 | call get_curfile_folder_entry |
1256 | call get_curfile_folder_entry |
1171 | lea esi, [ecx+40] |
1257 | lea esi, [ecx+40] |
1172 | @@: |
1258 | @@: |
1173 | lodsb |
1259 | lodsb |
- | 1260 | cmp edi, CopyDestEditBuf+12+513 |
|
- | 1261 | jae .bigfilename2 |
|
1174 | stosb |
1262 | stosb |
1175 | test al, al |
1263 | test al, al |
1176 | jnz @b |
1264 | jnz @b |
1177 | pop esi |
1265 | pop esi |
1178 | .copyfile: |
1266 | .copyfile: |
1179 | ; ¬ï ¨á室®£® ä ©« |
1267 | ; ¬ï ¨á室®£® ä ©« |
1180 | push esi |
1268 | push esi |
1181 | lea esi, [ebp+panel1_dir-panel1_data] |
1269 | lea esi, [ebp+panel1_dir-panel1_data] |
1182 | mov edi, saved_file_name |
1270 | mov edi, saved_file_name |
1183 | push edi |
1271 | push edi |
1184 | @@: |
1272 | @@: |
1185 | lodsb |
1273 | lodsb |
1186 | test al, al |
1274 | test al, al |
1187 | jz @f |
1275 | jz @f |
1188 | stosb |
1276 | stosb |
1189 | jmp @b |
1277 | jmp @b |
1190 | @@: |
1278 | @@: |
1191 | mov al, '/' |
1279 | mov al, '/' |
1192 | stosb |
1280 | stosb |
1193 | call get_curfile_folder_entry |
1281 | call get_curfile_folder_entry |
1194 | lea esi, [ecx+40] |
1282 | lea esi, [ecx+40] |
1195 | @@: |
1283 | @@: |
1196 | lodsb |
1284 | lodsb |
- | 1285 | cmp edi, saved_file_name+1024 |
|
- | 1286 | jae .bigfilename3 |
|
1197 | stosb |
1287 | stosb |
1198 | test al, al |
1288 | test al, al |
1199 | jnz @b |
1289 | jnz @b |
1200 | pop esi |
1290 | pop esi |
1201 | pop edi |
1291 | pop edi |
1202 | ; ¥«ì§ï ᪮¯¨à®¢ âì ä ©« ¯®¢¥àå á ¬®£® ᥡï! |
1292 | ; ¥«ì§ï ᪮¯¨à®¢ âì ä ©« ¯®¢¥àå á ¬®£® ᥡï! |
1203 | push esi edi |
1293 | push esi edi |
1204 | call strcmpi |
1294 | call strcmpi |
1205 | pop edi esi |
1295 | pop edi esi |
1206 | jz .ret2 |
1296 | jz .copytoself |
1207 | ; ®¡á⢥®, ª®¯¨à㥬 |
1297 | ; ®¡á⢥®, ª®¯¨à㥬 |
1208 | ; esi->source name, edi->destination name |
1298 | ; esi->source name, edi->destination name |
1209 | mov [writeinfo.code], 2 |
1299 | mov [writeinfo.code], 2 |
1210 | mov [writeinfo.name], edi |
1300 | mov [writeinfo.name], edi |
1211 | and dword [writeinfo.first], 0 |
1301 | and dword [writeinfo.first], 0 |
1212 | and dword [writeinfo.first+4], 0 |
1302 | and dword [writeinfo.first+4], 0 |
1213 | mov [writeinfo.data], copy_buffer |
1303 | mov [writeinfo.data], copy_buffer |
1214 | mov ebx, readinfo |
1304 | mov ebx, readinfo |
1215 | and dword [ebx+readinfo.first-readinfo], 0 |
1305 | and dword [ebx+readinfo.first-readinfo], 0 |
1216 | and dword [ebx+readinfo.first+4-readinfo], 0 |
1306 | and dword [ebx+readinfo.first+4-readinfo], 0 |
1217 | mov [ebx+readinfo.size-readinfo], copy_buffer_size |
1307 | mov [ebx+readinfo.size-readinfo], copy_buffer_size |
1218 | mov [ebx+readinfo.data-readinfo], copy_buffer |
1308 | mov [ebx+readinfo.data-readinfo], copy_buffer |
1219 | mov [ebx+readinfo.name-readinfo], esi |
1309 | mov [ebx+readinfo.name-readinfo], esi |
1220 | .copyloop: |
1310 | .copyloop: |
1221 | mov ebx, readinfo |
1311 | mov ebx, readinfo |
1222 | push 70 |
1312 | push 70 |
1223 | pop eax |
1313 | pop eax |
1224 | int 0x40 |
1314 | int 0x40 |
- | 1315 | test eax, eax |
|
- | 1316 | jz .copyreadok |
|
1225 | cmp ebx, -1 |
1317 | cmp eax, 6 |
- | 1318 | jz .copyreadok |
|
- | 1319 | push esi |
|
- | 1320 | push aCannotReadFile |
|
- | 1321 | call get_error_msg |
|
- | 1322 | push eax |
|
- | 1323 | mov eax, esp |
|
- | 1324 | push RetryOrCancelBtn |
|
- | 1325 | push 2 |
|
- | 1326 | push eax |
|
- | 1327 | push 3 |
|
- | 1328 | push -1 |
|
- | 1329 | push -1 |
|
- | 1330 | push aError |
|
- | 1331 | call SayErr |
|
- | 1332 | add esp, 3*4 |
|
- | 1333 | test eax, eax |
|
1226 | jz .copydone |
1334 | jz .copyloop |
- | 1335 | jmp .copyfailed |
|
- | 1336 | .copyreadok: |
|
1227 | test ebx, ebx |
1337 | test ebx, ebx |
1228 | jz .copydone |
1338 | jz .copydone |
1229 | add dword [readinfo.first], ebx |
1339 | add dword [readinfo.first], ebx |
1230 | adc dword [readinfo.first+4], 0 |
1340 | adc dword [readinfo.first+4], 0 |
1231 | mov [writeinfo.size], ebx |
1341 | mov [writeinfo.size], ebx |
- | 1342 | .copywrite: |
|
1232 | mov ebx, writeinfo |
1343 | mov ebx, writeinfo |
1233 | push 70 |
1344 | push 70 |
1234 | pop eax |
1345 | pop eax |
1235 | int 0x40 |
1346 | int 0x40 |
- | 1347 | test eax, eax |
|
- | 1348 | jz .copywriteok |
|
- | 1349 | push edi |
|
- | 1350 | push aCannotWriteFile |
|
- | 1351 | call get_error_msg |
|
- | 1352 | push eax |
|
- | 1353 | mov eax, esp |
|
- | 1354 | push RetryOrCancelBtn |
|
- | 1355 | push 2 |
|
- | 1356 | push eax |
|
- | 1357 | push 3 |
|
- | 1358 | push -1 |
|
- | 1359 | push -1 |
|
- | 1360 | push aError |
|
- | 1361 | call SayErr |
|
- | 1362 | add esp, 3*4 |
|
- | 1363 | test eax, eax |
|
- | 1364 | jz .copywrite |
|
- | 1365 | jmp .copyfailed |
|
- | 1366 | .copywriteok: |
|
1236 | mov ecx, [writeinfo.size] |
1367 | mov ecx, [writeinfo.size] |
1237 | add dword [writeinfo.first], ecx |
1368 | add dword [writeinfo.first], ecx |
1238 | adc dword [writeinfo.first+4], 0 |
1369 | adc dword [writeinfo.first+4], 0 |
1239 | mov [writeinfo.code], 3 |
1370 | mov [writeinfo.code], 3 |
1240 | cmp ecx, copy_buffer_size |
1371 | cmp ecx, copy_buffer_size |
1241 | jz .copyloop |
1372 | jz .copyloop |
1242 | .copydone: |
1373 | .copydone: |
1243 | push ebp |
1374 | push ebp |
1244 | call .ctrl_r |
1375 | call .ctrl_r |
1245 | pop ebp |
1376 | pop ebp |
1246 | xor ebp, panel1_data xor panel2_data |
1377 | xor ebp, panel1_data xor panel2_data |
1247 | jmp .ctrl_r |
1378 | jmp .ctrl_r |
- | 1379 | .copyfailed: |
|
- | 1380 | cmp [bConfirmDeleteIncomplete], 0 |
|
- | 1381 | jz @f |
|
- | 1382 | cmp [writeinfo.code], 2 |
|
- | 1383 | jz .copydone |
|
- | 1384 | push aIncompleteFile |
|
- | 1385 | mov eax, esp |
|
- | 1386 | push DeleteOrKeepBtn |
|
- | 1387 | push 2 |
|
- | 1388 | push eax |
|
- | 1389 | push 1 |
|
- | 1390 | push -1 |
|
- | 1391 | push -1 |
|
- | 1392 | push aCopyCaption |
|
- | 1393 | call SayErr |
|
- | 1394 | add esp, 4 |
|
- | 1395 | test eax, eax |
|
- | 1396 | jnz .copydone |
|
- | 1397 | @@: |
|
- | 1398 | mov ebx, delinfo |
|
- | 1399 | push dword [ebx+21] |
|
- | 1400 | mov dword [ebx+21], edi |
|
- | 1401 | push 70 |
|
- | 1402 | pop eax |
|
- | 1403 | int 0x40 |
|
- | 1404 | ; ignore errors |
|
- | 1405 | pop dword [delinfo+21] |
|
- | 1406 | jmp .copydone |
|
1248 | 1407 | ||
1249 | .f3: |
1408 | .f3: |
1250 | call view_file |
1409 | call view_file |
1251 | .ret2: |
1410 | .ret2: |
1252 | ret |
1411 | ret |
1253 | .f8: |
1412 | .f8: |
1254 | call get_curfile_folder_entry |
1413 | call get_curfile_folder_entry |
1255 | cmp [bConfirmDelete], 0 |
1414 | cmp [bConfirmDelete], 0 |
1256 | jz .f8_allowed |
1415 | jz .f8_allowed |
1257 | mov ebx, f8_confirm_dlgdata |
1416 | mov ebx, f8_confirm_dlgdata |
1258 | mov esi, aConfirmDeleteText |
1417 | mov esi, aConfirmDeleteText |
1259 | mov edi, aConfirmDeleteTextBuf |
1418 | mov edi, aConfirmDeleteTextBuf |
1260 | @@: |
1419 | @@: |
1261 | lodsb |
1420 | lodsb |
1262 | stosb |
1421 | stosb |
1263 | test al, al |
1422 | test al, al |
1264 | jnz @b |
1423 | jnz @b |
1265 | dec edi |
1424 | dec edi |
1266 | mov esi, aDeleteFolder |
1425 | mov esi, aDeleteFolder |
1267 | test byte [ecx], 10h |
1426 | test byte [ecx], 10h |
1268 | jnz @f |
1427 | jnz @f |
1269 | mov esi, aDeleteFile |
1428 | mov esi, aDeleteFile |
1270 | @@: |
1429 | @@: |
1271 | lodsb |
1430 | lodsb |
1272 | stosb |
1431 | stosb |
1273 | test al, al |
1432 | test al, al |
1274 | jnz @b |
1433 | jnz @b |
1275 | lea esi, [ecx+40] |
1434 | lea esi, [ecx+40] |
1276 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.name], esi |
1435 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.name], esi |
1277 | or eax, -1 |
1436 | or eax, -1 |
1278 | @@: |
1437 | @@: |
1279 | inc eax |
1438 | inc eax |
1280 | cmp byte [eax+esi], 0 |
1439 | cmp byte [eax+esi], 0 |
1281 | jnz @b |
1440 | jnz @b |
1282 | sub edi, aConfirmDeleteTextBuf+1 |
1441 | sub edi, aConfirmDeleteTextBuf+1 |
1283 | cmp eax, edi |
1442 | cmp eax, edi |
1284 | jae @f |
1443 | jae @f |
1285 | mov eax, edi |
1444 | mov eax, edi |
1286 | @@: |
1445 | @@: |
1287 | inc eax |
1446 | inc eax |
1288 | inc eax |
1447 | inc eax |
1289 | mov edx, [cur_width] |
1448 | mov edx, [cur_width] |
1290 | sub edx, 8 |
1449 | sub edx, 8 |
1291 | cmp eax, edx |
1450 | cmp eax, edx |
1292 | jbe @f |
1451 | jbe @f |
1293 | mov eax, edx |
1452 | mov eax, edx |
1294 | @@: |
1453 | @@: |
1295 | mov [ebx + dlgtemplate.width], eax |
1454 | mov [ebx + dlgtemplate.width], eax |
1296 | dec eax |
1455 | dec eax |
1297 | dec eax |
1456 | dec eax |
1298 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width2], eax |
1457 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width2], eax |
1299 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width3], eax |
1458 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width3], eax |
1300 | shr eax, 1 |
1459 | shr eax, 1 |
1301 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x2], eax |
1460 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x2], eax |
1302 | sub eax, aDeleteLength-1 |
1461 | sub eax, aDeleteLength-1 |
1303 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x1], eax |
1462 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x1], eax |
1304 | add eax, aDeleteLength |
1463 | add eax, aDeleteLength |
1305 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x1], eax |
1464 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x1], eax |
1306 | add eax, aCancelLength - 1 |
1465 | add eax, aCancelLength - 1 |
1307 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x2], eax |
1466 | mov [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x2], eax |
1308 | or byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags1], 4 |
1467 | or byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags1], 4 |
1309 | and byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags2], not 4 |
1468 | and byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags2], not 4 |
1310 | push ebx |
1469 | push ebx |
1311 | call DialogBox |
1470 | call DialogBox |
1312 | cmp eax, f8_confirm_dlgdata.del_btn |
1471 | cmp eax, f8_confirm_dlgdata.del_btn |
1313 | jnz .ret2 |
1472 | jnz .ret2 |
1314 | .f8_allowed: |
1473 | .f8_allowed: |
1315 | lea esi, [ebp + panel1_dir - panel1_data] |
1474 | lea esi, [ebp + panel1_dir - panel1_data] |
1316 | mov edi, execdata |
1475 | mov edi, execdata |
1317 | @@: |
1476 | @@: |
1318 | lodsb |
1477 | lodsb |
1319 | test al, al |
1478 | test al, al |
1320 | jz @f |
1479 | jz @f |
1321 | stosb |
1480 | stosb |
1322 | jmp @b |
1481 | jmp @b |
1323 | @@: |
1482 | @@: |
1324 | lea esi, [ecx+40] |
1483 | lea esi, [ecx+40] |
1325 | mov al, '/' |
1484 | mov al, '/' |
1326 | stosb |
1485 | stosb |
1327 | @@: |
1486 | @@: |
1328 | lodsb |
1487 | lodsb |
- | 1488 | cmp edi, execdataend |
|
- | 1489 | jae .bigfilename |
|
1329 | stosb |
1490 | stosb |
1330 | test al, al |
1491 | test al, al |
1331 | jnz @b |
1492 | jnz @b |
- | 1493 | .retrydel: |
|
1332 | push 70 |
1494 | push 70 |
1333 | pop eax |
1495 | pop eax |
1334 | mov ebx, delinfo |
1496 | mov ebx, delinfo |
1335 | int 0x40 |
1497 | int 0x40 |
- | 1498 | test eax, eax |
|
- | 1499 | jz .ctrl_r |
|
- | 1500 | push execdata |
|
- | 1501 | push aCannotDeleteFolder |
|
- | 1502 | call get_curfile_folder_entry |
|
- | 1503 | test byte [ecx], 10h |
|
- | 1504 | jnz @f |
|
- | 1505 | mov dword [esp], aCannotDeleteFile |
|
- | 1506 | @@: |
|
- | 1507 | call get_error_msg |
|
- | 1508 | push eax |
|
- | 1509 | mov eax, esp |
|
- | 1510 | push RetryOrCancelBtn |
|
- | 1511 | push 2 |
|
- | 1512 | push eax |
|
- | 1513 | push 3 |
|
- | 1514 | push -1 |
|
- | 1515 | push -1 |
|
- | 1516 | push aError |
|
- | 1517 | call SayErr |
|
- | 1518 | add esp, 3*4 |
|
- | 1519 | test eax, eax |
|
- | 1520 | jz .retrydel |
|
1336 | .ctrl_r: |
1521 | .ctrl_r: |
1337 | ; Rescan panel |
1522 | ; Rescan panel |
1338 | ; call read_folder |
1523 | ; call read_folder |
1339 | ; jmp .done_redraw |
1524 | ; jmp .done_redraw |
1340 | mov eax, [ebp + panel1_index - panel1_data] |
1525 | mov eax, [ebp + panel1_index - panel1_data] |
1341 | push eax |
1526 | push eax |
1342 | call get_curfile_name |
1527 | call get_curfile_name |
1343 | mov esi, ecx |
1528 | mov esi, ecx |
1344 | mov edi, saved_file_name |
1529 | mov edi, saved_file_name |
1345 | @@: |
1530 | @@: |
1346 | lodsb |
1531 | lodsb |
1347 | stosb |
1532 | stosb |
1348 | test al, al |
1533 | test al, al |
1349 | jnz @b |
1534 | jnz @b |
1350 | push [ebp + panel1_start - panel1_data] |
1535 | push [ebp + panel1_start - panel1_data] |
1351 | call read_folder |
1536 | call read_folder |
1352 | pop [ebp + panel1_start - panel1_data] |
1537 | pop [ebp + panel1_start - panel1_data] |
1353 | pop [ebp + panel1_index - panel1_data] |
1538 | pop [ebp + panel1_index - panel1_data] |
1354 | or eax, -1 |
1539 | or eax, -1 |
1355 | @@: |
1540 | @@: |
1356 | inc eax |
1541 | inc eax |
1357 | cmp eax, [ebp + panel1_numfiles - panel1_data] |
1542 | cmp eax, [ebp + panel1_numfiles - panel1_data] |
1358 | jae .ctrl_r.notfound |
1543 | jae .ctrl_r.notfound |
1359 | mov esi, [ebp + panel1_nfa - panel1_data] |
- | |
1360 | mov ecx, [ebp + panel1_files - panel1_data] |
1544 | mov ecx, [ebp + panel1_files - panel1_data] |
1361 | lea esi, [ecx+esi*4+32+40] |
1545 | mov esi, [ecx+eax*4] |
1362 | add esi, [ecx+eax*4] |
1546 | add esi, 40 |
1363 | mov edi, saved_file_name |
1547 | mov edi, saved_file_name |
1364 | call strcmpi |
1548 | call strcmpi |
1365 | jnz @b |
1549 | jnz @b |
1366 | .ctrl_r.found: |
1550 | .ctrl_r.found: |
1367 | mov [ebp + panel1_index - panel1_data], eax |
1551 | mov [ebp + panel1_index - panel1_data], eax |
1368 | .ctrl_r.notfound: |
1552 | .ctrl_r.notfound: |
1369 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1553 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1370 | dec eax |
1554 | dec eax |
1371 | cmp [ebp + panel1_index - panel1_data], eax |
1555 | cmp [ebp + panel1_index - panel1_data], eax |
1372 | jbe @f |
1556 | jbe @f |
1373 | mov [ebp + panel1_index - panel1_data], eax |
1557 | mov [ebp + panel1_index - panel1_data], eax |
1374 | @@: |
1558 | @@: |
1375 | mov eax, [ebp + panel1_index - panel1_data] |
1559 | mov eax, [ebp + panel1_index - panel1_data] |
1376 | cmp [ebp + panel1_start - panel1_data], eax |
1560 | cmp [ebp + panel1_start - panel1_data], eax |
1377 | jbe @f |
1561 | jbe @f |
1378 | mov [ebp + panel1_start - panel1_data], eax |
1562 | mov [ebp + panel1_start - panel1_data], eax |
1379 | @@: |
1563 | @@: |
1380 | inc eax |
1564 | inc eax |
1381 | sub eax, [ebp + panel1_colst - panel1_data] |
1565 | sub eax, [ebp + panel1_colst - panel1_data] |
1382 | jae @f |
1566 | jae @f |
1383 | xor eax, eax |
1567 | xor eax, eax |
1384 | @@: |
1568 | @@: |
1385 | cmp [ebp + panel1_start - panel1_data], eax |
1569 | cmp [ebp + panel1_start - panel1_data], eax |
1386 | jae @f |
1570 | jae @f |
1387 | mov [ebp + panel1_start - panel1_data], eax |
1571 | mov [ebp + panel1_start - panel1_data], eax |
1388 | @@: |
1572 | @@: |
1389 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1573 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1390 | sub eax, [ebp + panel1_colst - panel1_data] |
1574 | sub eax, [ebp + panel1_colst - panel1_data] |
1391 | jbe @f |
1575 | jbe @f |
1392 | cmp [ebp + panel1_start - panel1_data], eax |
1576 | cmp [ebp + panel1_start - panel1_data], eax |
1393 | jbe @f |
1577 | jbe @f |
1394 | mov [ebp + panel1_start - panel1_data], eax |
1578 | mov [ebp + panel1_start - panel1_data], eax |
1395 | @@: |
1579 | @@: |
1396 | jmp .done_redraw |
1580 | jmp .done_redraw |
1397 | .menu: |
1581 | .menu: |
1398 | ; display context menu |
1582 | ; display context menu |
1399 | ; ignore folders |
1583 | ; ignore folders |
1400 | call get_curfile_folder_entry |
1584 | call get_curfile_folder_entry |
1401 | test byte [ecx], 10h |
1585 | test byte [ecx], 10h |
1402 | jz @f |
1586 | jz @f |
1403 | .menuret: |
1587 | .menuret: |
1404 | ret |
1588 | ret |
1405 | @@: |
1589 | @@: |
1406 | call find_extension |
1590 | call find_extension |
1407 | jc .menuret |
1591 | jc .menuret |
1408 | jnz .menuret |
1592 | jnz .menuret |
1409 | ; known extension |
1593 | ; known extension |
1410 | mov ebx, [edi+8] |
1594 | mov ebx, [edi+8] |
1411 | test ebx, ebx |
1595 | test ebx, ebx |
1412 | jz .menuret |
1596 | jz .menuret |
1413 | mov ecx, esi |
1597 | mov ecx, esi |
1414 | @@: |
1598 | @@: |
1415 | inc ecx |
1599 | inc ecx |
1416 | cmp byte [ecx-1], 0 |
1600 | cmp byte [ecx-1], 0 |
1417 | jnz @b |
1601 | jnz @b |
1418 | sub ecx, esi ; ecx = ¤«¨ ¨¬¥¨ ä ©« +1 = ¤«¨ § £®«®¢ª +1 |
1602 | sub ecx, esi ; ecx = ¤«¨ ¨¬¥¨ ä ©« +1 = ¤«¨ § £®«®¢ª +1 |
1419 | cmp ecx, 15 |
1603 | cmp ecx, 15 |
1420 | jb @f |
1604 | jb @f |
1421 | mov cl, 15 |
1605 | mov cl, 15 |
1422 | @@: |
1606 | @@: |
1423 | xor edx, edx |
1607 | xor edx, edx |
1424 | .menucreateloop: |
1608 | .menucreateloop: |
1425 | mov eax, [ebx] |
1609 | mov eax, [ebx] |
1426 | test eax, eax |
1610 | test eax, eax |
1427 | jz .menucreated |
1611 | jz .menucreated |
1428 | @@: |
1612 | @@: |
1429 | inc eax |
1613 | inc eax |
1430 | cmp byte [eax-1], 0 |
1614 | cmp byte [eax-1], 0 |
1431 | jnz @b |
1615 | jnz @b |
1432 | sub eax, [ebx] |
1616 | sub eax, [ebx] |
1433 | cmp eax, ecx |
1617 | cmp eax, ecx |
1434 | ja @f |
1618 | ja @f |
1435 | mov eax, ecx |
1619 | mov eax, ecx |
1436 | @@: |
1620 | @@: |
1437 | add eax, 12 |
1621 | add eax, 12 |
1438 | call xmalloc |
1622 | call xmalloc |
1439 | test eax, eax |
1623 | test eax, eax |
1440 | jz .menucreated |
1624 | jz .menucreated |
1441 | add eax, 4 |
1625 | add eax, 4 |
1442 | test edx, edx |
1626 | test edx, edx |
1443 | jz @f |
1627 | jz @f |
1444 | mov [edx], eax |
1628 | mov [edx], eax |
1445 | @@: |
1629 | @@: |
1446 | mov [eax+4], edx |
1630 | mov [eax+4], edx |
1447 | mov edx, eax |
1631 | mov edx, eax |
1448 | push esi |
1632 | push esi |
1449 | mov esi, [ebx+4] |
1633 | mov esi, [ebx+4] |
1450 | mov [eax-4], esi |
1634 | mov [eax-4], esi |
1451 | mov esi, [ebx] |
1635 | mov esi, [ebx] |
1452 | lea edi, [eax+8] |
1636 | lea edi, [eax+8] |
1453 | @@: |
1637 | @@: |
1454 | lodsb |
1638 | lodsb |
1455 | stosb |
1639 | stosb |
1456 | test al, al |
1640 | test al, al |
1457 | jnz @b |
1641 | jnz @b |
1458 | sub esi, [ebx] |
1642 | sub esi, [ebx] |
1459 | sub esi, ecx |
1643 | sub esi, ecx |
1460 | jae .menunoadd |
1644 | jae .menunoadd |
1461 | neg esi |
1645 | neg esi |
1462 | @@: |
1646 | @@: |
1463 | mov byte [edi-1], ' ' |
1647 | mov byte [edi-1], ' ' |
1464 | stosb |
1648 | stosb |
1465 | dec esi |
1649 | dec esi |
1466 | jnz @b |
1650 | jnz @b |
1467 | .menunoadd: |
1651 | .menunoadd: |
1468 | pop esi |
1652 | pop esi |
1469 | add ebx, 8 |
1653 | add ebx, 8 |
1470 | jmp .menucreateloop |
1654 | jmp .menucreateloop |
1471 | .menucreated: |
1655 | .menucreated: |
1472 | test edx, edx |
1656 | test edx, edx |
1473 | jz .menuret |
1657 | jz .menuret |
1474 | and dword [edx], 0 |
1658 | and dword [edx], 0 |
1475 | @@: |
1659 | @@: |
1476 | cmp dword [edx+4], 0 |
1660 | cmp dword [edx+4], 0 |
1477 | jz @f |
1661 | jz @f |
1478 | mov edx, [edx+4] |
1662 | mov edx, [edx+4] |
1479 | jmp @b |
1663 | jmp @b |
1480 | @@: |
1664 | @@: |
1481 | push 1 |
1665 | push 1 |
1482 | push esi |
1666 | push esi |
1483 | push edx |
1667 | push edx |
1484 | call menu |
1668 | call menu |
1485 | cmp eax, -1 |
1669 | cmp eax, -1 |
1486 | jz .menuret |
1670 | jz .menuret |
1487 | push dword [eax-4] |
1671 | push dword [eax-4] |
1488 | @@: |
1672 | @@: |
1489 | test edx, edx |
1673 | test edx, edx |
1490 | jz @f |
1674 | jz @f |
1491 | lea eax, [edx-4] |
1675 | lea eax, [edx-4] |
1492 | mov edx, [edx] |
1676 | mov edx, [edx] |
1493 | call mf_free |
1677 | call mf_free |
1494 | jmp @b |
1678 | jmp @b |
1495 | @@: |
1679 | @@: |
1496 | pop eax |
1680 | pop eax |
1497 | call get_curfile_folder_entry |
1681 | call get_curfile_folder_entry |
1498 | jmp .run_association2 |
1682 | jmp .run_association2 |
- | 1683 | .f7: |
|
- | 1684 | mov dword [CopyDestEditBuf], CopyDestEditBuf.length |
|
- | 1685 | and dword [CopyDestEditBuf+4], 0 |
|
- | 1686 | and dword [CopyDestEditBuf+8], 0 |
|
- | 1687 | mov byte [CopyDestEditBuf+12], 0 |
|
- | 1688 | mov ebx, mkdir_dlgdata |
|
- | 1689 | mov eax, [cur_width] |
|
- | 1690 | sub eax, 12 |
|
- | 1691 | mov [ebx + dlgtemplate.width], eax |
|
- | 1692 | dec eax |
|
- | 1693 | dec eax |
|
- | 1694 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.width2], eax |
|
- | 1695 | shr eax, 1 |
|
- | 1696 | dec eax |
|
- | 1697 | dec eax |
|
- | 1698 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x2], eax |
|
- | 1699 | sub eax, a_ContinueLength-1 |
|
- | 1700 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cont_x1], eax |
|
- | 1701 | add eax, a_ContinueLength+3 |
|
- | 1702 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x1], eax |
|
- | 1703 | add eax, aCancelBLength - 1 |
|
- | 1704 | mov [ebx - mkdir_dlgdata + mkdir_dlgdata.cnl_x2], eax |
|
- | 1705 | mov byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags0], 0xC |
|
- | 1706 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags1], not 4 |
|
- | 1707 | and byte [ebx - mkdir_dlgdata + mkdir_dlgdata.flags2], not 4 |
|
- | 1708 | push ebx |
|
- | 1709 | call DialogBox |
|
- | 1710 | cmp eax, mkdir_dlgdata.cont_btn |
|
- | 1711 | jnz .ret2 |
|
- | 1712 | mov esi, CopyDestEditBuf+12 |
|
- | 1713 | cmp byte [esi], 0 |
|
- | 1714 | jz .ret2 |
|
- | 1715 | cmp byte [esi], '/' |
|
- | 1716 | jz .mkdir_absolute_path |
|
- | 1717 | push esi |
|
- | 1718 | lea edi, [ebp + panel1_dir - panel1_data] |
|
- | 1719 | or ecx, -1 |
|
- | 1720 | xor eax, eax |
|
- | 1721 | repnz scasb |
|
- | 1722 | not ecx |
|
- | 1723 | mov edi, esi |
|
- | 1724 | @@: |
|
- | 1725 | cmp byte [edi+1], 0 |
|
- | 1726 | jz @f |
|
- | 1727 | inc edi |
|
- | 1728 | jmp @b |
|
- | 1729 | @@: |
|
- | 1730 | push edi |
|
- | 1731 | add edi, ecx |
|
- | 1732 | cmp edi, CopyDestEditBuf+12+513 |
|
- | 1733 | pop edi |
|
- | 1734 | jb @f |
|
- | 1735 | pop esi |
|
- | 1736 | jmp .bigfilename |
|
- | 1737 | @@: |
|
- | 1738 | lea edx, [edi+2] |
|
- | 1739 | sub edx, esi |
|
- | 1740 | lea edi, [edi+ecx+1] |
|
- | 1741 | xchg ecx, edx |
|
- | 1742 | std |
|
- | 1743 | lea esi, [esi+ecx-1] |
|
- | 1744 | rep movsb |
|
- | 1745 | cld |
|
- | 1746 | pop edi |
|
- | 1747 | lea esi, [ebp + panel1_dir - panel1_data] |
|
- | 1748 | push edi |
|
- | 1749 | mov ecx, edx |
|
- | 1750 | rep movsb |
|
- | 1751 | mov byte [edi-1], '/' |
|
- | 1752 | pop esi |
|
- | 1753 | .mkdir_absolute_path: |
|
- | 1754 | .mkdir_retry: |
|
- | 1755 | push 70 |
|
- | 1756 | pop eax |
|
- | 1757 | mov ebx, mkdirinfo |
|
- | 1758 | int 0x40 |
|
- | 1759 | test eax, eax |
|
- | 1760 | jz @f |
|
- | 1761 | push CopyDestEditBuf+12 |
|
- | 1762 | push aCannotMakeFolder |
|
- | 1763 | call get_error_msg |
|
- | 1764 | push eax |
|
- | 1765 | mov eax, esp |
|
- | 1766 | push RetryOrCancelBtn |
|
- | 1767 | push 2 |
|
- | 1768 | push eax |
|
- | 1769 | push 3 |
|
- | 1770 | push -1 |
|
- | 1771 | push -1 |
|
- | 1772 | push aError |
|
- | 1773 | call SayErr |
|
- | 1774 | add esp, 3*4 |
|
- | 1775 | test eax, eax |
|
- | 1776 | jz .mkdir_retry |
|
- | 1777 | @@: |
|
- | 1778 | jmp .copydone |
|
1499 | 1779 | ||
1500 | panels_OnRedraw: |
1780 | panels_OnRedraw: |
1501 | call draw_cmdbar |
1781 | call draw_cmdbar |
1502 | mov ebp, panel1_data |
1782 | mov ebp, panel1_data |
1503 | call draw_panel |
1783 | call draw_panel |
1504 | mov ebp, panel2_data |
1784 | mov ebp, panel2_data |
1505 | call draw_panel |
1785 | call draw_panel |
1506 | ret |
1786 | ret |
1507 | 1787 | ||
1508 | init_console: |
1788 | init_console: |
1509 | mov eax, [console_data_ptr] |
1789 | mov eax, [console_data_ptr] |
1510 | call mf_free |
1790 | call mf_free |
1511 | mov eax, [cur_width] |
1791 | mov eax, [cur_width] |
1512 | mul [cur_height] |
1792 | mul [cur_height] |
1513 | mov ecx, eax |
1793 | mov ecx, eax |
1514 | add eax, eax |
1794 | add eax, eax |
1515 | add eax, eax |
1795 | add eax, eax |
1516 | call mf_alloc |
1796 | call mf_alloc |
1517 | test eax, eax |
1797 | test eax, eax |
1518 | jz exit |
1798 | jz exit |
1519 | mov [console_data_ptr], eax |
1799 | mov [console_data_ptr], eax |
1520 | mov edi, eax |
1800 | mov edi, eax |
1521 | mov ax, 0720h |
1801 | mov ax, 0720h |
1522 | rep stosw |
1802 | rep stosw |
1523 | mov [panel1_left], ecx |
1803 | mov [panel1_left], ecx |
1524 | mov [panel1_top], ecx |
1804 | mov [panel1_top], ecx |
1525 | mov [panel2_top], ecx |
1805 | mov [panel2_top], ecx |
1526 | mov eax, [cur_width] |
1806 | mov eax, [cur_width] |
1527 | inc eax |
1807 | inc eax |
1528 | shr eax, 1 |
1808 | shr eax, 1 |
1529 | mov [panel1_width], eax |
1809 | mov [panel1_width], eax |
1530 | mov [panel2_left], eax |
1810 | mov [panel2_left], eax |
1531 | sub eax, [cur_width] |
1811 | sub eax, [cur_width] |
1532 | neg eax |
1812 | neg eax |
1533 | mov [panel2_width], eax |
1813 | mov [panel2_width], eax |
1534 | mov eax, [cur_height] |
1814 | mov eax, [cur_height] |
1535 | dec eax |
1815 | dec eax |
1536 | dec eax |
1816 | dec eax |
1537 | mov [panel1_height], eax |
1817 | mov [panel1_height], eax |
1538 | mov [panel2_height], eax |
1818 | mov [panel2_height], eax |
1539 | ret |
1819 | ret |
1540 | 1820 | ||
1541 | get_curfile_folder_entry: |
1821 | get_curfile_folder_entry: |
1542 | push eax |
- | |
1543 | mov ecx, [ebp + panel1_index - panel1_data] |
1822 | mov ecx, [ebp + panel1_index - panel1_data] |
1544 | mov eax, [ebp + panel1_files - panel1_data] |
- | |
1545 | mov ecx, [eax+ecx*4] |
1823 | shl ecx, 2 |
1546 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
1547 | lea ecx, [ecx+eax*4+32] |
- | |
1548 | add ecx, [ebp + panel1_files - panel1_data] |
1824 | add ecx, [ebp + panel1_files - panel1_data] |
1549 | pop eax |
1825 | mov ecx, [ecx] |
1550 | ret |
1826 | ret |
1551 | get_curfile_name: |
1827 | get_curfile_name: |
1552 | call get_curfile_folder_entry |
1828 | call get_curfile_folder_entry |
1553 | add ecx, 40 |
1829 | add ecx, 40 |
1554 | ret |
1830 | ret |
1555 | 1831 | ||
1556 | panels_getname: |
1832 | panels_getname: |
1557 | if lang eq ru |
1833 | if lang eq ru |
1558 | mov eax, ' ¥' |
1834 | mov eax, ' ¥' |
1559 | stosd |
1835 | stosd |
1560 | mov eax, 'Ǭ ' |
1836 | mov eax, 'Ǭ ' |
1561 | stosd |
1837 | stosd |
1562 | mov eax, ' ' |
1838 | mov eax, ' ' |
1563 | stosd |
1839 | stosd |
1564 | stosb |
1840 | stosb |
1565 | else |
1841 | else |
1566 | mov eax, 'Pane' |
1842 | mov eax, 'Pane' |
1567 | stosd |
1843 | stosd |
1568 | mov eax, 'ls ' |
1844 | mov eax, 'ls ' |
1569 | stosd |
1845 | stosd |
1570 | mov eax, ' ' |
1846 | mov eax, ' ' |
1571 | stosd |
1847 | stosd |
1572 | stosb |
1848 | stosb |
1573 | end if |
1849 | end if |
1574 | sub ecx, 13 |
1850 | sub ecx, 13 |
1575 | mov ebp, [active_panel] |
1851 | mov ebp, [active_panel] |
1576 | lea esi, [ebp + panel1_dir - panel1_data] |
1852 | lea esi, [ebp + panel1_dir - panel1_data] |
1577 | push 3 |
1853 | push 3 |
1578 | pop edx |
1854 | pop edx |
1579 | @@: |
1855 | @@: |
1580 | lodsb |
1856 | lodsb |
1581 | stosb |
1857 | stosb |
1582 | dec ecx |
1858 | dec ecx |
1583 | test al, al |
1859 | test al, al |
1584 | jz @f |
1860 | jz @f |
1585 | cmp al, '/' |
1861 | cmp al, '/' |
1586 | jnz @b |
1862 | jnz @b |
1587 | dec edx |
1863 | dec edx |
1588 | jnz @b |
1864 | jnz @b |
1589 | @@: |
1865 | @@: |
1590 | test al, al |
1866 | test al, al |
1591 | jnz @f |
1867 | jnz @f |
1592 | dec esi |
1868 | dec esi |
1593 | dec edi |
1869 | dec edi |
1594 | @@: |
1870 | @@: |
1595 | push esi |
1871 | push esi |
1596 | @@: |
1872 | @@: |
1597 | lodsb |
1873 | lodsb |
1598 | test al, al |
1874 | test al, al |
1599 | jnz @b |
1875 | jnz @b |
1600 | dec esi |
1876 | dec esi |
1601 | mov ebx, esi |
1877 | mov ebx, esi |
1602 | sub ebx, [esp] |
1878 | sub ebx, [esp] |
1603 | dec esi |
1879 | dec esi |
1604 | push esi |
1880 | push esi |
1605 | mov edx, [ebp + panel1_files - panel1_data] |
- | |
1606 | mov esi, [ebp + panel1_index - panel1_data] |
1881 | mov esi, [ebp + panel1_index - panel1_data] |
1607 | mov esi, [edx+esi*4] |
- | |
1608 | add esi, edx |
1882 | shl esi, 2 |
1609 | mov edx, [ebp + panel1_nfa - panel1_data] |
1883 | add esi, [ebp + panel1_files - panel1_data] |
1610 | lea esi, [esi+edx*4+32+40] |
1884 | mov esi, [esi] |
- | 1885 | add esi, 40 |
|
1611 | push esi |
1886 | push esi |
1612 | @@: |
1887 | @@: |
1613 | lodsb |
1888 | lodsb |
1614 | test al, al |
1889 | test al, al |
1615 | jnz @b |
1890 | jnz @b |
1616 | add ebx, esi |
1891 | add ebx, esi |
1617 | sub ebx, [esp] |
1892 | sub ebx, [esp] |
1618 | dec esi |
1893 | dec esi |
1619 | cmp ebx, ecx |
1894 | cmp ebx, ecx |
1620 | jbe @f |
1895 | jbe @f |
1621 | mov al, '.' |
1896 | mov al, '.' |
1622 | stosb |
1897 | stosb |
1623 | stosb |
1898 | stosb |
1624 | stosb |
1899 | stosb |
1625 | sub ecx, 3 |
1900 | sub ecx, 3 |
1626 | mov ebx, ecx |
1901 | mov ebx, ecx |
1627 | @@: |
1902 | @@: |
1628 | add edi, ebx |
1903 | add edi, ebx |
1629 | inc ecx |
1904 | inc ecx |
1630 | std |
1905 | std |
1631 | @@: |
1906 | @@: |
1632 | movsb |
1907 | movsb |
1633 | dec ecx |
1908 | dec ecx |
1634 | jz .nodir |
1909 | jz .nodir |
1635 | cmp esi, [esp] |
1910 | cmp esi, [esp] |
1636 | jae @b |
1911 | jae @b |
1637 | mov al, '/' |
1912 | mov al, '/' |
1638 | stosb |
1913 | stosb |
1639 | dec ecx |
1914 | dec ecx |
1640 | jz .nodir |
1915 | jz .nodir |
1641 | mov esi, [esp+4] |
1916 | mov esi, [esp+4] |
1642 | @@: |
1917 | @@: |
1643 | cmp esi, [esp+8] |
1918 | cmp esi, [esp+8] |
1644 | jb .nodir |
1919 | jb .nodir |
1645 | movsb |
1920 | movsb |
1646 | loop @b |
1921 | loop @b |
1647 | .nodir: |
1922 | .nodir: |
1648 | cld |
1923 | cld |
1649 | pop eax |
1924 | pop eax |
1650 | pop eax |
1925 | pop eax |
1651 | pop eax |
1926 | pop eax |
1652 | ret |
1927 | ret |
1653 | 1928 | ||
1654 | draw_window: |
1929 | draw_window: |
1655 | push 12 |
1930 | push 12 |
1656 | pop eax |
1931 | pop eax |
1657 | push 1 |
1932 | push 1 |
1658 | pop ebx |
1933 | pop ebx |
1659 | int 40h |
1934 | int 40h |
1660 | mov al, 48 |
1935 | mov al, 48 |
1661 | mov bl, 4 |
1936 | mov bl, 4 |
1662 | int 40h |
1937 | int 40h |
1663 | mov [skinh], eax |
1938 | mov [skinh], eax |
1664 | mov ebx, [cur_width] |
1939 | mov ebx, [cur_width] |
1665 | imul ebx, font_width |
1940 | imul ebx, font_width |
1666 | add ebx, 100*65536 + 5*2-1 |
1941 | add ebx, 100*65536 + 5*2-1 |
1667 | mov ecx, [cur_height] |
1942 | mov ecx, [cur_height] |
1668 | imul ecx, font_height |
1943 | imul ecx, font_height |
1669 | lea ecx, [eax+ecx+5-1+100*65536] |
1944 | lea ecx, [eax+ecx+5-1+100*65536] |
1670 | xor eax, eax |
1945 | xor eax, eax |
1671 | mov edx, 0x53000000 |
1946 | mov edx, 0x53000000 |
1672 | mov edi, header |
1947 | mov edi, header |
1673 | int 40h |
1948 | int 40h |
1674 | mov al, 13 |
1949 | mov al, 13 |
1675 | xor edx, edx |
1950 | xor edx, edx |
1676 | cmp [fill_width], 0 |
1951 | cmp [fill_width], 0 |
1677 | jz @f |
1952 | jz @f |
1678 | mov ebx, [wnd_width] |
1953 | mov ebx, [wnd_width] |
1679 | sub ebx, [fill_width] |
1954 | sub ebx, [fill_width] |
1680 | sub ebx, 5-1 |
1955 | sub ebx, 5-1 |
1681 | shl ebx, 16 |
1956 | shl ebx, 16 |
1682 | mov bx, word [fill_width] |
1957 | mov bx, word [fill_width] |
1683 | mov ecx, [skinh-2] |
1958 | mov ecx, [skinh-2] |
1684 | mov cx, word [wnd_height] |
1959 | mov cx, word [wnd_height] |
1685 | sub cx, word [skinh] |
1960 | sub cx, word [skinh] |
1686 | sub cx, 5-1 |
1961 | sub cx, 5-1 |
1687 | int 0x40 |
1962 | int 0x40 |
1688 | @@: |
1963 | @@: |
1689 | cmp [fill_height], 0 |
1964 | cmp [fill_height], 0 |
1690 | jz @f |
1965 | jz @f |
1691 | mov al, 13 |
1966 | mov al, 13 |
1692 | xor edx, edx |
1967 | xor edx, edx |
1693 | mov ebx, 50000h |
1968 | mov ebx, 50000h |
1694 | mov bx, word [wnd_width] |
1969 | mov bx, word [wnd_width] |
1695 | sub ebx, 9 |
1970 | sub ebx, 9 |
1696 | mov ecx, [wnd_height] |
1971 | mov ecx, [wnd_height] |
1697 | sub ecx, [fill_height] |
1972 | sub ecx, [fill_height] |
1698 | sub ecx, 5-1 |
1973 | sub ecx, 5-1 |
1699 | shl ecx, 16 |
1974 | shl ecx, 16 |
1700 | mov cx, word [fill_height] |
1975 | mov cx, word [fill_height] |
1701 | int 0x40 |
1976 | int 0x40 |
1702 | @@: |
1977 | @@: |
1703 | ; xor ecx, ecx |
1978 | ; xor ecx, ecx |
1704 | ; call draw_image |
1979 | ; call draw_image |
1705 | and [min_x], 0 |
1980 | and [min_x], 0 |
1706 | and [min_y], 0 |
1981 | and [min_y], 0 |
1707 | mov eax, [cur_width] |
1982 | mov eax, [cur_width] |
1708 | dec eax |
1983 | dec eax |
1709 | mov [max_x], eax |
1984 | mov [max_x], eax |
1710 | mov eax, [cur_height] |
1985 | mov eax, [cur_height] |
1711 | dec eax |
1986 | dec eax |
1712 | mov [max_y], eax |
1987 | mov [max_y], eax |
1713 | call draw_image.force |
1988 | call draw_image.force |
1714 | mov al, 12 |
1989 | mov al, 12 |
1715 | push 2 |
1990 | push 2 |
1716 | pop ebx |
1991 | pop ebx |
1717 | int 40h |
1992 | int 40h |
1718 | ret |
1993 | ret |
1719 | 1994 | ||
1720 | draw_image.nomem: |
1995 | draw_image.nomem: |
1721 | mov al, 13 |
1996 | mov al, 13 |
1722 | xor edx, edx |
1997 | xor edx, edx |
1723 | mov ebx, [cur_width] |
1998 | mov ebx, [cur_width] |
1724 | imul ebx, font_width |
1999 | imul ebx, font_width |
1725 | add ebx, 5*65536 |
2000 | add ebx, 5*65536 |
1726 | mov ecx, [skinh-2] |
2001 | mov ecx, [skinh-2] |
1727 | mov cx, word [cur_height] |
2002 | mov cx, word [cur_height] |
1728 | imul cx, font_height |
2003 | imul cx, font_height |
1729 | int 40h |
2004 | int 40h |
1730 | mov al, 4 |
2005 | mov al, 4 |
1731 | mov ebx, 32*65536+32 |
2006 | mov ebx, 32*65536+32 |
1732 | mov ecx, 0xFFFFFF |
2007 | mov ecx, 0xFFFFFF |
1733 | mov edx, nomem_draw |
2008 | mov edx, nomem_draw |
1734 | push nomem_draw.size |
2009 | push nomem_draw.size |
1735 | pop esi |
2010 | pop esi |
1736 | int 40h |
2011 | int 40h |
1737 | ret |
2012 | ret |
1738 | 2013 | ||
1739 | draw_image: |
2014 | draw_image: |
1740 | ; determine draw rectangle |
2015 | ; determine draw rectangle |
1741 | and [max_x], 0 |
2016 | and [max_x], 0 |
1742 | or [min_x], -1 |
2017 | or [min_x], -1 |
1743 | or [min_y], -1 |
2018 | or [min_y], -1 |
1744 | mov esi, [console_data_ptr] |
2019 | mov esi, [console_data_ptr] |
1745 | xor eax, eax |
2020 | xor eax, eax |
1746 | xor edx, edx |
2021 | xor edx, edx |
1747 | mov ecx, [cur_width] |
2022 | mov ecx, [cur_width] |
1748 | imul ecx, [cur_height] |
2023 | imul ecx, [cur_height] |
1749 | .m1: |
2024 | .m1: |
1750 | mov bx, [esi] |
2025 | mov bx, [esi] |
1751 | cmp bx, [esi+ecx*2] |
2026 | cmp bx, [esi+ecx*2] |
1752 | jz .m2 |
2027 | jz .m2 |
1753 | cmp eax, [min_x] |
2028 | cmp eax, [min_x] |
1754 | ja @f |
2029 | ja @f |
1755 | mov [min_x], eax |
2030 | mov [min_x], eax |
1756 | @@: |
2031 | @@: |
1757 | cmp eax, [max_x] |
2032 | cmp eax, [max_x] |
1758 | jb @f |
2033 | jb @f |
1759 | mov [max_x], eax |
2034 | mov [max_x], eax |
1760 | @@: |
2035 | @@: |
1761 | cmp edx, [min_y] |
2036 | cmp edx, [min_y] |
1762 | jae @f |
2037 | jae @f |
1763 | mov [min_y], edx |
2038 | mov [min_y], edx |
1764 | @@: |
2039 | @@: |
1765 | mov [max_y], edx |
2040 | mov [max_y], edx |
1766 | .m2: |
2041 | .m2: |
1767 | add esi, 2 |
2042 | add esi, 2 |
1768 | inc eax |
2043 | inc eax |
1769 | cmp eax, [cur_width] |
2044 | cmp eax, [cur_width] |
1770 | jb .m1 |
2045 | jb .m1 |
1771 | xor eax, eax |
2046 | xor eax, eax |
1772 | inc edx |
2047 | inc edx |
1773 | cmp edx, [cur_height] |
2048 | cmp edx, [cur_height] |
1774 | jb .m1 |
2049 | jb .m1 |
1775 | mov eax, [cursor_x] |
2050 | mov eax, [cursor_x] |
1776 | cmp eax, -1 |
2051 | cmp eax, -1 |
1777 | jz .m3 |
2052 | jz .m3 |
1778 | cmp eax, [min_x] |
2053 | cmp eax, [min_x] |
1779 | ja @f |
2054 | ja @f |
1780 | mov [min_x], eax |
2055 | mov [min_x], eax |
1781 | @@: |
2056 | @@: |
1782 | cmp eax, [max_x] |
2057 | cmp eax, [max_x] |
1783 | jb @f |
2058 | jb @f |
1784 | mov [max_x], eax |
2059 | mov [max_x], eax |
1785 | @@: |
2060 | @@: |
1786 | mov edx, [cursor_y] |
2061 | mov edx, [cursor_y] |
1787 | cmp edx, [min_y] |
2062 | cmp edx, [min_y] |
1788 | ja @f |
2063 | ja @f |
1789 | mov [min_y], edx |
2064 | mov [min_y], edx |
1790 | @@: |
2065 | @@: |
1791 | cmp edx, [max_y] |
2066 | cmp edx, [max_y] |
1792 | jb @f |
2067 | jb @f |
1793 | mov [max_y], edx |
2068 | mov [max_y], edx |
1794 | @@: |
2069 | @@: |
1795 | .m3: |
2070 | .m3: |
1796 | xchg eax, [old_cursor_x] |
2071 | xchg eax, [old_cursor_x] |
1797 | xchg edx, [old_cursor_y] |
2072 | xchg edx, [old_cursor_y] |
1798 | cmp eax, -1 |
2073 | cmp eax, -1 |
1799 | jz .m4 |
2074 | jz .m4 |
1800 | cmp eax, [min_x] |
2075 | cmp eax, [min_x] |
1801 | ja @f |
2076 | ja @f |
1802 | mov [min_x], eax |
2077 | mov [min_x], eax |
1803 | @@: |
2078 | @@: |
1804 | cmp eax, [max_x] |
2079 | cmp eax, [max_x] |
1805 | jb @f |
2080 | jb @f |
1806 | mov [max_x], eax |
2081 | mov [max_x], eax |
1807 | @@: |
2082 | @@: |
1808 | cmp edx, [min_y] |
2083 | cmp edx, [min_y] |
1809 | ja @f |
2084 | ja @f |
1810 | mov [min_y], edx |
2085 | mov [min_y], edx |
1811 | @@: |
2086 | @@: |
1812 | cmp edx, [max_y] |
2087 | cmp edx, [max_y] |
1813 | jb @f |
2088 | jb @f |
1814 | mov [max_y], edx |
2089 | mov [max_y], edx |
1815 | @@: |
2090 | @@: |
1816 | .m4: |
2091 | .m4: |
1817 | cmp [min_y], -1 |
2092 | cmp [min_y], -1 |
1818 | jz .nodraw |
2093 | jz .nodraw |
1819 | .force: |
2094 | .force: |
1820 | ; allocate memory for image |
2095 | ; allocate memory for image |
1821 | mov ecx, [max_x] |
2096 | mov ecx, [max_x] |
1822 | sub ecx, [min_x] |
2097 | sub ecx, [min_x] |
1823 | inc ecx |
2098 | inc ecx |
1824 | mov [used_width], ecx |
2099 | mov [used_width], ecx |
1825 | mov edx, [max_y] |
2100 | mov edx, [max_y] |
1826 | sub edx, [min_y] |
2101 | sub edx, [min_y] |
1827 | inc edx |
2102 | inc edx |
1828 | mov [used_height], edx |
2103 | mov [used_height], edx |
1829 | imul ecx, edx |
2104 | imul ecx, edx |
1830 | imul ecx, font_width*font_height |
2105 | imul ecx, font_width*font_height |
1831 | add ecx, [heapend] |
2106 | add ecx, [heapend] |
1832 | push 64 |
2107 | push 64 |
1833 | pop eax |
2108 | pop eax |
1834 | push 1 |
2109 | push 1 |
1835 | pop ebx |
2110 | pop ebx |
1836 | int 0x40 |
2111 | int 0x40 |
1837 | test eax, eax |
2112 | test eax, eax |
1838 | jnz draw_image.nomem |
2113 | jnz draw_image.nomem |
1839 | mov edi, [heapend] |
2114 | mov edi, [heapend] |
1840 | mov esi, [console_data_ptr] |
2115 | mov esi, [console_data_ptr] |
1841 | mov eax, [min_y] |
2116 | mov eax, [min_y] |
1842 | imul eax, [cur_width] |
2117 | imul eax, [cur_width] |
1843 | add eax, [min_x] |
2118 | add eax, [min_x] |
1844 | lea esi, [esi+eax*2] |
2119 | lea esi, [esi+eax*2] |
1845 | mov ecx, [used_height] |
2120 | mov ecx, [used_height] |
1846 | .lh: |
2121 | .lh: |
1847 | push ecx esi |
2122 | push ecx esi |
1848 | mov ecx, [used_width] |
2123 | mov ecx, [used_width] |
1849 | .lw: |
2124 | .lw: |
1850 | push ecx |
2125 | push ecx |
1851 | mov ebx, [esi] |
2126 | mov ebx, [esi] |
1852 | mov eax, [cur_width] |
2127 | mov eax, [cur_width] |
1853 | imul eax, [cur_height] |
2128 | imul eax, [cur_height] |
1854 | mov [eax*2+esi], bx |
2129 | mov [eax*2+esi], bx |
1855 | movzx eax, bl |
2130 | movzx eax, bl |
1856 | push edi |
2131 | push edi |
1857 | movzx ebx, bh |
2132 | movzx ebx, bh |
1858 | mov ebp, ebx |
2133 | mov ebp, ebx |
1859 | shr ebp, 4 |
2134 | shr ebp, 4 |
1860 | and ebx, 0xF |
2135 | and ebx, 0xF |
1861 | sub ebx, ebp |
2136 | sub ebx, ebp |
1862 | add esi, 2 |
2137 | add esi, 2 |
1863 | if font_width > 8 |
2138 | if font_width > 8 |
1864 | lea edx, [eax+eax+font] |
2139 | lea edx, [eax+eax+font] |
1865 | else |
2140 | else |
1866 | lea edx, [eax+font] |
2141 | lea edx, [eax+font] |
1867 | end if |
2142 | end if |
1868 | mov ecx, font_height |
2143 | mov ecx, font_height |
1869 | .sh: |
2144 | .sh: |
1870 | push ecx edx edi |
2145 | push ecx edx edi |
1871 | xor ecx, ecx |
2146 | xor ecx, ecx |
1872 | mov edx, [edx] |
2147 | mov edx, [edx] |
1873 | .sw: |
2148 | .sw: |
1874 | shr edx, 1 |
2149 | shr edx, 1 |
1875 | sbb eax, eax |
2150 | sbb eax, eax |
1876 | and eax, ebx |
2151 | and eax, ebx |
1877 | add eax, ebp |
2152 | add eax, ebp |
1878 | mov [edi], al |
2153 | mov [edi], al |
1879 | add ecx, 1 |
2154 | add ecx, 1 |
1880 | add edi, 1 |
2155 | add edi, 1 |
1881 | cmp ecx, font_width |
2156 | cmp ecx, font_width |
1882 | jb .sw |
2157 | jb .sw |
1883 | pop edi edx ecx |
2158 | pop edi edx ecx |
1884 | mov eax, [used_width] |
2159 | mov eax, [used_width] |
1885 | imul eax, font_width |
2160 | imul eax, font_width |
1886 | add edi, eax |
2161 | add edi, eax |
1887 | if font_width > 8 |
2162 | if font_width > 8 |
1888 | add edx, 256*2 |
2163 | add edx, 256*2 |
1889 | else |
2164 | else |
1890 | add edx, 256 |
2165 | add edx, 256 |
1891 | end if |
2166 | end if |
1892 | loop .sh |
2167 | loop .sh |
1893 | pop edi |
2168 | pop edi |
1894 | .skip_symbol: |
2169 | .skip_symbol: |
1895 | pop ecx |
2170 | pop ecx |
1896 | add edi, font_width |
2171 | add edi, font_width |
1897 | dec ecx |
2172 | dec ecx |
1898 | jnz .lw |
2173 | jnz .lw |
1899 | mov eax, [used_width] |
2174 | mov eax, [used_width] |
1900 | imul eax, (font_height-1)*font_width |
2175 | imul eax, (font_height-1)*font_width |
1901 | add edi, eax |
2176 | add edi, eax |
1902 | pop esi ecx |
2177 | pop esi ecx |
1903 | add esi, [cur_width] |
2178 | add esi, [cur_width] |
1904 | add esi, [cur_width] |
2179 | add esi, [cur_width] |
1905 | dec ecx |
2180 | dec ecx |
1906 | jnz .lh |
2181 | jnz .lh |
1907 | ; cursor |
2182 | ; cursor |
1908 | mov eax, [cursor_y] |
2183 | mov eax, [cursor_y] |
1909 | inc eax |
2184 | inc eax |
1910 | jz .nocursor |
2185 | jz .nocursor |
1911 | sub eax, [min_y] |
2186 | sub eax, [min_y] |
1912 | mul [used_width] |
2187 | mul [used_width] |
1913 | imul eax, font_height*font_width |
2188 | imul eax, font_height*font_width |
1914 | mov edx, [cursor_x] |
2189 | mov edx, [cursor_x] |
1915 | sub edx, [min_x] |
2190 | sub edx, [min_x] |
1916 | inc edx |
2191 | inc edx |
1917 | imul edx, font_width |
2192 | imul edx, font_width |
1918 | add eax, edx |
2193 | add eax, edx |
1919 | add eax, [heapend] |
2194 | add eax, [heapend] |
1920 | mov edx, [used_width] |
2195 | mov edx, [used_width] |
1921 | imul edx, font_width |
2196 | imul edx, font_width |
1922 | neg edx |
2197 | neg edx |
1923 | mov ecx, (font_height*15+50)/100 |
2198 | mov ecx, (font_height*15+50)/100 |
1924 | .cursor_loop: |
2199 | .cursor_loop: |
1925 | push ecx |
2200 | push ecx |
1926 | mov ecx, font_width |
2201 | mov ecx, font_width |
1927 | add eax, edx |
2202 | add eax, edx |
1928 | push eax |
2203 | push eax |
1929 | @@: |
2204 | @@: |
1930 | ; add byte [eax-1], 0x10 |
2205 | ; add byte [eax-1], 0x10 |
1931 | xor byte [eax-1], 7 |
2206 | xor byte [eax-1], 7 |
1932 | sub eax, 1 |
2207 | sub eax, 1 |
1933 | loop @b |
2208 | loop @b |
1934 | pop eax |
2209 | pop eax |
1935 | pop ecx |
2210 | pop ecx |
1936 | loop .cursor_loop |
2211 | loop .cursor_loop |
1937 | .nocursor: |
2212 | .nocursor: |
1938 | mov ecx, [used_width] |
2213 | mov ecx, [used_width] |
1939 | imul ecx, font_width*65536 |
2214 | imul ecx, font_width*65536 |
1940 | mov cx, word [used_height] |
2215 | mov cx, word [used_height] |
1941 | imul cx, font_height |
2216 | imul cx, font_height |
1942 | mov edx, [min_x] |
2217 | mov edx, [min_x] |
1943 | imul edx, font_width |
2218 | imul edx, font_width |
1944 | add edx, 5 |
2219 | add edx, 5 |
1945 | shl edx, 16 |
2220 | shl edx, 16 |
1946 | mov dx, word [min_y] |
2221 | mov dx, word [min_y] |
1947 | imul dx, font_height |
2222 | imul dx, font_height |
1948 | add edx, [skinh] |
2223 | add edx, [skinh] |
1949 | push 65 |
2224 | push 65 |
1950 | pop eax |
2225 | pop eax |
1951 | mov ebx, [heapend] |
2226 | mov ebx, [heapend] |
1952 | push 8 |
2227 | push 8 |
1953 | pop esi |
2228 | pop esi |
1954 | mov edi, console_colors |
2229 | mov edi, console_colors |
1955 | xor ebp, ebp |
2230 | xor ebp, ebp |
1956 | int 0x40 |
2231 | int 0x40 |
1957 | push 64 |
2232 | push 64 |
1958 | pop eax |
2233 | pop eax |
1959 | push 1 |
2234 | push 1 |
1960 | pop ebx |
2235 | pop ebx |
1961 | mov ecx, [heapend] |
2236 | mov ecx, [heapend] |
1962 | int 0x40 |
2237 | int 0x40 |
1963 | .nodraw: |
2238 | .nodraw: |
1964 | ret |
2239 | ret |
1965 | 2240 | ||
1966 | get_console_ptr: |
2241 | get_console_ptr: |
1967 | ; in: eax=x, edx=y |
2242 | ; in: eax=x, edx=y |
1968 | ; out: edi->console data |
2243 | ; out: edi->console data |
1969 | push edx |
2244 | push edx |
1970 | imul edx, [cur_width] |
2245 | imul edx, [cur_width] |
1971 | add edx, eax |
2246 | add edx, eax |
1972 | mov edi, [console_data_ptr] |
2247 | mov edi, [console_data_ptr] |
1973 | lea edi, [edi + edx*2] |
2248 | lea edi, [edi + edx*2] |
1974 | pop edx |
2249 | pop edx |
1975 | ret |
2250 | ret |
1976 | 2251 | ||
1977 | draw_keybar: |
2252 | draw_keybar: |
1978 | pushad |
2253 | pushad |
1979 | xor eax, eax |
2254 | xor eax, eax |
1980 | test [ctrlstate], 3 |
2255 | test [ctrlstate], 3 |
1981 | jz @f |
2256 | jz @f |
1982 | inc eax |
2257 | inc eax |
1983 | @@: |
2258 | @@: |
1984 | test [ctrlstate], 0xC |
2259 | test [ctrlstate], 0xC |
1985 | jz @f |
2260 | jz @f |
1986 | or al, 2 |
2261 | or al, 2 |
1987 | @@: |
2262 | @@: |
1988 | test [ctrlstate], 0x30 |
2263 | test [ctrlstate], 0x30 |
1989 | jz @f |
2264 | jz @f |
1990 | or al, 4 |
2265 | or al, 4 |
1991 | @@: |
2266 | @@: |
1992 | imul eax, 6*12 |
2267 | imul eax, 6*12 |
1993 | mov esi, [active_screen_vtable] |
2268 | mov esi, [active_screen_vtable] |
1994 | mov esi, [esi+screen_vtable.keybar] |
2269 | mov esi, [esi+screen_vtable.keybar] |
1995 | add esi, eax |
2270 | add esi, eax |
1996 | xor ecx, ecx |
2271 | xor ecx, ecx |
1997 | inc ecx |
2272 | inc ecx |
1998 | xor eax, eax |
2273 | xor eax, eax |
1999 | mov edx, [cur_height] |
2274 | mov edx, [cur_height] |
2000 | dec edx |
2275 | dec edx |
2001 | call get_console_ptr |
2276 | call get_console_ptr |
2002 | push 6 |
2277 | push 6 |
2003 | pop ebx |
2278 | pop ebx |
2004 | mov eax, [cur_width] |
2279 | mov eax, [cur_width] |
2005 | sub eax, 11+9+3*2+6 |
2280 | sub eax, 11+9+3*2+6 |
2006 | cmp eax, 7*11 |
2281 | cmp eax, 7*11 |
2007 | jl @f |
2282 | jl @f |
2008 | cdq |
2283 | cdq |
2009 | mov bl, 11 |
2284 | mov bl, 11 |
2010 | div ebx |
2285 | div ebx |
2011 | mov ebx, eax |
2286 | mov ebx, eax |
2012 | @@: |
2287 | @@: |
2013 | xor edx, edx |
2288 | xor edx, edx |
2014 | .l: |
2289 | .l: |
2015 | add edx, 7 |
2290 | add edx, 7 |
2016 | cmp cl, 10 |
2291 | cmp cl, 10 |
2017 | jb @f |
2292 | jb @f |
2018 | inc edx |
2293 | inc edx |
2019 | @@: |
2294 | @@: |
2020 | cmp edx, [cur_width] |
2295 | cmp edx, [cur_width] |
2021 | ja .ret |
2296 | ja .ret |
2022 | cmp cl, 10 |
2297 | cmp cl, 10 |
2023 | jae .twodig |
2298 | jae .twodig |
2024 | lea eax, [ecx+'0'] |
2299 | lea eax, [ecx+'0'] |
2025 | stosb |
2300 | stosb |
2026 | mov al, [keybar_number_color] |
2301 | mov al, [keybar_number_color] |
2027 | stosb |
2302 | stosb |
2028 | jmp .cmn |
2303 | jmp .cmn |
2029 | .twodig: |
2304 | .twodig: |
2030 | mov al, cl |
2305 | mov al, cl |
2031 | cbw |
2306 | cbw |
2032 | div [_10] |
2307 | div [_10] |
2033 | add al, '0' |
2308 | add al, '0' |
2034 | stosb |
2309 | stosb |
2035 | mov al, [keybar_number_color] |
2310 | mov al, [keybar_number_color] |
2036 | stosb |
2311 | stosb |
2037 | xchg al, ah |
2312 | xchg al, ah |
2038 | add al, '0' |
2313 | add al, '0' |
2039 | stosw |
2314 | stosw |
2040 | .cmn: |
2315 | .cmn: |
2041 | mov ah, [keybar_name_color] |
2316 | mov ah, [keybar_name_color] |
2042 | push ecx |
2317 | push ecx |
2043 | mov cl, 6 |
2318 | mov cl, 6 |
2044 | @@: |
2319 | @@: |
2045 | lodsb |
2320 | lodsb |
2046 | stosw |
2321 | stosw |
2047 | loop @b |
2322 | loop @b |
2048 | mov al, ' ' |
2323 | mov al, ' ' |
2049 | lea ecx, [ebx-6] |
2324 | lea ecx, [ebx-6] |
2050 | cmp byte [esp], 12 |
2325 | cmp byte [esp], 12 |
2051 | jz .ret_pop |
2326 | jz .ret_pop |
2052 | add edx, ecx |
2327 | add edx, ecx |
2053 | rep stosw |
2328 | rep stosw |
2054 | pop ecx |
2329 | pop ecx |
2055 | inc edx |
2330 | inc edx |
2056 | cmp edx, [cur_width] |
2331 | cmp edx, [cur_width] |
2057 | ja .ret |
2332 | ja .ret |
2058 | mov ah, [keybar_bgr_color] |
2333 | mov ah, [keybar_bgr_color] |
2059 | stosw |
2334 | stosw |
2060 | inc ecx |
2335 | inc ecx |
2061 | jmp .l |
2336 | jmp .l |
2062 | .ret_pop: |
2337 | .ret_pop: |
2063 | pop ecx |
2338 | pop ecx |
2064 | .ret: |
2339 | .ret: |
2065 | cmp byte [edi-2], ' ' |
2340 | cmp byte [edi-2], ' ' |
2066 | jnz @f |
2341 | jnz @f |
2067 | dec edi |
2342 | dec edi |
2068 | dec edi |
2343 | dec edi |
2069 | @@: |
2344 | @@: |
2070 | push edi |
2345 | push edi |
2071 | xor eax, eax |
2346 | xor eax, eax |
2072 | mov edx, [cur_height] |
2347 | mov edx, [cur_height] |
2073 | call get_console_ptr |
2348 | call get_console_ptr |
2074 | mov ecx, edi |
2349 | mov ecx, edi |
2075 | pop edi |
2350 | pop edi |
2076 | sub ecx, edi |
2351 | sub ecx, edi |
2077 | shr ecx, 1 |
2352 | shr ecx, 1 |
2078 | mov al, ' ' |
2353 | mov al, ' ' |
2079 | mov ah, [keybar_name_color] |
2354 | mov ah, [keybar_name_color] |
2080 | rep stosw |
2355 | rep stosw |
2081 | .done: |
2356 | .done: |
2082 | popad |
2357 | popad |
2083 | ret |
2358 | ret |
2084 | 2359 | ||
2085 | draw_cmdbar: |
2360 | draw_cmdbar: |
2086 | mov esi, [active_panel] |
2361 | mov esi, [active_panel] |
2087 | add esi, panel1_dir - panel1_data |
2362 | add esi, panel1_dir - panel1_data |
2088 | xor eax, eax |
2363 | xor eax, eax |
2089 | mov edx, [cur_height] |
2364 | mov edx, [cur_height] |
2090 | dec edx |
2365 | dec edx |
2091 | dec edx |
2366 | dec edx |
2092 | call get_console_ptr |
2367 | call get_console_ptr |
2093 | mov ah, [cmdbar_prefix_color] |
2368 | mov ah, [cmdbar_prefix_color] |
2094 | mov ecx, [cur_width] |
2369 | mov ecx, [cur_width] |
2095 | dec ecx |
2370 | dec ecx |
2096 | @@: |
2371 | @@: |
2097 | lodsb |
2372 | lodsb |
2098 | test al, al |
2373 | test al, al |
2099 | jz @f |
2374 | jz @f |
2100 | stosw |
2375 | stosw |
2101 | loop @b |
2376 | loop @b |
2102 | @@: |
2377 | @@: |
2103 | mov al, '>' |
2378 | mov al, '>' |
2104 | stosw |
2379 | stosw |
2105 | mov al, ' ' |
2380 | mov al, ' ' |
2106 | mov ah, [cmdbar_normal_color] |
2381 | mov ah, [cmdbar_normal_color] |
2107 | rep stosw |
2382 | rep stosw |
2108 | ret |
2383 | ret |
2109 | 2384 | ||
2110 | draw_border: |
2385 | draw_border: |
2111 | push edi |
2386 | push edi |
2112 | mov al, 0xC9 |
2387 | mov al, 0xC9 |
2113 | stosw |
2388 | stosw |
2114 | mov al, 0xCD |
2389 | mov al, 0xCD |
2115 | lea ecx, [ebx-2] |
2390 | lea ecx, [ebx-2] |
2116 | rep stosw |
2391 | rep stosw |
2117 | mov al, 0xBB |
2392 | mov al, 0xBB |
2118 | stosw |
2393 | stosw |
2119 | pop edi |
2394 | pop edi |
2120 | add edi, [cur_width] |
2395 | add edi, [cur_width] |
2121 | add edi, [cur_width] |
2396 | add edi, [cur_width] |
2122 | lea ecx, [edx-2] |
2397 | lea ecx, [edx-2] |
2123 | .l: |
2398 | .l: |
2124 | push edi |
2399 | push edi |
2125 | mov al, 0xBA |
2400 | mov al, 0xBA |
2126 | stosw |
2401 | stosw |
2127 | mov al, 0x20 |
2402 | mov al, 0x20 |
2128 | push ecx |
2403 | push ecx |
2129 | lea ecx, [ebx-2] |
2404 | lea ecx, [ebx-2] |
2130 | rep stosw |
2405 | rep stosw |
2131 | pop ecx |
2406 | pop ecx |
2132 | mov al, 0xBA |
2407 | mov al, 0xBA |
2133 | stosw |
2408 | stosw |
2134 | pop edi |
2409 | pop edi |
2135 | add edi, [cur_width] |
2410 | add edi, [cur_width] |
2136 | add edi, [cur_width] |
2411 | add edi, [cur_width] |
2137 | loop .l |
2412 | loop .l |
2138 | mov al, 0xC8 |
2413 | mov al, 0xC8 |
2139 | stosw |
2414 | stosw |
2140 | mov al, 0xCD |
2415 | mov al, 0xCD |
2141 | lea ecx, [ebx-2] |
2416 | lea ecx, [ebx-2] |
2142 | rep stosw |
2417 | rep stosw |
2143 | mov al, 0xBC |
2418 | mov al, 0xBC |
2144 | stosw |
2419 | stosw |
2145 | ret |
2420 | ret |
2146 | 2421 | ||
2147 | draw_panel: |
2422 | draw_panel: |
2148 | mov eax, [ebp + panel1_left - panel1_data] |
2423 | mov eax, [ebp + panel1_left - panel1_data] |
2149 | mov edx, [ebp + panel1_top - panel1_data] |
2424 | mov edx, [ebp + panel1_top - panel1_data] |
2150 | call get_console_ptr |
2425 | call get_console_ptr |
2151 | ; draw border |
2426 | ; draw border |
2152 | mov ah, [panel_border_color] |
2427 | mov ah, [panel_border_color] |
2153 | mov ebx, [ebp + panel1_width - panel1_data] |
2428 | mov ebx, [ebp + panel1_width - panel1_data] |
2154 | mov edx, [ebp + panel1_height - panel1_data] |
2429 | mov edx, [ebp + panel1_height - panel1_data] |
2155 | call draw_border |
2430 | call draw_border |
2156 | push eax |
2431 | push eax |
2157 | mov eax, [ebp + panel1_left - panel1_data] |
2432 | mov eax, [ebp + panel1_left - panel1_data] |
2158 | mov edx, [ebp + panel1_top - panel1_data] |
2433 | mov edx, [ebp + panel1_top - panel1_data] |
2159 | add edx, [ebp + panel1_height - panel1_data] |
2434 | add edx, [ebp + panel1_height - panel1_data] |
2160 | sub edx, 3 |
2435 | sub edx, 3 |
2161 | call get_console_ptr |
2436 | call get_console_ptr |
2162 | pop eax |
2437 | pop eax |
2163 | mov al, 0xC7 |
2438 | mov al, 0xC7 |
2164 | stosw |
2439 | stosw |
2165 | mov al, 0xC4 |
2440 | mov al, 0xC4 |
2166 | lea ecx, [ebx-2] |
2441 | lea ecx, [ebx-2] |
2167 | rep stosw |
2442 | rep stosw |
2168 | mov al, 0xB6 |
2443 | mov al, 0xB6 |
2169 | stosw |
2444 | stosw |
2170 | mov eax, [ebp + panel1_width - panel1_data] |
2445 | mov eax, [ebp + panel1_width - panel1_data] |
2171 | sub eax, 3 |
2446 | sub eax, 3 |
2172 | shr eax, 1 |
2447 | shr eax, 1 |
2173 | mov [column_width], eax |
2448 | mov [column_width], eax |
2174 | mov eax, [ebp + panel1_left - panel1_data] |
2449 | mov eax, [ebp + panel1_left - panel1_data] |
2175 | inc eax |
2450 | inc eax |
2176 | mov [column_left], eax |
2451 | mov [column_left], eax |
2177 | add eax, [column_width] |
2452 | add eax, [column_width] |
2178 | mov edx, [ebp + panel1_top - panel1_data] |
2453 | mov edx, [ebp + panel1_top - panel1_data] |
2179 | inc edx |
2454 | inc edx |
2180 | mov [column_top], edx |
2455 | mov [column_top], edx |
2181 | dec edx |
2456 | dec edx |
2182 | call get_console_ptr |
2457 | call get_console_ptr |
2183 | mov ah, [panel_border_color] |
2458 | mov ah, [panel_border_color] |
2184 | mov al, 0xD1 |
2459 | mov al, 0xD1 |
2185 | mov [edi], ax |
2460 | mov [edi], ax |
2186 | add edi, [cur_width] |
2461 | add edi, [cur_width] |
2187 | add edi, [cur_width] |
2462 | add edi, [cur_width] |
2188 | mov ecx, [ebp + panel1_height - panel1_data] |
2463 | mov ecx, [ebp + panel1_height - panel1_data] |
2189 | sub ecx, 4 |
2464 | sub ecx, 4 |
2190 | mov [column_height], ecx |
2465 | mov [column_height], ecx |
2191 | mov al, 0xB3 |
2466 | mov al, 0xB3 |
2192 | @@: |
2467 | @@: |
2193 | mov [edi], ax |
2468 | mov [edi], ax |
2194 | add edi, [cur_width] |
2469 | add edi, [cur_width] |
2195 | add edi, [cur_width] |
2470 | add edi, [cur_width] |
2196 | loop @b |
2471 | loop @b |
2197 | mov al, 0xC1 |
2472 | mov al, 0xC1 |
2198 | stosw |
2473 | stosw |
2199 | mov eax, [column_height] |
2474 | mov eax, [column_height] |
2200 | dec eax |
2475 | dec eax |
2201 | mov [ebp + panel1_colsz - panel1_data], eax |
2476 | mov [ebp + panel1_colsz - panel1_data], eax |
2202 | add eax, eax |
2477 | add eax, eax |
2203 | mov [ebp + panel1_colst - panel1_data], eax |
2478 | mov [ebp + panel1_colst - panel1_data], eax |
2204 | mov eax, [ebp + panel1_start - panel1_data] |
2479 | mov eax, [ebp + panel1_start - panel1_data] |
2205 | mov [column_index], eax |
2480 | mov [column_index], eax |
2206 | call draw_column |
2481 | call draw_column |
2207 | mov eax, [ebp + panel1_width - panel1_data] |
2482 | mov eax, [ebp + panel1_width - panel1_data] |
2208 | sub eax, 3 |
2483 | sub eax, 3 |
2209 | mov ecx, [column_width] |
2484 | mov ecx, [column_width] |
2210 | sub eax, ecx |
2485 | sub eax, ecx |
2211 | mov [column_width], eax |
2486 | mov [column_width], eax |
2212 | inc ecx |
2487 | inc ecx |
2213 | add [column_left], ecx |
2488 | add [column_left], ecx |
2214 | call draw_column |
2489 | call draw_column |
2215 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
2490 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
2216 | lea esi, [ebp + panel1_dir - panel1_data] |
2491 | lea esi, [ebp + panel1_dir - panel1_data] |
2217 | mov edi, cur_header |
2492 | mov edi, cur_header |
2218 | mov ecx, [ebp + panel1_width - panel1_data] |
2493 | mov ecx, [ebp + panel1_width - panel1_data] |
2219 | sub ecx, 7 |
2494 | sub ecx, 7 |
2220 | movsb |
2495 | movsb |
2221 | @@: |
2496 | @@: |
2222 | lodsb |
2497 | lodsb |
2223 | stosb |
2498 | stosb |
2224 | dec ecx |
2499 | dec ecx |
2225 | test al, al |
2500 | test al, al |
2226 | jz .header_created |
2501 | jz .header_created |
2227 | cmp al, '/' |
2502 | cmp al, '/' |
2228 | jnz @b |
2503 | jnz @b |
2229 | mov edx, esi |
2504 | mov edx, esi |
2230 | @@: |
2505 | @@: |
2231 | lodsb |
2506 | lodsb |
2232 | test al, al |
2507 | test al, al |
2233 | jnz @b |
2508 | jnz @b |
2234 | sub esi, edx |
2509 | sub esi, edx |
2235 | dec esi |
2510 | dec esi |
2236 | cmp esi, ecx |
2511 | cmp esi, ecx |
2237 | jbe @f |
2512 | jbe @f |
2238 | mov word [edi], '..' |
2513 | mov word [edi], '..' |
2239 | mov byte [edi+2], '.' |
2514 | mov byte [edi+2], '.' |
2240 | add edi, 3 |
2515 | add edi, 3 |
2241 | sub ecx, 3 |
2516 | sub ecx, 3 |
2242 | add edx, esi |
2517 | add edx, esi |
2243 | sub edx, ecx |
2518 | sub edx, ecx |
2244 | @@: |
2519 | @@: |
2245 | mov esi, edx |
2520 | mov esi, edx |
2246 | @@: |
2521 | @@: |
2247 | lodsb |
2522 | lodsb |
2248 | stosb |
2523 | stosb |
2249 | dec ecx |
2524 | dec ecx |
2250 | test al, al |
2525 | test al, al |
2251 | jnz @b |
2526 | jnz @b |
2252 | .header_created: |
2527 | .header_created: |
2253 | mov edx, [ebp + panel1_top - panel1_data] |
2528 | mov edx, [ebp + panel1_top - panel1_data] |
2254 | mov eax, [ebp + panel1_left - panel1_data] |
2529 | mov eax, [ebp + panel1_left - panel1_data] |
2255 | shr ecx, 1 |
2530 | shr ecx, 1 |
2256 | lea eax, [eax+ecx+3] |
2531 | lea eax, [eax+ecx+3] |
2257 | call get_console_ptr |
2532 | call get_console_ptr |
2258 | mov ah, [panel_active_header_color] |
2533 | mov ah, [panel_active_header_color] |
2259 | cmp ebp, [active_panel] |
2534 | cmp ebp, [active_panel] |
2260 | jz @f |
2535 | jz @f |
2261 | mov ah, [panel_header_color] |
2536 | mov ah, [panel_header_color] |
2262 | @@: |
2537 | @@: |
2263 | mov al, ' ' |
2538 | mov al, ' ' |
2264 | stosw |
2539 | stosw |
2265 | mov esi, cur_header |
2540 | mov esi, cur_header |
2266 | @@: |
2541 | @@: |
2267 | lodsb |
2542 | lodsb |
2268 | test al, al |
2543 | test al, al |
2269 | jz @f |
2544 | jz @f |
2270 | stosw |
2545 | stosw |
2271 | jmp @b |
2546 | jmp @b |
2272 | @@: |
2547 | @@: |
2273 | mov al, ' ' |
2548 | mov al, ' ' |
2274 | stosw |
2549 | stosw |
2275 | mov edx, [ebp + panel1_top - panel1_data] |
2550 | mov edx, [ebp + panel1_top - panel1_data] |
2276 | inc edx |
2551 | inc edx |
2277 | mov eax, [ebp + panel1_left - panel1_data] |
2552 | mov eax, [ebp + panel1_left - panel1_data] |
2278 | inc eax |
2553 | inc eax |
2279 | call get_console_ptr |
2554 | call get_console_ptr |
2280 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
2555 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
2281 | mov al, [compare_names+eax] |
2556 | mov al, [compare_names+eax] |
2282 | stosb |
2557 | stosb |
2283 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
2558 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
2284 | jz .skip_curinfo |
2559 | jz .skip_curinfo |
2285 | ; ä®à¬ æ¨ï ® ¢ë¡à ®¬ ä ©«¥ |
2560 | ; ä®à¬ æ¨ï ® ¢ë¡à ®¬ ä ©«¥ |
2286 | mov ebx, [ebp + panel1_index - panel1_data] |
2561 | mov ebx, [ebp + panel1_index - panel1_data] |
2287 | mov eax, [ebp + panel1_files - panel1_data] |
2562 | mov eax, [ebp + panel1_files - panel1_data] |
2288 | mov ebx, [eax+ebx*4] |
2563 | mov ebx, [eax+ebx*4] |
2289 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
2290 | lea ebx, [ebx+eax*4+32] |
- | |
2291 | add ebx, [ebp + panel1_files - panel1_data] |
- | |
2292 | mov eax, [ebp + panel1_left - panel1_data] |
2564 | mov eax, [ebp + panel1_left - panel1_data] |
2293 | add eax, [ebp + panel1_width - panel1_data] |
2565 | add eax, [ebp + panel1_width - panel1_data] |
2294 | dec eax |
2566 | dec eax |
2295 | mov edx, [ebp + panel1_top - panel1_data] |
2567 | mov edx, [ebp + panel1_top - panel1_data] |
2296 | add edx, [ebp + panel1_height - panel1_data] |
2568 | add edx, [ebp + panel1_height - panel1_data] |
2297 | dec edx |
2569 | dec edx |
2298 | dec edx |
2570 | dec edx |
2299 | call get_console_ptr |
2571 | call get_console_ptr |
2300 | mov ecx, [ebp + panel1_width - panel1_data] |
2572 | mov ecx, [ebp + panel1_width - panel1_data] |
2301 | dec ecx |
2573 | dec ecx |
2302 | dec ecx |
2574 | dec ecx |
2303 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
2575 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
2304 | sub edi, 5*2 |
2576 | sub edi, 5*2 |
2305 | sub ecx, 6 |
2577 | sub ecx, 6 |
2306 | mov al, [ebx+24+2] |
2578 | mov al, [ebx+24+2] |
2307 | aam |
2579 | aam |
2308 | or ax, 0x3030 |
2580 | or ax, 0x3030 |
2309 | mov [edi], ah |
2581 | mov [edi], ah |
2310 | mov [edi+2], al |
2582 | mov [edi+2], al |
2311 | mov [edi+4], byte ':' |
2583 | mov [edi+4], byte ':' |
2312 | mov al, [ebx+24+1] |
2584 | mov al, [ebx+24+1] |
2313 | aam |
2585 | aam |
2314 | or ax, 0x3030 |
2586 | or ax, 0x3030 |
2315 | mov [edi+6], ah |
2587 | mov [edi+6], ah |
2316 | mov [edi+8], al |
2588 | mov [edi+8], al |
2317 | mov al, [panel_normal_color] |
2589 | mov al, [panel_normal_color] |
2318 | mov [edi+1], al |
2590 | mov [edi+1], al |
2319 | mov [edi+3], al |
2591 | mov [edi+3], al |
2320 | mov [edi+5], al |
2592 | mov [edi+5], al |
2321 | mov [edi+7], al |
2593 | mov [edi+7], al |
2322 | mov [edi+9], al |
2594 | mov [edi+9], al |
2323 | dec edi |
2595 | dec edi |
2324 | mov [edi], al |
2596 | mov [edi], al |
2325 | dec edi |
2597 | dec edi |
2326 | mov byte [edi], ' ' |
2598 | mov byte [edi], ' ' |
2327 | ; â ¬®¤¨ä¨ª 樨 |
2599 | ; â ¬®¤¨ä¨ª 樨 |
2328 | sub edi, 8*2 |
2600 | sub edi, 8*2 |
2329 | sub ecx, 9 |
2601 | sub ecx, 9 |
2330 | mov al, [ebx+28+0] |
2602 | mov al, [ebx+28+0] |
2331 | aam |
2603 | aam |
2332 | or ax, 0x3030 |
2604 | or ax, 0x3030 |
2333 | mov [edi], ah |
2605 | mov [edi], ah |
2334 | mov [edi+2], al |
2606 | mov [edi+2], al |
2335 | mov [edi+4], byte '.' |
2607 | mov [edi+4], byte '.' |
2336 | mov al, [ebx+28+1] |
2608 | mov al, [ebx+28+1] |
2337 | aam |
2609 | aam |
2338 | or ax, 0x3030 |
2610 | or ax, 0x3030 |
2339 | mov [edi+6], ah |
2611 | mov [edi+6], ah |
2340 | mov [edi+8], al |
2612 | mov [edi+8], al |
2341 | mov [edi+10], byte '.' |
2613 | mov [edi+10], byte '.' |
2342 | mov ax, [ebx+28+2] |
2614 | mov ax, [ebx+28+2] |
2343 | div [_100] |
2615 | div [_100] |
2344 | mov al, ah |
2616 | mov al, ah |
2345 | aam |
2617 | aam |
2346 | or ax, 0x3030 |
2618 | or ax, 0x3030 |
2347 | mov [edi+12], ah |
2619 | mov [edi+12], ah |
2348 | mov [edi+14], al |
2620 | mov [edi+14], al |
2349 | mov al, [panel_normal_color] |
2621 | mov al, [panel_normal_color] |
2350 | mov [edi+1], al |
2622 | mov [edi+1], al |
2351 | mov [edi+3], al |
2623 | mov [edi+3], al |
2352 | mov [edi+5], al |
2624 | mov [edi+5], al |
2353 | mov [edi+7], al |
2625 | mov [edi+7], al |
2354 | mov [edi+9], al |
2626 | mov [edi+9], al |
2355 | mov [edi+11], al |
2627 | mov [edi+11], al |
2356 | mov [edi+13], al |
2628 | mov [edi+13], al |
2357 | mov [edi+15], al |
2629 | mov [edi+15], al |
2358 | dec edi |
2630 | dec edi |
2359 | mov [edi], al |
2631 | mov [edi], al |
2360 | dec edi |
2632 | dec edi |
2361 | mov [edi], byte ' ' |
2633 | mov [edi], byte ' ' |
2362 | ; §¬¥à |
2634 | ; §¬¥à |
2363 | std |
2635 | std |
2364 | mov ah, [panel_normal_color] |
2636 | mov ah, [panel_normal_color] |
2365 | dec edi |
2637 | dec edi |
2366 | dec edi |
2638 | dec edi |
2367 | dec ecx |
2639 | dec ecx |
2368 | test byte [ebx], 0x10 |
2640 | test byte [ebx], 0x10 |
2369 | jz .size_file |
2641 | jz .size_file |
2370 | push ecx |
2642 | push ecx |
2371 | mov esi, aFolder+aFolder.size-1 |
2643 | mov esi, aFolder+aFolder.size-1 |
2372 | mov ecx, aFolder.size |
2644 | mov ecx, aFolder.size |
2373 | cmp word [ebx+40], '..' |
2645 | cmp word [ebx+40], '..' |
2374 | jnz @f |
2646 | jnz @f |
2375 | cmp byte [ebx+42], 0 |
2647 | cmp byte [ebx+42], 0 |
2376 | jnz @f |
2648 | jnz @f |
2377 | mov esi, aUp+aUp.size-1 |
2649 | mov esi, aUp+aUp.size-1 |
2378 | mov cl, aUp.size |
2650 | mov cl, aUp.size |
2379 | @@: |
2651 | @@: |
2380 | sub [esp], ecx |
2652 | sub [esp], ecx |
2381 | @@: |
2653 | @@: |
2382 | lodsb |
2654 | lodsb |
2383 | stosw |
2655 | stosw |
2384 | loop @b |
2656 | loop @b |
2385 | pop ecx |
2657 | pop ecx |
2386 | jmp .size_done |
2658 | jmp .size_done |
2387 | .size_file: |
2659 | .size_file: |
2388 | mov edx, [ebx+36] |
2660 | mov edx, [ebx+36] |
2389 | test edx, edx |
2661 | test edx, edx |
2390 | jz .size_less_4g |
2662 | jz .size_less_4g |
2391 | cmp edx, 10*256 |
2663 | cmp edx, 10*256 |
2392 | jae .size_tera |
2664 | jae .size_tera |
2393 | ; ¢ £¨£ ¡ ©â å |
2665 | ; ¢ £¨£ ¡ ©â å |
2394 | mov al, 'G' |
2666 | mov al, 'G' |
2395 | shl edx, 2 |
2667 | shl edx, 2 |
2396 | jmp .size_letter |
2668 | jmp .size_letter |
2397 | .size_tera: |
2669 | .size_tera: |
2398 | ; ¢ â¥à ¡ ©â å |
2670 | ; ¢ â¥à ¡ ©â å |
2399 | shr edx, 8 |
2671 | shr edx, 8 |
2400 | mov al, 'T' |
2672 | mov al, 'T' |
2401 | jmp .size_letter |
2673 | jmp .size_letter |
2402 | .size_less_4g: |
2674 | .size_less_4g: |
2403 | mov edx, [ebx+32] |
2675 | mov edx, [ebx+32] |
2404 | cmp edx, 10*(1 shl 20) |
2676 | cmp edx, 10*(1 shl 20) |
2405 | jae .size_mega |
2677 | jae .size_mega |
2406 | cmp edx, 1 shl 20 |
2678 | cmp edx, 1 shl 20 |
2407 | jb .size_num |
2679 | jb .size_num |
2408 | shr edx, 10 |
2680 | shr edx, 10 |
2409 | mov al, 'K' |
2681 | mov al, 'K' |
2410 | jmp .size_letter |
2682 | jmp .size_letter |
2411 | .size_mega: |
2683 | .size_mega: |
2412 | mov al, 'M' |
2684 | mov al, 'M' |
2413 | shr edx, 20 |
2685 | shr edx, 20 |
2414 | .size_letter: |
2686 | .size_letter: |
2415 | stosw |
2687 | stosw |
2416 | dec ecx |
2688 | dec ecx |
2417 | mov al, ' ' |
2689 | mov al, ' ' |
2418 | stosw |
2690 | stosw |
2419 | dec ecx |
2691 | dec ecx |
2420 | .size_num: |
2692 | .size_num: |
2421 | xchg eax, edx |
2693 | xchg eax, edx |
2422 | xor edx, edx |
2694 | xor edx, edx |
2423 | div [_10d] |
2695 | div [_10d] |
2424 | xchg eax, edx |
2696 | xchg eax, edx |
2425 | add al, '0' |
2697 | add al, '0' |
2426 | mov ah, [panel_normal_color] |
2698 | mov ah, [panel_normal_color] |
2427 | stosw |
2699 | stosw |
2428 | dec ecx |
2700 | dec ecx |
2429 | test edx, edx |
2701 | test edx, edx |
2430 | jnz .size_num |
2702 | jnz .size_num |
2431 | .size_done: |
2703 | .size_done: |
2432 | cld |
2704 | cld |
2433 | ; • |
2705 | ; • |
2434 | sub edi, ecx |
2706 | sub edi, ecx |
2435 | sub edi, ecx |
2707 | sub edi, ecx |
2436 | lea esi, [ebx+40] |
2708 | lea esi, [ebx+40] |
2437 | @@: |
2709 | @@: |
2438 | lodsb |
2710 | lodsb |
2439 | test al, al |
2711 | test al, al |
2440 | jnz @b |
2712 | jnz @b |
2441 | sub esi, ebx |
2713 | sub esi, ebx |
2442 | sub esi, 41 |
2714 | sub esi, 41 |
2443 | mov ah, [panel_normal_color] |
2715 | mov ah, [panel_normal_color] |
2444 | cmp esi, ecx |
2716 | cmp esi, ecx |
2445 | lea edx, [ebx+40] |
2717 | lea edx, [ebx+40] |
2446 | jbe @f |
2718 | jbe @f |
2447 | mov al, '{' |
2719 | mov al, '{' |
2448 | mov [edi-2], ax |
2720 | mov [edi-2], ax |
2449 | add edx, esi |
2721 | add edx, esi |
2450 | sub edx, ecx |
2722 | sub edx, ecx |
2451 | @@: |
2723 | @@: |
2452 | mov esi, edx |
2724 | mov esi, edx |
2453 | @@: |
2725 | @@: |
2454 | lodsb |
2726 | lodsb |
2455 | test al, al |
2727 | test al, al |
2456 | jz @f |
2728 | jz @f |
2457 | stosw |
2729 | stosw |
2458 | loop @b |
2730 | loop @b |
2459 | @@: |
2731 | @@: |
2460 | mov al, ' ' |
2732 | mov al, ' ' |
2461 | rep stosw |
2733 | rep stosw |
2462 | .skip_curinfo: |
2734 | .skip_curinfo: |
2463 | call draw_image |
2735 | call draw_image |
2464 | ret |
2736 | ret |
2465 | 2737 | ||
2466 | draw_column: |
2738 | draw_column: |
2467 | mov eax, [column_left] |
2739 | mov eax, [column_left] |
2468 | mov edx, [column_top] |
2740 | mov edx, [column_top] |
2469 | call get_console_ptr |
2741 | call get_console_ptr |
2470 | ; § £®«®¢®ª á⮫¡æ |
2742 | ; § £®«®¢®ª á⮫¡æ |
2471 | push edi |
2743 | push edi |
2472 | mov ah, [column_header_color] |
2744 | mov ah, [column_header_color] |
2473 | mov al, ' ' |
2745 | mov al, ' ' |
2474 | mov ecx, [column_width] |
2746 | mov ecx, [column_width] |
2475 | if lang eq ru |
2747 | if lang eq ru |
2476 | sub ecx, 3 |
2748 | sub ecx, 3 |
2477 | else |
2749 | else |
2478 | sub ecx, 4 |
2750 | sub ecx, 4 |
2479 | end if |
2751 | end if |
2480 | shr ecx, 1 |
2752 | shr ecx, 1 |
2481 | rep stosw |
2753 | rep stosw |
2482 | if lang eq ru |
2754 | if lang eq ru |
2483 | mov al, '' |
2755 | mov al, '' |
2484 | stosw |
2756 | stosw |
2485 | mov al, '¬' |
2757 | mov al, '¬' |
2486 | stosw |
2758 | stosw |
2487 | mov al, 'ï' |
2759 | mov al, 'ï' |
2488 | stosw |
2760 | stosw |
2489 | else |
2761 | else |
2490 | mov al, 'N' |
2762 | mov al, 'N' |
2491 | stosw |
2763 | stosw |
2492 | mov al, 'a' |
2764 | mov al, 'a' |
2493 | stosw |
2765 | stosw |
2494 | mov al, 'm' |
2766 | mov al, 'm' |
2495 | stosw |
2767 | stosw |
2496 | mov al, 'e' |
2768 | mov al, 'e' |
2497 | stosw |
2769 | stosw |
2498 | end if |
2770 | end if |
2499 | mov al, ' ' |
2771 | mov al, ' ' |
2500 | mov ecx, [column_width] |
2772 | mov ecx, [column_width] |
2501 | if lang eq ru |
2773 | if lang eq ru |
2502 | sub ecx, 2 |
2774 | sub ecx, 2 |
2503 | else |
2775 | else |
2504 | sub ecx, 3 |
2776 | sub ecx, 3 |
2505 | end if |
2777 | end if |
2506 | shr ecx, 1 |
2778 | shr ecx, 1 |
2507 | rep stosw |
2779 | rep stosw |
2508 | pop edi |
2780 | pop edi |
2509 | add edi, [cur_width] |
2781 | add edi, [cur_width] |
2510 | add edi, [cur_width] |
2782 | add edi, [cur_width] |
2511 | ; ä ©«ë |
2783 | ; ä ©«ë |
2512 | mov edx, [ebp + panel1_numfiles - panel1_data] |
2784 | mov edx, [ebp + panel1_numfiles - panel1_data] |
2513 | mov ecx, [column_height] |
2785 | mov ecx, [column_height] |
2514 | dec ecx |
2786 | dec ecx |
2515 | .l: |
2787 | .l: |
2516 | cmp [column_index], edx |
2788 | cmp [column_index], edx |
2517 | jae .ret |
2789 | jae .ret |
2518 | push ecx |
2790 | push ecx |
2519 | mov esi, [column_index] |
2791 | mov esi, [column_index] |
2520 | mov ecx, [ebp + panel1_files - panel1_data] |
2792 | mov ecx, [ebp + panel1_files - panel1_data] |
2521 | mov esi, [ecx+esi*4] |
2793 | mov esi, [ecx+esi*4] |
2522 | mov ecx, [ebp + panel1_nfa - panel1_data] |
- | |
2523 | lea esi, [esi + ecx*4 + 32 + 40] |
2794 | add esi, 40 |
2524 | add esi, [ebp + panel1_files - panel1_data] |
- | |
2525 | mov ah, [esi - 40 + 5] |
2795 | mov ah, [esi - 40 + 5] |
2526 | cmp ebp, [active_panel] |
2796 | cmp ebp, [active_panel] |
2527 | jnz @f |
2797 | jnz @f |
2528 | mov ecx, [column_index] |
2798 | mov ecx, [column_index] |
2529 | cmp ecx, [ebp + panel1_index - panel1_data] |
2799 | cmp ecx, [ebp + panel1_index - panel1_data] |
2530 | jnz @f |
2800 | jnz @f |
2531 | mov ah, [esi - 40 + 6] |
2801 | mov ah, [esi - 40 + 6] |
2532 | @@: |
2802 | @@: |
2533 | mov ecx, [column_width] |
2803 | mov ecx, [column_width] |
2534 | push edi |
2804 | push edi |
2535 | @@: |
2805 | @@: |
2536 | lodsb |
2806 | lodsb |
2537 | test al, al |
2807 | test al, al |
2538 | jz @f |
2808 | jz @f |
2539 | stosw |
2809 | stosw |
2540 | loop @b |
2810 | loop @b |
2541 | cmp byte [esi], 0 |
2811 | cmp byte [esi], 0 |
2542 | jz @f |
2812 | jz @f |
2543 | mov byte [edi], '}' |
2813 | mov byte [edi], '}' |
2544 | @@: |
2814 | @@: |
2545 | mov al, ' ' |
2815 | mov al, ' ' |
2546 | rep stosw |
2816 | rep stosw |
2547 | pop edi |
2817 | pop edi |
2548 | add edi, [cur_width] |
2818 | add edi, [cur_width] |
2549 | add edi, [cur_width] |
2819 | add edi, [cur_width] |
2550 | inc [column_index] |
2820 | inc [column_index] |
2551 | pop ecx |
2821 | pop ecx |
2552 | dec ecx |
2822 | dec ecx |
2553 | jnz .l |
2823 | jnz .l |
2554 | .ret: |
2824 | .ret: |
2555 | cmp ebp, panel1_data |
2825 | cmp ebp, panel1_data |
2556 | jnz .ret2 |
2826 | jnz .ret2 |
2557 | ; ¨á«® íªà ®¢ |
2827 | ; ¨á«® íªà ®¢ |
2558 | mov eax, [num_screens] |
2828 | mov eax, [num_screens] |
2559 | dec eax |
2829 | dec eax |
2560 | jz .ret2 |
2830 | jz .ret2 |
2561 | push eax |
2831 | push eax |
2562 | xor eax, eax |
2832 | xor eax, eax |
2563 | xor edx, edx |
2833 | xor edx, edx |
2564 | call get_console_ptr |
2834 | call get_console_ptr |
2565 | mov ah, [panel_nscreens_color] |
2835 | mov ah, [panel_nscreens_color] |
2566 | mov al, '[' |
2836 | mov al, '[' |
2567 | stosw |
2837 | stosw |
2568 | pop eax |
2838 | pop eax |
2569 | push -'0' |
2839 | push -'0' |
2570 | @@: |
2840 | @@: |
2571 | xor edx, edx |
2841 | xor edx, edx |
2572 | div [_10d] |
2842 | div [_10d] |
2573 | push edx |
2843 | push edx |
2574 | test eax, eax |
2844 | test eax, eax |
2575 | jnz @b |
2845 | jnz @b |
2576 | @@: |
2846 | @@: |
2577 | pop eax |
2847 | pop eax |
2578 | add eax, '0' |
2848 | add eax, '0' |
2579 | jz @f |
2849 | jz @f |
2580 | mov ah, [panel_nscreens_color] |
2850 | mov ah, [panel_nscreens_color] |
2581 | stosw |
2851 | stosw |
2582 | jmp @b |
2852 | jmp @b |
2583 | @@: |
2853 | @@: |
2584 | mov al, ']' |
2854 | mov al, ']' |
2585 | mov ah, [panel_nscreens_color] |
2855 | mov ah, [panel_nscreens_color] |
2586 | stosw |
2856 | stosw |
2587 | .ret2: |
2857 | .ret2: |
2588 | ret |
2858 | ret |
2589 | 2859 | ||
2590 | ;insert_last_dot: |
2860 | ;insert_last_dot: |
2591 | ; push eax esi |
2861 | ; push eax esi |
2592 | ; mov ah, 0 |
2862 | ; mov ah, 0 |
2593 | ;.loop: |
2863 | ;.loop: |
2594 | ; lodsb |
2864 | ; lodsb |
2595 | ; test al, al |
2865 | ; test al, al |
2596 | ; jz .done |
2866 | ; jz .done |
2597 | ; cmp al, '.' |
2867 | ; cmp al, '.' |
2598 | ; jnz .loop |
2868 | ; jnz .loop |
2599 | ; mov ah, 1 |
2869 | ; mov ah, 1 |
2600 | ; jmp .loop |
2870 | ; jmp .loop |
2601 | ;.done: |
2871 | ;.done: |
2602 | ; test ah, ah |
2872 | ; test ah, ah |
2603 | ; jnz @f |
2873 | ; jnz @f |
2604 | ; mov byte [esi-1], '.' |
2874 | ; mov byte [esi-1], '.' |
2605 | ; mov byte [esi], 0 |
2875 | ; mov byte [esi], 0 |
2606 | ;@@: |
2876 | ;@@: |
2607 | ; pop esi eax |
2877 | ; pop esi eax |
2608 | ; ret |
2878 | ; ret |
2609 | 2879 | ||
2610 | ;delete_last_dot: |
2880 | ;delete_last_dot: |
2611 | ; push esi |
2881 | ; push esi |
2612 | ;@@: |
2882 | ;@@: |
2613 | ; cmp byte [esi], 0 |
2883 | ; cmp byte [esi], 0 |
2614 | ; jz @f |
2884 | ; jz @f |
2615 | ; inc esi |
2885 | ; inc esi |
2616 | ; jmp @b |
2886 | ; jmp @b |
2617 | ;@@: |
2887 | ;@@: |
2618 | ; cmp byte [esi-1], '.' |
2888 | ; cmp byte [esi-1], '.' |
2619 | ; jnz @f |
2889 | ; jnz @f |
2620 | ; mov byte [esi-1], 0 |
2890 | ; mov byte [esi-1], 0 |
2621 | ;@@: pop esi |
2891 | ;@@: pop esi |
2622 | ; ret |
2892 | ; ret |
2623 | 2893 | ||
2624 | read_folder: |
2894 | read_folder: |
2625 | mov eax, [ebp + panel1_nfa - panel1_data] |
2895 | mov eax, [ebp + panel1_nfa - panel1_data] |
2626 | mov [dirinfo.size], eax |
2896 | mov [dirinfo.size], eax |
2627 | shl eax, 2 |
2897 | shl eax, 2 |
2628 | add eax, [ebp + panel1_files - panel1_data] |
2898 | add eax, [ebp + panel1_files - panel1_data] |
2629 | mov [dirinfo.dirdata], eax |
2899 | mov [dirinfo.dirdata], eax |
2630 | lea eax, [ebp + panel1_dir - panel1_data] |
2900 | lea eax, [ebp + panel1_dir - panel1_data] |
2631 | mov [dirinfo.name], eax |
2901 | mov [dirinfo.name], eax |
2632 | .retry: |
2902 | .retry: |
2633 | push 70 |
2903 | push 70 |
2634 | pop eax |
2904 | pop eax |
2635 | mov ebx, dirinfo |
2905 | mov ebx, dirinfo |
2636 | int 40h |
2906 | int 40h |
2637 | test eax, eax |
2907 | test eax, eax |
2638 | jz .ok |
2908 | jz .ok |
2639 | cmp eax, 6 |
2909 | cmp eax, 6 |
2640 | jz .ok |
2910 | jz .ok |
2641 | ; Failed to read folder, notify user |
2911 | ; Failed to read folder, notify user |
2642 | cmp [bSilentFolderMode], 0 |
2912 | cmp [bSilentFolderMode], 0 |
2643 | jnz .dont_notify |
2913 | jnz .dont_notify |
2644 | push aContinue |
2914 | push aContinue |
2645 | push aRetry |
2915 | push aRetry |
2646 | mov edx, esp |
2916 | mov edx, esp |
2647 | call get_error_msg |
2917 | call get_error_msg |
2648 | push [dirinfo.name] |
2918 | push [dirinfo.name] |
2649 | push aCannotReadFolder |
2919 | push aCannotReadFolder |
2650 | push eax |
2920 | push eax |
2651 | mov eax, esp |
2921 | mov eax, esp |
2652 | push edx |
2922 | push edx |
2653 | push 2 |
2923 | push 2 |
2654 | push eax |
2924 | push eax |
2655 | push 3 |
2925 | push 3 |
2656 | push -1 |
2926 | push -1 |
2657 | push -1 |
2927 | push -1 |
2658 | push aError |
2928 | push aError |
2659 | call SayErr |
2929 | call SayErr |
2660 | add esp, 5*4 |
2930 | add esp, 5*4 |
2661 | test eax, eax |
2931 | test eax, eax |
2662 | jz .retry |
2932 | jz .retry |
2663 | .dont_notify: |
2933 | .dont_notify: |
2664 | mov esi, prev_dir |
2934 | mov esi, prev_dir |
2665 | cmp byte [esi], 0 |
2935 | cmp byte [esi], 0 |
2666 | jz @f |
2936 | jz @f |
2667 | lea edi, [ebp + panel1_dir - panel1_data] |
2937 | lea edi, [ebp + panel1_dir - panel1_data] |
2668 | mov ecx, 1024/4 |
2938 | mov ecx, 1024/4 |
2669 | rep movsd |
2939 | rep movsd |
2670 | mov byte [prev_dir], 0 |
2940 | mov byte [prev_dir], 0 |
2671 | ret |
2941 | ret |
2672 | @@: |
2942 | @@: |
2673 | mov [bSilentFolderMode], 1 ; enter silent mode |
2943 | mov [bSilentFolderMode], 1 ; enter silent mode |
2674 | mov esi, [dirinfo.name] |
2944 | mov esi, [dirinfo.name] |
2675 | xor edx, edx |
2945 | xor edx, edx |
2676 | .up1: |
2946 | .up1: |
2677 | lodsb |
2947 | lodsb |
2678 | test al, al |
2948 | test al, al |
2679 | jz .up1done |
2949 | jz .up1done |
2680 | cmp al, '/' |
2950 | cmp al, '/' |
2681 | jnz .up1 |
2951 | jnz .up1 |
2682 | inc edx |
2952 | inc edx |
2683 | lea edi, [esi-1] |
2953 | lea edi, [esi-1] |
2684 | jmp .up1 |
2954 | jmp .up1 |
2685 | .up1done: |
2955 | .up1done: |
2686 | cmp edx, 2 |
2956 | cmp edx, 2 |
2687 | jbe .noup |
2957 | jbe .noup |
2688 | stosb |
2958 | stosb |
2689 | jmp read_folder |
2959 | jmp read_folder |
2690 | .noup: |
2960 | .noup: |
2691 | mov esi, [dirinfo.name] |
2961 | mov esi, [dirinfo.name] |
2692 | mov edi, esi |
2962 | mov edi, esi |
2693 | lodsd |
2963 | lodsd |
2694 | or eax, 0x00202000 |
2964 | or eax, 0x00202000 |
2695 | cmp eax, '/rd/' |
2965 | cmp eax, '/rd/' |
2696 | jnz @f |
2966 | jnz @f |
2697 | lodsw |
2967 | lodsw |
2698 | cmp ax, '1' |
2968 | cmp ax, '1' |
2699 | jz .nosetrd |
2969 | jz .nosetrd |
2700 | @@: |
2970 | @@: |
2701 | mov eax, '/rd/' |
2971 | mov eax, '/rd/' |
2702 | stosd |
2972 | stosd |
2703 | mov ax, '1' |
2973 | mov ax, '1' |
2704 | stosw |
2974 | stosw |
2705 | jmp read_folder |
2975 | jmp read_folder |
2706 | .nosetrd: |
2976 | .nosetrd: |
2707 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
2977 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
2708 | and dword [ebp + panel1_numfiles - panel1_data], 0 |
2978 | and dword [ebp + panel1_numfiles - panel1_data], 0 |
2709 | and dword [ebp + panel1_index - panel1_data], 0 |
2979 | and dword [ebp + panel1_index - panel1_data], 0 |
2710 | and dword [ebp + panel1_start - panel1_data], 0 |
2980 | and dword [ebp + panel1_start - panel1_data], 0 |
2711 | mov [bSilentFolderMode], 0 ; leave silent mode |
2981 | mov [bSilentFolderMode], 0 ; leave silent mode |
2712 | ret |
2982 | ret |
2713 | .ok: |
2983 | .ok: |
2714 | mov eax, [dirinfo.dirdata] |
2984 | mov eax, [dirinfo.dirdata] |
2715 | cmp [eax+8], ebx |
2985 | cmp [eax+8], ebx |
2716 | jz .readdone |
2986 | jz .readdone |
2717 | push eax |
2987 | push eax |
2718 | mov eax, [ebp + panel1_files - panel1_data] |
2988 | mov eax, [ebp + panel1_files - panel1_data] |
2719 | call mf_free |
2989 | call mf_free |
2720 | pop eax |
2990 | pop eax |
2721 | mov eax, [eax+8] |
2991 | mov eax, [eax+8] |
2722 | add eax, 0xF |
2992 | add eax, 0xF |
2723 | and eax, not 0xF |
2993 | and eax, not 0xF |
2724 | push eax |
2994 | push eax |
2725 | imul eax, 4+304 |
2995 | imul eax, 4+304 |
2726 | add eax, 32 |
2996 | add eax, 32 |
2727 | call xmalloc |
2997 | call xmalloc |
2728 | test eax, eax |
2998 | test eax, eax |
2729 | jnz .succ1 |
2999 | jnz .succ1 |
2730 | pop eax |
3000 | pop eax |
2731 | jmp .readdone |
3001 | jmp .readdone |
2732 | .succ1: |
3002 | .succ1: |
2733 | mov [ebp + panel1_files - panel1_data], eax |
3003 | mov [ebp + panel1_files - panel1_data], eax |
2734 | pop [ebp + panel1_nfa - panel1_data] |
3004 | pop [ebp + panel1_nfa - panel1_data] |
- | 3005 | mov [prev_dir], 0 |
|
2735 | jmp read_folder |
3006 | jmp read_folder |
2736 | .readdone: |
3007 | .readdone: |
2737 | and [ebp + panel1_start - panel1_data], 0 |
3008 | and [ebp + panel1_start - panel1_data], 0 |
2738 | and [ebp + panel1_index - panel1_data], 0 |
3009 | and [ebp + panel1_index - panel1_data], 0 |
2739 | and [ebp + panel1_start - panel1_data], 0 |
3010 | and [ebp + panel1_start - panel1_data], 0 |
2740 | mov edi, [ebp + panel1_files - panel1_data] |
3011 | mov edi, [ebp + panel1_files - panel1_data] |
2741 | mov eax, [ebp + panel1_nfa - panel1_data] |
3012 | mov eax, [ebp + panel1_nfa - panel1_data] |
2742 | lea esi, [edi + eax*4 + 32] |
3013 | lea eax, [edi + eax*4 + 32] |
2743 | xor eax, eax |
- | |
2744 | mov ecx, [esi-32+4] |
3014 | mov ecx, [eax-32+4] |
2745 | test ecx, ecx |
3015 | test ecx, ecx |
2746 | jz .loopdone |
3016 | jz .loopdone |
- | 3017 | xor edx, edx |
|
2747 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
3018 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
2748 | .ptrinit: |
3019 | .ptrinit: |
2749 | cmp word [esi+eax+40], '.' |
3020 | cmp word [eax+40], '.' |
2750 | jz .loopcont |
3021 | jz .loopcont |
2751 | test byte [esi+eax], 8 |
3022 | test byte [eax], 8 |
2752 | jnz .loopcont |
3023 | jnz .loopcont |
- | 3024 | test edx, edx |
|
- | 3025 | jnz .nodotdot |
|
- | 3026 | cmp word [eax+40], '..' |
|
- | 3027 | jnz .nodotdot |
|
- | 3028 | cmp byte [eax+42], 0 |
|
- | 3029 | jnz .nodotdot |
|
- | 3030 | mov edx, eax |
|
- | 3031 | push edi |
|
- | 3032 | @@: |
|
- | 3033 | cmp edi, [ebp + panel1_files - panel1_data] |
|
- | 3034 | jbe @f |
|
- | 3035 | push dword [edi-4] |
|
- | 3036 | pop dword [edi] |
|
- | 3037 | sub edi, 4 |
|
- | 3038 | jmp @b |
|
- | 3039 | @@: |
|
2753 | stosd |
3040 | stosd |
- | 3041 | pop edi |
|
- | 3042 | scasd |
|
- | 3043 | jmp .dotdot |
|
- | 3044 | .nodotdot: |
|
- | 3045 | stosd |
|
- | 3046 | .dotdot: |
|
2754 | ; ¯®¤á¢¥âª |
3047 | ; ¯®¤á¢¥âª |
2755 | ; call insert_last_dot |
3048 | ; call insert_last_dot |
2756 | pushad |
3049 | pushad |
2757 | lea ebp, [esi+eax] |
3050 | mov ebp, eax |
2758 | lea esi, [ebp+40] |
3051 | lea esi, [ebp+40] |
2759 | mov edi, lower_file_name |
3052 | mov edi, lower_file_name |
2760 | mov edx, edi |
3053 | mov edx, edi |
2761 | @@: |
3054 | @@: |
2762 | lodsb |
3055 | lodsb |
2763 | call tolower |
3056 | call tolower |
2764 | stosb |
3057 | stosb |
2765 | test al, al |
3058 | test al, al |
2766 | jnz @b |
3059 | jnz @b |
2767 | mov esi, edx |
3060 | mov esi, edx |
2768 | lea edx, [edi-1] |
3061 | lea edx, [edi-1] |
2769 | xor ecx, ecx |
3062 | xor ecx, ecx |
2770 | .highlight_test_loop: |
3063 | .highlight_test_loop: |
2771 | mov ebx, [highlight_groups+ecx*4] |
3064 | mov ebx, [highlight_groups+ecx*4] |
2772 | mov al, [ebx + highlight.IncludeAttributes] |
3065 | mov al, [ebx + highlight.IncludeAttributes] |
2773 | mov ah, [ebp] |
3066 | mov ah, [ebp] |
2774 | and ah, al |
3067 | and ah, al |
2775 | cmp ah, al |
3068 | cmp ah, al |
2776 | jnz .highlight_test_failed |
3069 | jnz .highlight_test_failed |
2777 | lea edi, [ebx + highlight.Mask] |
3070 | lea edi, [ebx + highlight.Mask] |
2778 | call match_mask_rev_lowercase |
3071 | call match_mask_rev_lowercase |
2779 | jc .highlight_test_failed |
3072 | jc .highlight_test_failed |
2780 | mov ah, [ebx + highlight.NormalColor] |
3073 | mov ah, [ebx + highlight.NormalColor] |
2781 | test ah, ah |
3074 | test ah, ah |
2782 | jnz @f |
3075 | jnz @f |
2783 | mov ah, [panel_normal_color] |
3076 | mov ah, [panel_normal_color] |
2784 | @@: |
3077 | @@: |
2785 | mov [ebp+5], ah |
3078 | mov [ebp+5], ah |
2786 | mov ah, [ebx + highlight.CursorColor] |
3079 | mov ah, [ebx + highlight.CursorColor] |
2787 | test ah, ah |
3080 | test ah, ah |
2788 | jnz @f |
3081 | jnz @f |
2789 | mov ah, [panel_cursor_color] |
3082 | mov ah, [panel_cursor_color] |
2790 | @@: |
3083 | @@: |
2791 | mov [ebp+6], ah |
3084 | mov [ebp+6], ah |
2792 | jmp .doname |
3085 | jmp .doname |
2793 | .highlight_test_failed: |
3086 | .highlight_test_failed: |
2794 | inc ecx |
3087 | inc ecx |
2795 | cmp ecx, [highlight_num_groups] |
3088 | cmp ecx, [highlight_num_groups] |
2796 | jb .highlight_test_loop |
3089 | jb .highlight_test_loop |
2797 | .nohighlight: |
3090 | .nohighlight: |
2798 | mov ah, [panel_normal_color] |
3091 | mov ah, [panel_normal_color] |
2799 | mov [ebp+5], ah |
3092 | mov [ebp+5], ah |
2800 | mov ah, [panel_cursor_color] |
3093 | mov ah, [panel_cursor_color] |
2801 | mov [ebp+6], ah |
3094 | mov [ebp+6], ah |
2802 | .doname: |
3095 | .doname: |
2803 | ; call delete_last_dot |
3096 | ; call delete_last_dot |
2804 | popad |
3097 | popad |
2805 | .loopcont: |
3098 | .loopcont: |
2806 | add eax, 304 |
3099 | add eax, 304 |
2807 | dec ecx |
3100 | dec ecx |
2808 | jnz .ptrinit |
3101 | jnz .ptrinit |
2809 | .loopdone: |
3102 | .loopdone: |
2810 | sub edi, [ebp + panel1_files - panel1_data] |
3103 | sub edi, [ebp + panel1_files - panel1_data] |
2811 | shr edi, 2 |
3104 | shr edi, 2 |
2812 | mov [ebp + panel1_numfiles - panel1_data], edi |
3105 | mov [ebp + panel1_numfiles - panel1_data], edi |
2813 | .done: |
3106 | .done: |
2814 | ; ®àâ¨à®¢ª |
3107 | ; ®àâ¨à®¢ª |
2815 | sort_files: |
3108 | sort_files: |
2816 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
3109 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
2817 | mov ebx, [compare_fns + eax*4] |
3110 | mov ebx, [compare_fns + eax*4] |
2818 | mov edx, [ebp + panel1_files - panel1_data] |
3111 | mov edx, [ebp + panel1_files - panel1_data] |
2819 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3112 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
- | 3113 | jecxz .skip |
|
- | 3114 | mov eax, [edx] |
|
- | 3115 | cmp word [eax], '..' |
|
- | 3116 | jnz .nodotdot |
|
- | 3117 | cmp byte [eax+2], 0 |
|
- | 3118 | jnz .nodotdot |
|
- | 3119 | dec ecx |
|
- | 3120 | add edx, 4 |
|
- | 3121 | .nodotdot: |
|
2820 | call sort |
3122 | call sort |
- | 3123 | .skip: |
|
2821 | mov [bSilentFolderMode], 0 ; leave silent mode |
3124 | mov [bSilentFolderMode], 0 ; leave silent mode |
2822 | ret |
3125 | ret |
2823 | 3126 | ||
2824 | compare_name: |
3127 | compare_name: |
2825 | push eax |
- | |
2826 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
2827 | add esi, [ebp + panel1_files - panel1_data] |
- | |
2828 | add edi, [ebp + panel1_files - panel1_data] |
- | |
2829 | lea esi, [esi+eax*4+0x20] |
- | |
2830 | lea edi, [edi+eax*4+0x20] |
- | |
2831 | pop eax |
- | |
2832 | cmp word [esi+40], '..' |
- | |
2833 | jnz @f |
- | |
2834 | cmp byte [esi+42], 0 |
- | |
2835 | jz .less |
- | |
2836 | @@: cmp word [edi+40], '..' |
- | |
2837 | jnz @f |
- | |
2838 | cmp byte [edi+42], 0 |
- | |
2839 | jz .greater |
- | |
2840 | @@: |
- | |
2841 | test byte [esi], 10h |
3128 | test byte [esi], 10h |
2842 | jnz .1dir |
3129 | jnz .1dir |
2843 | test byte [edi], 10h |
3130 | test byte [edi], 10h |
2844 | jnz .greater |
3131 | jnz .greater |
2845 | .eq1: |
3132 | .eq1: |
2846 | add esi, 40 |
3133 | add esi, 40 |
2847 | add edi, 40 |
3134 | add edi, 40 |
2848 | jmp strcmpi |
3135 | jmp strcmpi |
2849 | .greater: |
3136 | .greater: |
2850 | test esi, esi |
3137 | test esi, esi |
2851 | ret |
3138 | ret |
2852 | .1dir: |
3139 | .1dir: |
2853 | test byte [edi], 10h |
3140 | test byte [edi], 10h |
2854 | jnz .eq1 |
3141 | jnz .eq1 |
2855 | .less: |
3142 | .less: |
2856 | xor edi, edi |
3143 | xor edi, edi |
2857 | stc |
3144 | stc |
2858 | ret |
3145 | ret |
2859 | 3146 | ||
2860 | compare_name_rev: |
3147 | compare_name_rev: |
2861 | push eax |
- | |
2862 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
2863 | add esi, [ebp + panel1_files - panel1_data] |
- | |
2864 | add edi, [ebp + panel1_files - panel1_data] |
- | |
2865 | lea esi, [esi+eax*4+0x20] |
- | |
2866 | lea edi, [edi+eax*4+0x20] |
- | |
2867 | pop eax |
- | |
2868 | cmp word [esi+40], '..' |
- | |
2869 | jnz @f |
- | |
2870 | cmp byte [esi+42], 0 |
- | |
2871 | jz .less |
- | |
2872 | @@: cmp word [edi+40], '..' |
- | |
2873 | jnz @f |
- | |
2874 | cmp byte [edi+42], 0 |
- | |
2875 | jz .greater |
- | |
2876 | @@: |
- | |
2877 | test byte [esi], 10h |
3148 | test byte [esi], 10h |
2878 | jnz .1dir |
3149 | jnz .1dir |
2879 | test byte [edi], 10h |
3150 | test byte [edi], 10h |
2880 | jnz .greater |
3151 | jnz .greater |
2881 | .eq1: |
3152 | .eq1: |
2882 | add esi, 40 |
3153 | add esi, 40 |
2883 | add edi, 40 |
3154 | add edi, 40 |
2884 | xchg esi, edi |
3155 | xchg esi, edi |
2885 | jmp strcmpi |
3156 | jmp strcmpi |
2886 | .greater: |
3157 | .greater: |
2887 | test esi, esi |
3158 | test esi, esi |
2888 | ret |
3159 | ret |
2889 | .1dir: |
3160 | .1dir: |
2890 | test byte [edi], 10h |
3161 | test byte [edi], 10h |
2891 | jnz .eq1 |
3162 | jnz .eq1 |
2892 | .less: |
3163 | .less: |
2893 | xor edi, edi |
3164 | xor edi, edi |
2894 | stc |
3165 | stc |
2895 | ret |
3166 | ret |
2896 | 3167 | ||
2897 | strcmpi: |
3168 | strcmpi: |
2898 | push eax |
3169 | push eax |
2899 | @@: |
3170 | @@: |
2900 | lodsb |
3171 | lodsb |
2901 | call match_symbol |
3172 | call match_symbol |
2902 | jnz .ret |
3173 | jnz .ret |
2903 | inc edi |
3174 | inc edi |
2904 | test al, al |
3175 | test al, al |
2905 | jnz @b |
3176 | jnz @b |
2906 | .ret: |
3177 | .ret: |
2907 | pop eax |
3178 | pop eax |
2908 | ret |
3179 | ret |
2909 | 3180 | ||
2910 | compare_ext: |
3181 | compare_ext: |
2911 | push eax |
- | |
2912 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
2913 | add esi, [ebp + panel1_files - panel1_data] |
- | |
2914 | add edi, [ebp + panel1_files - panel1_data] |
- | |
2915 | lea esi, [esi+eax*4+0x20] |
- | |
2916 | lea edi, [edi+eax*4+0x20] |
- | |
2917 | pop eax |
- | |
2918 | cmp word [esi+40], '..' |
- | |
2919 | jnz @f |
- | |
2920 | cmp byte [esi+42], 0 |
- | |
2921 | jz .less |
- | |
2922 | @@: cmp word [edi+40], '..' |
- | |
2923 | jnz @f |
- | |
2924 | cmp byte [edi+42], 0 |
- | |
2925 | jz .greater |
- | |
2926 | @@: |
- | |
2927 | test byte [esi], 10h |
3182 | test byte [esi], 10h |
2928 | jnz .1dir |
3183 | jnz .1dir |
2929 | test byte [edi], 10h |
3184 | test byte [edi], 10h |
2930 | jnz .greater |
3185 | jnz .greater |
2931 | .eq1: |
3186 | .eq1: |
2932 | add esi, 40 |
3187 | add esi, 40 |
2933 | add edi, 40 |
3188 | add edi, 40 |
2934 | push esi edi |
3189 | push esi edi |
2935 | call seek_ext |
3190 | call seek_ext |
2936 | xchg esi, edi |
3191 | xchg esi, edi |
2937 | call seek_ext |
3192 | call seek_ext |
2938 | xchg esi, edi |
3193 | xchg esi, edi |
2939 | call strcmpi |
3194 | call strcmpi |
2940 | jnz .ret |
3195 | jnz .ret |
2941 | pop edi esi |
3196 | pop edi esi |
2942 | jmp strcmpi |
3197 | jmp strcmpi |
2943 | .ret: |
3198 | .ret: |
2944 | pop edi esi |
3199 | pop edi esi |
2945 | ret |
3200 | ret |
2946 | .greater: |
3201 | .greater: |
2947 | test esi, esi |
3202 | test esi, esi |
2948 | ret |
3203 | ret |
2949 | .1dir: |
3204 | .1dir: |
2950 | test byte [edi], 10h |
3205 | test byte [edi], 10h |
2951 | jnz .eq1 |
3206 | jnz .eq1 |
2952 | .less: |
3207 | .less: |
2953 | xor edi, edi |
3208 | xor edi, edi |
2954 | stc |
3209 | stc |
2955 | ret |
3210 | ret |
2956 | 3211 | ||
2957 | compare_ext_rev: |
3212 | compare_ext_rev: |
2958 | push eax |
- | |
2959 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
2960 | add esi, [ebp + panel1_files - panel1_data] |
- | |
2961 | add edi, [ebp + panel1_files - panel1_data] |
- | |
2962 | lea esi, [esi+eax*4+0x20] |
- | |
2963 | lea edi, [edi+eax*4+0x20] |
- | |
2964 | pop eax |
- | |
2965 | cmp word [esi+40], '..' |
- | |
2966 | jnz @f |
- | |
2967 | cmp byte [esi+42], 0 |
- | |
2968 | jz .less |
- | |
2969 | @@: cmp word [edi+40], '..' |
- | |
2970 | jnz @f |
- | |
2971 | cmp byte [edi+42], 0 |
- | |
2972 | jz .greater |
- | |
2973 | @@: |
- | |
2974 | test byte [esi], 10h |
3213 | test byte [esi], 10h |
2975 | jnz .1dir |
3214 | jnz .1dir |
2976 | test byte [edi], 10h |
3215 | test byte [edi], 10h |
2977 | jnz .greater |
3216 | jnz .greater |
2978 | .eq1: |
3217 | .eq1: |
2979 | add esi, 40 |
3218 | add esi, 40 |
2980 | add edi, 40 |
3219 | add edi, 40 |
2981 | push esi edi |
3220 | push esi edi |
2982 | call seek_ext |
3221 | call seek_ext |
2983 | xchg esi, edi |
3222 | xchg esi, edi |
2984 | call seek_ext |
3223 | call seek_ext |
2985 | call strcmpi |
3224 | call strcmpi |
2986 | jnz .ret |
3225 | jnz .ret |
2987 | pop edi esi |
3226 | pop edi esi |
2988 | xchg esi, edi |
3227 | xchg esi, edi |
2989 | jmp strcmpi |
3228 | jmp strcmpi |
2990 | .ret: |
3229 | .ret: |
2991 | pop edi esi |
3230 | pop edi esi |
2992 | ret |
3231 | ret |
2993 | .greater: |
3232 | .greater: |
2994 | test esi, esi |
3233 | test esi, esi |
2995 | ret |
3234 | ret |
2996 | .1dir: |
3235 | .1dir: |
2997 | test byte [edi], 10h |
3236 | test byte [edi], 10h |
2998 | jnz .eq1 |
3237 | jnz .eq1 |
2999 | .less: |
3238 | .less: |
3000 | xor edi, edi |
3239 | xor edi, edi |
3001 | stc |
3240 | stc |
3002 | ret |
3241 | ret |
3003 | 3242 | ||
3004 | seek_ext: |
3243 | seek_ext: |
3005 | push eax |
3244 | push eax |
3006 | xor eax, eax |
3245 | xor eax, eax |
3007 | .l: |
3246 | .l: |
3008 | inc esi |
3247 | inc esi |
3009 | cmp byte [esi-1], '.' |
3248 | cmp byte [esi-1], '.' |
3010 | jnz @f |
3249 | jnz @f |
3011 | mov eax, esi |
3250 | mov eax, esi |
3012 | @@: |
3251 | @@: |
3013 | cmp byte [esi-1], 0 |
3252 | cmp byte [esi-1], 0 |
3014 | jnz .l |
3253 | jnz .l |
3015 | test eax, eax |
3254 | test eax, eax |
3016 | jnz @f |
3255 | jnz @f |
3017 | lea eax, [esi-1] |
3256 | lea eax, [esi-1] |
3018 | @@: |
3257 | @@: |
3019 | mov esi, eax |
3258 | mov esi, eax |
3020 | pop eax |
3259 | pop eax |
3021 | ret |
3260 | ret |
3022 | 3261 | ||
3023 | compare_modified: |
3262 | compare_modified: |
3024 | push eax |
- | |
3025 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3026 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3027 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3028 | lea esi, [esi+eax*4+0x20] |
- | |
3029 | lea edi, [edi+eax*4+0x20] |
- | |
3030 | pop eax |
- | |
3031 | cmp word [esi+40], '..' |
- | |
3032 | jnz @f |
- | |
3033 | cmp byte [esi+42], 0 |
- | |
3034 | jz .less |
- | |
3035 | @@: cmp word [edi+40], '..' |
- | |
3036 | jnz @f |
- | |
3037 | cmp byte [edi+42], 0 |
- | |
3038 | jz .greater |
- | |
3039 | @@: |
- | |
3040 | test byte [esi], 10h |
3263 | test byte [esi], 10h |
3041 | jnz .1dir |
3264 | jnz .1dir |
3042 | test byte [edi], 10h |
3265 | test byte [edi], 10h |
3043 | jnz .greater |
3266 | jnz .greater |
3044 | .eq1: |
3267 | .eq1: |
3045 | push edi |
3268 | push edi |
3046 | mov edi, [edi+28] |
3269 | mov edi, [edi+28] |
3047 | cmp edi, [esi+28] |
3270 | cmp edi, [esi+28] |
3048 | pop edi |
3271 | pop edi |
3049 | jnz @f |
3272 | jnz @f |
3050 | push edi |
3273 | push edi |
3051 | mov edi, [edi+24] |
3274 | mov edi, [edi+24] |
3052 | cmp edi, [esi+24] |
3275 | cmp edi, [esi+24] |
3053 | pop edi |
3276 | pop edi |
3054 | jnz @f |
3277 | jnz @f |
3055 | add esi, 40 |
3278 | add esi, 40 |
3056 | add edi, 40 |
3279 | add edi, 40 |
3057 | jmp strcmpi |
3280 | jmp strcmpi |
3058 | @@: |
3281 | @@: |
3059 | ret |
3282 | ret |
3060 | .greater: |
3283 | .greater: |
3061 | test esi, esi |
3284 | test esi, esi |
3062 | ret |
3285 | ret |
3063 | .1dir: |
3286 | .1dir: |
3064 | test byte [edi], 10h |
3287 | test byte [edi], 10h |
3065 | jnz .eq1 |
3288 | jnz .eq1 |
3066 | .less: |
3289 | .less: |
3067 | xor edi, edi |
3290 | xor edi, edi |
3068 | stc |
3291 | stc |
3069 | ret |
3292 | ret |
3070 | 3293 | ||
3071 | compare_modified_rev: |
3294 | compare_modified_rev: |
3072 | push eax |
- | |
3073 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3074 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3075 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3076 | lea esi, [esi+eax*4+0x20] |
- | |
3077 | lea edi, [edi+eax*4+0x20] |
- | |
3078 | pop eax |
- | |
3079 | cmp word [esi+40], '..' |
- | |
3080 | jnz @f |
- | |
3081 | cmp byte [esi+42], 0 |
- | |
3082 | jz .less |
- | |
3083 | @@: cmp word [edi+40], '..' |
- | |
3084 | jnz @f |
- | |
3085 | cmp byte [edi+42], 0 |
- | |
3086 | jz .greater |
- | |
3087 | @@: |
- | |
3088 | test byte [esi], 10h |
3295 | test byte [esi], 10h |
3089 | jnz .1dir |
3296 | jnz .1dir |
3090 | test byte [edi], 10h |
3297 | test byte [edi], 10h |
3091 | jnz .greater |
3298 | jnz .greater |
3092 | .eq1: |
3299 | .eq1: |
3093 | push esi |
3300 | push esi |
3094 | mov esi, [esi+28] |
3301 | mov esi, [esi+28] |
3095 | cmp esi, [edi+28] |
3302 | cmp esi, [edi+28] |
3096 | pop esi |
3303 | pop esi |
3097 | jnz @f |
3304 | jnz @f |
3098 | push esi |
3305 | push esi |
3099 | mov esi, [esi+24] |
3306 | mov esi, [esi+24] |
3100 | cmp esi, [edi+24] |
3307 | cmp esi, [edi+24] |
3101 | pop esi |
3308 | pop esi |
3102 | jnz @f |
3309 | jnz @f |
3103 | add esi, 40 |
3310 | add esi, 40 |
3104 | add edi, 40 |
3311 | add edi, 40 |
3105 | xchg esi, edi |
3312 | xchg esi, edi |
3106 | jmp strcmpi |
3313 | jmp strcmpi |
3107 | @@: |
3314 | @@: |
3108 | ret |
3315 | ret |
3109 | .greater: |
3316 | .greater: |
3110 | test esi, esi |
3317 | test esi, esi |
3111 | ret |
3318 | ret |
3112 | .1dir: |
3319 | .1dir: |
3113 | test byte [edi], 10h |
3320 | test byte [edi], 10h |
3114 | jnz .eq1 |
3321 | jnz .eq1 |
3115 | .less: |
3322 | .less: |
3116 | xor edi, edi |
3323 | xor edi, edi |
3117 | stc |
3324 | stc |
3118 | ret |
3325 | ret |
3119 | 3326 | ||
3120 | compare_size: |
3327 | compare_size: |
3121 | push eax |
- | |
3122 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3123 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3124 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3125 | lea esi, [esi+eax*4+0x20] |
- | |
3126 | lea edi, [edi+eax*4+0x20] |
- | |
3127 | pop eax |
- | |
3128 | cmp word [esi+40], '..' |
- | |
3129 | jnz @f |
- | |
3130 | cmp byte [esi+42], 0 |
- | |
3131 | jz .less |
- | |
3132 | @@: cmp word [edi+40], '..' |
- | |
3133 | jnz @f |
- | |
3134 | cmp byte [edi+42], 0 |
- | |
3135 | jz .greater |
- | |
3136 | @@: |
- | |
3137 | test byte [esi], 10h |
3328 | test byte [esi], 10h |
3138 | jnz .1dir |
3329 | jnz .1dir |
3139 | test byte [edi], 10h |
3330 | test byte [edi], 10h |
3140 | jnz .greater |
3331 | jnz .greater |
3141 | .eq1: |
3332 | .eq1: |
3142 | push edi |
3333 | push edi |
3143 | mov edi, [edi+36] |
3334 | mov edi, [edi+36] |
3144 | cmp edi, [esi+36] |
3335 | cmp edi, [esi+36] |
3145 | pop edi |
3336 | pop edi |
3146 | jnz @f |
3337 | jnz @f |
3147 | push edi |
3338 | push edi |
3148 | mov edi, [edi+32] |
3339 | mov edi, [edi+32] |
3149 | cmp edi, [esi+32] |
3340 | cmp edi, [esi+32] |
3150 | pop edi |
3341 | pop edi |
3151 | jnz @f |
3342 | jnz @f |
3152 | add esi, 40 |
3343 | add esi, 40 |
3153 | add edi, 40 |
3344 | add edi, 40 |
3154 | jmp strcmpi |
3345 | jmp strcmpi |
3155 | @@: |
3346 | @@: |
3156 | ret |
3347 | ret |
3157 | .greater: |
3348 | .greater: |
3158 | test esi, esi |
3349 | test esi, esi |
3159 | ret |
3350 | ret |
3160 | .1dir: |
3351 | .1dir: |
3161 | test byte [edi], 10h |
3352 | test byte [edi], 10h |
3162 | jnz .eq1 |
3353 | jnz .eq1 |
3163 | .less: |
3354 | .less: |
3164 | xor edi, edi |
3355 | xor edi, edi |
3165 | stc |
3356 | stc |
3166 | ret |
3357 | ret |
3167 | 3358 | ||
3168 | compare_size_rev: |
3359 | compare_size_rev: |
3169 | push eax |
- | |
3170 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3171 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3172 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3173 | lea esi, [esi+eax*4+0x20] |
- | |
3174 | lea edi, [edi+eax*4+0x20] |
- | |
3175 | pop eax |
- | |
3176 | cmp word [esi+40], '..' |
- | |
3177 | jnz @f |
- | |
3178 | cmp byte [esi+42], 0 |
- | |
3179 | jz .less |
- | |
3180 | @@: cmp word [edi+40], '..' |
- | |
3181 | jnz @f |
- | |
3182 | cmp byte [edi+42], 0 |
- | |
3183 | jz .greater |
- | |
3184 | @@: |
- | |
3185 | test byte [esi], 10h |
3360 | test byte [esi], 10h |
3186 | jnz .1dir |
3361 | jnz .1dir |
3187 | test byte [edi], 10h |
3362 | test byte [edi], 10h |
3188 | jnz .greater |
3363 | jnz .greater |
3189 | .eq1: |
3364 | .eq1: |
3190 | push esi |
3365 | push esi |
3191 | mov esi, [esi+36] |
3366 | mov esi, [esi+36] |
3192 | cmp esi, [edi+36] |
3367 | cmp esi, [edi+36] |
3193 | pop esi |
3368 | pop esi |
3194 | jnz @f |
3369 | jnz @f |
3195 | push esi |
3370 | push esi |
3196 | mov esi, [esi+32] |
3371 | mov esi, [esi+32] |
3197 | cmp esi, [edi+32] |
3372 | cmp esi, [edi+32] |
3198 | pop esi |
3373 | pop esi |
3199 | jnz @f |
3374 | jnz @f |
3200 | add esi, 40 |
3375 | add esi, 40 |
3201 | add edi, 40 |
3376 | add edi, 40 |
3202 | xchg esi, edi |
3377 | xchg esi, edi |
3203 | jmp strcmpi |
3378 | jmp strcmpi |
3204 | @@: |
3379 | @@: |
3205 | ret |
3380 | ret |
3206 | .greater: |
3381 | .greater: |
3207 | test esi, esi |
3382 | test esi, esi |
3208 | ret |
3383 | ret |
3209 | .1dir: |
3384 | .1dir: |
3210 | test byte [edi], 10h |
3385 | test byte [edi], 10h |
3211 | jnz .eq1 |
3386 | jnz .eq1 |
3212 | .less: |
3387 | .less: |
3213 | xor edi, edi |
3388 | xor edi, edi |
3214 | stc |
3389 | stc |
3215 | ret |
3390 | ret |
3216 | 3391 | ||
3217 | compare_unordered: |
3392 | compare_unordered: |
3218 | cmp esi, edi |
3393 | cmp esi, edi |
3219 | ret |
3394 | ret |
3220 | compare_unordered_rev: |
3395 | compare_unordered_rev: |
3221 | push eax |
- | |
3222 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3223 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3224 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3225 | lea esi, [esi+eax*4+0x20] |
- | |
3226 | lea edi, [edi+eax*4+0x20] |
- | |
3227 | pop eax |
- | |
3228 | cmp word [esi+40], '..' |
- | |
3229 | jnz @f |
- | |
3230 | cmp byte [esi+42], 0 |
- | |
3231 | jz .less |
- | |
3232 | @@: cmp word [edi+40], '..' |
- | |
3233 | jnz @f |
- | |
3234 | cmp byte [edi+42], 0 |
- | |
3235 | jz .greater |
- | |
3236 | @@: |
- | |
3237 | cmp edi, esi |
3396 | cmp edi, esi |
3238 | ret |
3397 | ret |
3239 | .greater: |
- | |
3240 | test esi, esi |
- | |
3241 | ret |
- | |
3242 | .less: |
- | |
3243 | xor edi, edi |
- | |
3244 | stc |
- | |
3245 | ret |
- | |
3246 | 3398 | ||
3247 | compare_created: |
- | |
3248 | push eax |
- | |
3249 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3250 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3251 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3252 | lea esi, [esi+eax*4+0x20] |
- | |
3253 | lea edi, [edi+eax*4+0x20] |
- | |
3254 | pop eax |
- | |
3255 | cmp word [esi+40], '..' |
- | |
3256 | jnz @f |
- | |
3257 | cmp byte [esi+42], 0 |
- | |
3258 | jz .less |
- | |
3259 | @@: cmp word [edi+40], '..' |
- | |
3260 | jnz @f |
- | |
3261 | cmp byte [edi+42], 0 |
- | |
3262 | jz .greater |
- | |
3263 | @@: |
3399 | compare_created: |
3264 | test byte [esi], 10h |
3400 | test byte [esi], 10h |
3265 | jnz .1dir |
3401 | jnz .1dir |
3266 | test byte [edi], 10h |
3402 | test byte [edi], 10h |
3267 | jnz .greater |
3403 | jnz .greater |
3268 | .eq1: |
3404 | .eq1: |
3269 | push edi |
3405 | push edi |
3270 | mov edi, [edi+12] |
3406 | mov edi, [edi+12] |
3271 | cmp edi, [esi+12] |
3407 | cmp edi, [esi+12] |
3272 | pop edi |
3408 | pop edi |
3273 | jnz @f |
3409 | jnz @f |
3274 | push edi |
3410 | push edi |
3275 | mov edi, [edi+8] |
3411 | mov edi, [edi+8] |
3276 | cmp edi, [esi+8] |
3412 | cmp edi, [esi+8] |
3277 | pop edi |
3413 | pop edi |
3278 | jnz @f |
3414 | jnz @f |
3279 | add esi, 40 |
3415 | add esi, 40 |
3280 | add edi, 40 |
3416 | add edi, 40 |
3281 | jmp strcmpi |
3417 | jmp strcmpi |
3282 | @@: |
3418 | @@: |
3283 | ret |
3419 | ret |
3284 | .greater: |
3420 | .greater: |
3285 | test esi, esi |
3421 | test esi, esi |
3286 | ret |
3422 | ret |
3287 | .1dir: |
3423 | .1dir: |
3288 | test byte [edi], 10h |
3424 | test byte [edi], 10h |
3289 | jnz .eq1 |
3425 | jnz .eq1 |
3290 | .less: |
3426 | .less: |
3291 | xor edi, edi |
3427 | xor edi, edi |
3292 | stc |
3428 | stc |
3293 | ret |
3429 | ret |
3294 | 3430 | ||
3295 | compare_created_rev: |
3431 | compare_created_rev: |
3296 | push eax |
- | |
3297 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3298 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3299 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3300 | lea esi, [esi+eax*4+0x20] |
- | |
3301 | lea edi, [edi+eax*4+0x20] |
- | |
3302 | pop eax |
- | |
3303 | cmp word [esi+40], '..' |
- | |
3304 | jnz @f |
- | |
3305 | cmp byte [esi+42], 0 |
- | |
3306 | jz .less |
- | |
3307 | @@: cmp word [edi+40], '..' |
- | |
3308 | jnz @f |
- | |
3309 | cmp byte [edi+42], 0 |
- | |
3310 | jz .greater |
- | |
3311 | @@: |
- | |
3312 | test byte [esi], 10h |
3432 | test byte [esi], 10h |
3313 | jnz .1dir |
3433 | jnz .1dir |
3314 | test byte [edi], 10h |
3434 | test byte [edi], 10h |
3315 | jnz .greater |
3435 | jnz .greater |
3316 | .eq1: |
3436 | .eq1: |
3317 | push esi |
3437 | push esi |
3318 | mov esi, [esi+12] |
3438 | mov esi, [esi+12] |
3319 | cmp esi, [edi+12] |
3439 | cmp esi, [edi+12] |
3320 | pop esi |
3440 | pop esi |
3321 | jnz @f |
3441 | jnz @f |
3322 | push esi |
3442 | push esi |
3323 | mov esi, [esi+8] |
3443 | mov esi, [esi+8] |
3324 | cmp esi, [edi+8] |
3444 | cmp esi, [edi+8] |
3325 | pop esi |
3445 | pop esi |
3326 | jnz @f |
3446 | jnz @f |
3327 | add esi, 40 |
3447 | add esi, 40 |
3328 | add edi, 40 |
3448 | add edi, 40 |
3329 | xchg esi, edi |
3449 | xchg esi, edi |
3330 | jmp strcmpi |
3450 | jmp strcmpi |
3331 | @@: |
3451 | @@: |
3332 | ret |
3452 | ret |
3333 | .greater: |
3453 | .greater: |
3334 | test esi, esi |
3454 | test esi, esi |
3335 | ret |
3455 | ret |
3336 | .1dir: |
3456 | .1dir: |
3337 | test byte [edi], 10h |
3457 | test byte [edi], 10h |
3338 | jnz .eq1 |
3458 | jnz .eq1 |
3339 | .less: |
3459 | .less: |
3340 | xor edi, edi |
3460 | xor edi, edi |
3341 | stc |
3461 | stc |
3342 | ret |
3462 | ret |
3343 | 3463 | ||
3344 | compare_accessed: |
3464 | compare_accessed: |
3345 | push eax |
- | |
3346 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3347 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3348 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3349 | lea esi, [esi+eax*4+0x20] |
- | |
3350 | lea edi, [edi+eax*4+0x20] |
- | |
3351 | pop eax |
- | |
3352 | cmp word [esi+40], '..' |
- | |
3353 | jnz @f |
- | |
3354 | cmp byte [esi+42], 0 |
- | |
3355 | jz .less |
- | |
3356 | @@: cmp word [edi+40], '..' |
- | |
3357 | jnz @f |
- | |
3358 | cmp byte [edi+42], 0 |
- | |
3359 | jz .greater |
- | |
3360 | @@: |
- | |
3361 | test byte [esi], 10h |
3465 | test byte [esi], 10h |
3362 | jnz .1dir |
3466 | jnz .1dir |
3363 | test byte [edi], 10h |
3467 | test byte [edi], 10h |
3364 | jnz .greater |
3468 | jnz .greater |
3365 | .eq1: |
3469 | .eq1: |
3366 | push edi |
3470 | push edi |
3367 | mov edi, [edi+20] |
3471 | mov edi, [edi+20] |
3368 | cmp edi, [esi+20] |
3472 | cmp edi, [esi+20] |
3369 | pop edi |
3473 | pop edi |
3370 | jnz @f |
3474 | jnz @f |
3371 | push edi |
3475 | push edi |
3372 | mov edi, [edi+16] |
3476 | mov edi, [edi+16] |
3373 | cmp edi, [esi+16] |
3477 | cmp edi, [esi+16] |
3374 | pop edi |
3478 | pop edi |
3375 | jnz @f |
3479 | jnz @f |
3376 | add esi, 40 |
3480 | add esi, 40 |
3377 | add edi, 40 |
3481 | add edi, 40 |
3378 | jmp strcmpi |
3482 | jmp strcmpi |
3379 | @@: |
3483 | @@: |
3380 | ret |
3484 | ret |
3381 | .greater: |
3485 | .greater: |
3382 | test esi, esi |
3486 | test esi, esi |
3383 | ret |
3487 | ret |
3384 | .1dir: |
3488 | .1dir: |
3385 | test byte [edi], 10h |
3489 | test byte [edi], 10h |
3386 | jnz .eq1 |
3490 | jnz .eq1 |
3387 | .less: |
3491 | .less: |
3388 | xor edi, edi |
3492 | xor edi, edi |
3389 | stc |
3493 | stc |
3390 | ret |
3494 | ret |
3391 | 3495 | ||
3392 | compare_accessed_rev: |
3496 | compare_accessed_rev: |
3393 | push eax |
- | |
3394 | mov eax, [ebp + panel1_nfa - panel1_data] |
- | |
3395 | add esi, [ebp + panel1_files - panel1_data] |
- | |
3396 | add edi, [ebp + panel1_files - panel1_data] |
- | |
3397 | lea esi, [esi+eax*4+0x20] |
- | |
3398 | lea edi, [edi+eax*4+0x20] |
- | |
3399 | pop eax |
- | |
3400 | cmp word [esi+40], '..' |
- | |
3401 | jnz @f |
- | |
3402 | cmp byte [esi+42], 0 |
- | |
3403 | jz .less |
- | |
3404 | @@: cmp word [edi+40], '..' |
- | |
3405 | jnz @f |
- | |
3406 | cmp byte [edi+42], 0 |
- | |
3407 | jz .greater |
- | |
3408 | @@: |
- | |
3409 | test byte [esi], 10h |
3497 | test byte [esi], 10h |
3410 | jnz .1dir |
3498 | jnz .1dir |
3411 | test byte [edi], 10h |
3499 | test byte [edi], 10h |
3412 | jnz .greater |
3500 | jnz .greater |
3413 | .eq1: |
3501 | .eq1: |
3414 | push esi |
3502 | push esi |
3415 | mov esi, [esi+20] |
3503 | mov esi, [esi+20] |
3416 | cmp esi, [edi+20] |
3504 | cmp esi, [edi+20] |
3417 | pop esi |
3505 | pop esi |
3418 | jnz @f |
3506 | jnz @f |
3419 | push esi |
3507 | push esi |
3420 | mov esi, [esi+16] |
3508 | mov esi, [esi+16] |
3421 | cmp esi, [edi+16] |
3509 | cmp esi, [edi+16] |
3422 | pop esi |
3510 | pop esi |
3423 | jnz @f |
3511 | jnz @f |
3424 | add esi, 40 |
3512 | add esi, 40 |
3425 | add edi, 40 |
3513 | add edi, 40 |
3426 | xchg esi, edi |
3514 | xchg esi, edi |
3427 | jmp strcmpi |
3515 | jmp strcmpi |
3428 | @@: |
3516 | @@: |
3429 | ret |
3517 | ret |
3430 | .greater: |
3518 | .greater: |
3431 | test esi, esi |
3519 | test esi, esi |
3432 | ret |
3520 | ret |
3433 | .1dir: |
3521 | .1dir: |
3434 | test byte [edi], 10h |
3522 | test byte [edi], 10h |
3435 | jnz .eq1 |
3523 | jnz .eq1 |
3436 | .less: |
3524 | .less: |
3437 | xor edi, edi |
3525 | xor edi, edi |
3438 | stc |
3526 | stc |
3439 | ret |
3527 | ret |
3440 | 3528 | ||
3441 | if 0 |
3529 | if 0 |
3442 | match_mask: |
3530 | match_mask: |
3443 | ; in: esi->name, edi->mask |
3531 | ; in: esi->name, edi->mask |
3444 | ; out: CF clear <=> match |
3532 | ; out: CF clear <=> match |
3445 | pusha |
3533 | pusha |
3446 | xchg esi, edi |
3534 | xchg esi, edi |
3447 | .main_cycle: |
3535 | .main_cycle: |
3448 | push esi |
3536 | push esi |
3449 | @@: |
3537 | @@: |
3450 | lodsb |
3538 | lodsb |
3451 | test al, al |
3539 | test al, al |
3452 | jz @f |
3540 | jz @f |
3453 | cmp al, ',' |
3541 | cmp al, ',' |
3454 | jz @f |
3542 | jz @f |
3455 | cmp al, '|' |
3543 | cmp al, '|' |
3456 | jnz @b |
3544 | jnz @b |
3457 | @@: |
3545 | @@: |
3458 | mov [esi-1], byte 0 |
3546 | mov [esi-1], byte 0 |
3459 | xchg esi, [esp] |
3547 | xchg esi, [esp] |
3460 | call match_single_mask |
3548 | call match_single_mask |
3461 | pop esi |
3549 | pop esi |
3462 | mov [esi-1], al |
3550 | mov [esi-1], al |
3463 | jnc .found |
3551 | jnc .found |
3464 | cmp al, ',' |
3552 | cmp al, ',' |
3465 | jz .main_cycle |
3553 | jz .main_cycle |
3466 | .done_fail: |
3554 | .done_fail: |
3467 | stc |
3555 | stc |
3468 | popa |
3556 | popa |
3469 | ret |
3557 | ret |
3470 | .found: |
3558 | .found: |
3471 | test al, al |
3559 | test al, al |
3472 | jz .done_succ |
3560 | jz .done_succ |
3473 | cmp al, '|' |
3561 | cmp al, '|' |
3474 | jz .test_exclude |
3562 | jz .test_exclude |
3475 | lodsb |
3563 | lodsb |
3476 | jmp .found |
3564 | jmp .found |
3477 | .done_succ: |
3565 | .done_succ: |
3478 | clc |
3566 | clc |
3479 | popa |
3567 | popa |
3480 | ret |
3568 | ret |
3481 | .test_exclude: |
3569 | .test_exclude: |
3482 | push esi |
3570 | push esi |
3483 | @@: |
3571 | @@: |
3484 | lodsb |
3572 | lodsb |
3485 | test al, al |
3573 | test al, al |
3486 | jz @f |
3574 | jz @f |
3487 | cmp al, ',' |
3575 | cmp al, ',' |
3488 | jnz @b |
3576 | jnz @b |
3489 | @@: |
3577 | @@: |
3490 | mov byte [esi-1], 0 |
3578 | mov byte [esi-1], 0 |
3491 | xchg esi, [esp] |
3579 | xchg esi, [esp] |
3492 | call match_single_mask |
3580 | call match_single_mask |
3493 | pop esi |
3581 | pop esi |
3494 | mov [esi-1], al |
3582 | mov [esi-1], al |
3495 | jnc .done_fail |
3583 | jnc .done_fail |
3496 | test al, al |
3584 | test al, al |
3497 | jz .done_succ |
3585 | jz .done_succ |
3498 | jmp .test_exclude |
3586 | jmp .test_exclude |
3499 | 3587 | ||
3500 | match_single_mask: |
3588 | match_single_mask: |
3501 | ; in: esi->mask, edi->name |
3589 | ; in: esi->mask, edi->name |
3502 | ; out: CF clear <=> match |
3590 | ; out: CF clear <=> match |
3503 | pusha |
3591 | pusha |
3504 | .mask_symbol: |
3592 | .mask_symbol: |
3505 | lodsb |
3593 | lodsb |
3506 | test al, al |
3594 | test al, al |
3507 | jz .mask_done |
3595 | jz .mask_done |
3508 | cmp al, '*' |
3596 | cmp al, '*' |
3509 | jz .asterisk |
3597 | jz .asterisk |
3510 | cmp al, '?' |
3598 | cmp al, '?' |
3511 | jz .quest |
3599 | jz .quest |
3512 | cmp al, '[' |
3600 | cmp al, '[' |
3513 | jz .list |
3601 | jz .list |
3514 | call match_symbol |
3602 | call match_symbol |
3515 | jnz .done_fail |
3603 | jnz .done_fail |
3516 | inc edi |
3604 | inc edi |
3517 | jmp .mask_symbol |
3605 | jmp .mask_symbol |
3518 | .done_fail: |
3606 | .done_fail: |
3519 | stc |
3607 | stc |
3520 | popa |
3608 | popa |
3521 | ret |
3609 | ret |
3522 | .mask_done: |
3610 | .mask_done: |
3523 | scasb |
3611 | scasb |
3524 | jnz .done_fail |
3612 | jnz .done_fail |
3525 | .done_succ: |
3613 | .done_succ: |
3526 | clc |
3614 | clc |
3527 | popa |
3615 | popa |
3528 | ret |
3616 | ret |
3529 | .quest: |
3617 | .quest: |
3530 | mov al, 0 |
3618 | mov al, 0 |
3531 | scasb |
3619 | scasb |
3532 | jz .done_fail |
3620 | jz .done_fail |
3533 | jmp .mask_symbol |
3621 | jmp .mask_symbol |
3534 | .list: |
3622 | .list: |
3535 | lodsb |
3623 | lodsb |
3536 | cmp al, ']' |
3624 | cmp al, ']' |
3537 | jz .done_fail |
3625 | jz .done_fail |
3538 | cmp byte [esi+1], '-' |
3626 | cmp byte [esi+1], '-' |
3539 | jz .range |
3627 | jz .range |
3540 | call match_symbol |
3628 | call match_symbol |
3541 | jnz .list |
3629 | jnz .list |
3542 | .listok: |
3630 | .listok: |
3543 | inc edi |
3631 | inc edi |
3544 | @@: |
3632 | @@: |
3545 | lodsb |
3633 | lodsb |
3546 | cmp al, ']' |
3634 | cmp al, ']' |
3547 | jnz @b |
3635 | jnz @b |
3548 | jmp .mask_symbol |
3636 | jmp .mask_symbol |
3549 | .range: |
3637 | .range: |
3550 | call match_symbol |
3638 | call match_symbol |
3551 | ja @f |
3639 | ja @f |
3552 | mov al, [esi+2] |
3640 | mov al, [esi+2] |
3553 | call match_symbol |
3641 | call match_symbol |
3554 | jae .listok |
3642 | jae .listok |
3555 | @@: |
3643 | @@: |
3556 | inc esi |
3644 | inc esi |
3557 | jmp .list |
3645 | jmp .list |
3558 | .asterisk: |
3646 | .asterisk: |
3559 | cmp byte [esi], 0 |
3647 | cmp byte [esi], 0 |
3560 | jz .done_succ |
3648 | jz .done_succ |
3561 | cmp byte [esi], '?' |
3649 | cmp byte [esi], '?' |
3562 | jnz @f |
3650 | jnz @f |
3563 | mov al, 0 |
3651 | mov al, 0 |
3564 | scasb |
3652 | scasb |
3565 | jz .done_fail |
3653 | jz .done_fail |
3566 | inc esi |
3654 | inc esi |
3567 | jmp .asterisk |
3655 | jmp .asterisk |
3568 | @@: |
3656 | @@: |
3569 | cmp byte [esi], '[' |
3657 | cmp byte [esi], '[' |
3570 | jz .asterisk_common |
3658 | jz .asterisk_common |
3571 | ; the mask is ...* |
3659 | ; the mask is ...* |
3572 | .asterisk_normal: |
3660 | .asterisk_normal: |
3573 | mov al, [esi] |
3661 | mov al, [esi] |
3574 | @@: |
3662 | @@: |
3575 | cmp byte [edi], 0 |
3663 | cmp byte [edi], 0 |
3576 | jz .done_fail |
3664 | jz .done_fail |
3577 | call match_symbol |
3665 | call match_symbol |
3578 | jz @f |
3666 | jz @f |
3579 | inc edi |
3667 | inc edi |
3580 | jmp @b |
3668 | jmp @b |
3581 | @@: |
3669 | @@: |
3582 | inc edi |
3670 | inc edi |
3583 | inc esi |
3671 | inc esi |
3584 | call match_single_mask |
3672 | call match_single_mask |
3585 | jnc .done_succ |
3673 | jnc .done_succ |
3586 | dec esi |
3674 | dec esi |
3587 | jmp .asterisk_normal |
3675 | jmp .asterisk_normal |
3588 | .asterisk_common: |
3676 | .asterisk_common: |
3589 | push edi |
3677 | push edi |
3590 | @@: |
3678 | @@: |
3591 | call match_single_mask |
3679 | call match_single_mask |
3592 | jnc @f |
3680 | jnc @f |
3593 | mov al, 0 |
3681 | mov al, 0 |
3594 | scasb |
3682 | scasb |
3595 | jnz @b |
3683 | jnz @b |
3596 | pop edi |
3684 | pop edi |
3597 | jmp .done_fail |
3685 | jmp .done_fail |
3598 | @@: |
3686 | @@: |
3599 | pop edi |
3687 | pop edi |
3600 | jmp .done_succ |
3688 | jmp .done_succ |
3601 | 3689 | ||
3602 | match_mask_rev: |
3690 | match_mask_rev: |
3603 | ; in: esi->name, edx->end of name, edi->mask |
3691 | ; in: esi->name, edx->end of name, edi->mask |
3604 | ; out: CF clear <=> match |
3692 | ; out: CF clear <=> match |
3605 | pusha |
3693 | pusha |
3606 | xchg esi, edx |
3694 | xchg esi, edx |
3607 | xchg esi, edi |
3695 | xchg esi, edi |
3608 | .main_cycle: |
3696 | .main_cycle: |
3609 | mov ecx, esi |
3697 | mov ecx, esi |
3610 | @@: |
3698 | @@: |
3611 | lodsb |
3699 | lodsb |
3612 | test al, al |
3700 | test al, al |
3613 | jz @f |
3701 | jz @f |
3614 | cmp al, ',' |
3702 | cmp al, ',' |
3615 | jz @f |
3703 | jz @f |
3616 | cmp al, '|' |
3704 | cmp al, '|' |
3617 | jnz @b |
3705 | jnz @b |
3618 | @@: |
3706 | @@: |
3619 | dec esi |
3707 | dec esi |
3620 | mov [esi], byte 0 |
3708 | mov [esi], byte 0 |
3621 | call match_single_mask_rev2 |
3709 | call match_single_mask_rev2 |
3622 | mov [esi], al |
3710 | mov [esi], al |
3623 | inc esi |
3711 | inc esi |
3624 | jnc .found |
3712 | jnc .found |
3625 | cmp al, ',' |
3713 | cmp al, ',' |
3626 | jz .main_cycle |
3714 | jz .main_cycle |
3627 | .done_fail: |
3715 | .done_fail: |
3628 | stc |
3716 | stc |
3629 | popa |
3717 | popa |
3630 | ret |
3718 | ret |
3631 | .found: |
3719 | .found: |
3632 | test al, al |
3720 | test al, al |
3633 | jz .done_succ |
3721 | jz .done_succ |
3634 | cmp al, '|' |
3722 | cmp al, '|' |
3635 | jz .test_exclude |
3723 | jz .test_exclude |
3636 | lodsb |
3724 | lodsb |
3637 | jmp .found |
3725 | jmp .found |
3638 | .done_succ: |
3726 | .done_succ: |
3639 | clc |
3727 | clc |
3640 | popa |
3728 | popa |
3641 | ret |
3729 | ret |
3642 | .test_exclude: |
3730 | .test_exclude: |
3643 | mov ecx, esi |
3731 | mov ecx, esi |
3644 | @@: |
3732 | @@: |
3645 | lodsb |
3733 | lodsb |
3646 | test al, al |
3734 | test al, al |
3647 | jz @f |
3735 | jz @f |
3648 | cmp al, ',' |
3736 | cmp al, ',' |
3649 | jnz @b |
3737 | jnz @b |
3650 | @@: |
3738 | @@: |
3651 | dec esi |
3739 | dec esi |
3652 | mov byte [esi], 0 |
3740 | mov byte [esi], 0 |
3653 | call match_single_mask_rev2 |
3741 | call match_single_mask_rev2 |
3654 | mov [esi], al |
3742 | mov [esi], al |
3655 | inc esi |
3743 | inc esi |
3656 | jnc .done_fail |
3744 | jnc .done_fail |
3657 | test al, al |
3745 | test al, al |
3658 | jz .done_succ |
3746 | jz .done_succ |
3659 | jmp .test_exclude |
3747 | jmp .test_exclude |
3660 | 3748 | ||
3661 | match_single_mask_rev2: |
3749 | match_single_mask_rev2: |
3662 | pusha |
3750 | pusha |
3663 | jmp match_single_mask_rev.mask_symbol |
3751 | jmp match_single_mask_rev.mask_symbol |
3664 | match_single_mask_rev: |
3752 | match_single_mask_rev: |
3665 | ; in: esi->mask, edi->end of name, edx->start of name |
3753 | ; in: esi->mask, edi->end of name, edx->start of name |
3666 | ; out: CF clear <=> match |
3754 | ; out: CF clear <=> match |
3667 | pusha |
3755 | pusha |
3668 | mov ecx, esi |
3756 | mov ecx, esi |
3669 | @@: |
3757 | @@: |
3670 | lodsb |
3758 | lodsb |
3671 | test al, al |
3759 | test al, al |
3672 | jnz @b |
3760 | jnz @b |
3673 | dec esi |
3761 | dec esi |
3674 | ; esi->end of mask, ecx->start of mask |
3762 | ; esi->end of mask, ecx->start of mask |
3675 | .mask_symbol: |
3763 | .mask_symbol: |
3676 | dec esi |
3764 | dec esi |
3677 | cmp esi, ecx |
3765 | cmp esi, ecx |
3678 | jb .mask_done |
3766 | jb .mask_done |
3679 | mov al, [esi] |
3767 | mov al, [esi] |
3680 | cmp al, '*' |
3768 | cmp al, '*' |
3681 | jz .asterisk |
3769 | jz .asterisk |
3682 | cmp al, '?' |
3770 | cmp al, '?' |
3683 | jz .quest |
3771 | jz .quest |
3684 | cmp al, ']' |
3772 | cmp al, ']' |
3685 | jz .list |
3773 | jz .list |
3686 | dec edi |
3774 | dec edi |
3687 | cmp edi, edx |
3775 | cmp edi, edx |
3688 | jb .done_fail |
3776 | jb .done_fail |
3689 | call match_symbol |
3777 | call match_symbol |
3690 | jz .mask_symbol |
3778 | jz .mask_symbol |
3691 | .done_fail: |
3779 | .done_fail: |
3692 | stc |
3780 | stc |
3693 | popa |
3781 | popa |
3694 | ret |
3782 | ret |
3695 | .mask_done: |
3783 | .mask_done: |
3696 | cmp edi, edx |
3784 | cmp edi, edx |
3697 | jnz .done_fail |
3785 | jnz .done_fail |
3698 | .done_succ: |
3786 | .done_succ: |
3699 | clc |
3787 | clc |
3700 | popa |
3788 | popa |
3701 | ret |
3789 | ret |
3702 | .quest: |
3790 | .quest: |
3703 | dec edi |
3791 | dec edi |
3704 | cmp edi, edx |
3792 | cmp edi, edx |
3705 | jb .done_fail |
3793 | jb .done_fail |
3706 | jmp .mask_symbol |
3794 | jmp .mask_symbol |
3707 | .list: |
3795 | .list: |
3708 | dec edi |
3796 | dec edi |
3709 | cmp edi, edx |
3797 | cmp edi, edx |
3710 | jb .done_fail |
3798 | jb .done_fail |
3711 | .list_check: |
3799 | .list_check: |
3712 | dec esi |
3800 | dec esi |
3713 | cmp esi, ecx |
3801 | cmp esi, ecx |
3714 | jbe .done_fail |
3802 | jbe .done_fail |
3715 | mov al, [esi] |
3803 | mov al, [esi] |
3716 | cmp al, '[' |
3804 | cmp al, '[' |
3717 | jz .done_fail |
3805 | jz .done_fail |
3718 | cmp byte [esi-1], '-' |
3806 | cmp byte [esi-1], '-' |
3719 | jz .range |
3807 | jz .range |
3720 | call match_symbol |
3808 | call match_symbol |
3721 | jnz .list_check |
3809 | jnz .list_check |
3722 | .listok: |
3810 | .listok: |
3723 | @@: |
3811 | @@: |
3724 | dec esi |
3812 | dec esi |
3725 | cmp esi, ecx |
3813 | cmp esi, ecx |
3726 | jb .done_fail |
3814 | jb .done_fail |
3727 | cmp byte [esi], '[' |
3815 | cmp byte [esi], '[' |
3728 | jnz @b |
3816 | jnz @b |
3729 | jmp .mask_symbol |
3817 | jmp .mask_symbol |
3730 | .range: |
3818 | .range: |
3731 | call match_symbol |
3819 | call match_symbol |
3732 | jb @f |
3820 | jb @f |
3733 | mov al, [esi-2] |
3821 | mov al, [esi-2] |
3734 | call match_symbol |
3822 | call match_symbol |
3735 | jbe .listok |
3823 | jbe .listok |
3736 | @@: |
3824 | @@: |
3737 | dec esi |
3825 | dec esi |
3738 | dec esi |
3826 | dec esi |
3739 | jmp .list_check |
3827 | jmp .list_check |
3740 | .asterisk: |
3828 | .asterisk: |
3741 | cmp esi, ecx |
3829 | cmp esi, ecx |
3742 | jz .done_succ |
3830 | jz .done_succ |
3743 | cmp byte [esi-1], '?' |
3831 | cmp byte [esi-1], '?' |
3744 | jnz @f |
3832 | jnz @f |
3745 | cmp edi, edx |
3833 | cmp edi, edx |
3746 | jz .done_fail |
3834 | jz .done_fail |
3747 | dec esi |
3835 | dec esi |
3748 | jmp .asterisk |
3836 | jmp .asterisk |
3749 | @@: |
3837 | @@: |
3750 | cmp byte [esi-1], ']' |
3838 | cmp byte [esi-1], ']' |
3751 | jz .asterisk_common |
3839 | jz .asterisk_common |
3752 | ; the mask is ... |
3840 | ; the mask is ... |
3753 | .asterisk_normal: |
3841 | .asterisk_normal: |
3754 | mov al, [esi-1] |
3842 | mov al, [esi-1] |
3755 | @@: |
3843 | @@: |
3756 | cmp edi, edx |
3844 | cmp edi, edx |
3757 | jz .done_fail |
3845 | jz .done_fail |
3758 | call match_symbol |
3846 | call match_symbol |
3759 | jz @f |
3847 | jz @f |
3760 | dec edi |
3848 | dec edi |
3761 | jmp @b |
3849 | jmp @b |
3762 | @@: |
3850 | @@: |
3763 | dec edi |
3851 | dec edi |
3764 | dec esi |
3852 | dec esi |
3765 | call match_single_mask_rev2 |
3853 | call match_single_mask_rev2 |
3766 | jnc .done_succ |
3854 | jnc .done_succ |
3767 | inc esi |
3855 | inc esi |
3768 | jmp .asterisk_normal |
3856 | jmp .asterisk_normal |
3769 | .asterisk_common: |
3857 | .asterisk_common: |
3770 | push edi |
3858 | push edi |
3771 | @@: |
3859 | @@: |
3772 | call match_single_mask_rev2 |
3860 | call match_single_mask_rev2 |
3773 | jnc @f |
3861 | jnc @f |
3774 | dec edi |
3862 | dec edi |
3775 | cmp edi, edx |
3863 | cmp edi, edx |
3776 | jae @b |
3864 | jae @b |
3777 | pop edi |
3865 | pop edi |
3778 | jmp .done_fail |
3866 | jmp .done_fail |
3779 | @@: |
3867 | @@: |
3780 | pop edi |
3868 | pop edi |
3781 | jmp .done_succ |
3869 | jmp .done_succ |
3782 | end if |
3870 | end if |
3783 | 3871 | ||
3784 | tolower: |
3872 | tolower: |
3785 | cmp al, 'A' |
3873 | cmp al, 'A' |
3786 | jb @f |
3874 | jb @f |
3787 | cmp al, 'Z' |
3875 | cmp al, 'Z' |
3788 | ja @f |
3876 | ja @f |
3789 | add al, ' ' |
3877 | add al, ' ' |
3790 | @@: ret |
3878 | @@: ret |
3791 | 3879 | ||
3792 | match_symbol: |
3880 | match_symbol: |
3793 | ; in: al,[edi]=symbols |
3881 | ; in: al,[edi]=symbols |
3794 | ; out: flags as 'cmp al,[edi]' |
3882 | ; out: flags as 'cmp al,[edi]' |
3795 | push eax |
3883 | push eax |
3796 | call tolower |
3884 | call tolower |
3797 | mov ah, [edi] |
3885 | mov ah, [edi] |
3798 | xchg al, ah |
3886 | xchg al, ah |
3799 | call tolower |
3887 | call tolower |
3800 | cmp ah, al |
3888 | cmp ah, al |
3801 | pop eax |
3889 | pop eax |
3802 | ret |
3890 | ret |
3803 | 3891 | ||
3804 | match_mask_rev_lowercase: |
3892 | match_mask_rev_lowercase: |
3805 | ; in: esi->name, edx->end of name, edi->mask |
3893 | ; in: esi->name, edx->end of name, edi->mask |
3806 | ; out: CF clear <=> match |
3894 | ; out: CF clear <=> match |
3807 | pusha |
3895 | pusha |
3808 | xchg esi, edx |
3896 | xchg esi, edx |
3809 | xchg esi, edi |
3897 | xchg esi, edi |
3810 | .main_cycle: |
3898 | .main_cycle: |
3811 | mov ecx, esi |
3899 | mov ecx, esi |
3812 | @@: |
3900 | @@: |
3813 | lodsb |
3901 | lodsb |
3814 | test al, al |
3902 | test al, al |
3815 | jz @f |
3903 | jz @f |
3816 | cmp al, ',' |
3904 | cmp al, ',' |
3817 | jz @f |
3905 | jz @f |
3818 | cmp al, '|' |
3906 | cmp al, '|' |
3819 | jnz @b |
3907 | jnz @b |
3820 | @@: |
3908 | @@: |
3821 | dec esi |
3909 | dec esi |
3822 | mov [esi], byte 0 |
3910 | mov [esi], byte 0 |
3823 | call match_single_mask_rev_lowercase |
3911 | call match_single_mask_rev_lowercase |
3824 | mov [esi], al |
3912 | mov [esi], al |
3825 | inc esi |
3913 | inc esi |
3826 | jnc .found |
3914 | jnc .found |
3827 | cmp al, ',' |
3915 | cmp al, ',' |
3828 | jz .main_cycle |
3916 | jz .main_cycle |
3829 | .done_fail: |
3917 | .done_fail: |
3830 | stc |
3918 | stc |
3831 | popa |
3919 | popa |
3832 | ret |
3920 | ret |
3833 | .found: |
3921 | .found: |
3834 | test al, al |
3922 | test al, al |
3835 | jz .done_succ |
3923 | jz .done_succ |
3836 | cmp al, '|' |
3924 | cmp al, '|' |
3837 | jz .test_exclude |
3925 | jz .test_exclude |
3838 | lodsb |
3926 | lodsb |
3839 | jmp .found |
3927 | jmp .found |
3840 | .done_succ: |
3928 | .done_succ: |
3841 | clc |
3929 | clc |
3842 | popa |
3930 | popa |
3843 | ret |
3931 | ret |
3844 | .test_exclude: |
3932 | .test_exclude: |
3845 | mov ecx, esi |
3933 | mov ecx, esi |
3846 | @@: |
3934 | @@: |
3847 | lodsb |
3935 | lodsb |
3848 | test al, al |
3936 | test al, al |
3849 | jz @f |
3937 | jz @f |
3850 | cmp al, ',' |
3938 | cmp al, ',' |
3851 | jnz @b |
3939 | jnz @b |
3852 | @@: |
3940 | @@: |
3853 | dec esi |
3941 | dec esi |
3854 | mov byte [esi], 0 |
3942 | mov byte [esi], 0 |
3855 | call match_single_mask_rev_lowercase |
3943 | call match_single_mask_rev_lowercase |
3856 | mov [esi], al |
3944 | mov [esi], al |
3857 | inc esi |
3945 | inc esi |
3858 | jnc .done_fail |
3946 | jnc .done_fail |
3859 | test al, al |
3947 | test al, al |
3860 | jz .done_succ |
3948 | jz .done_succ |
3861 | jmp .test_exclude |
3949 | jmp .test_exclude |
3862 | 3950 | ||
3863 | match_single_mask_rev_lowercase: |
3951 | match_single_mask_rev_lowercase: |
3864 | ; in: esi->end of mask, ecx->start of mask, edi->end of name, edx->start of name |
3952 | ; in: esi->end of mask, ecx->start of mask, edi->end of name, edx->start of name |
3865 | ; out: CF clear <=> match |
3953 | ; out: CF clear <=> match |
3866 | push esi edi eax |
3954 | push esi edi eax |
3867 | .mask_symbol: |
3955 | .mask_symbol: |
3868 | dec esi |
3956 | dec esi |
3869 | cmp esi, ecx |
3957 | cmp esi, ecx |
3870 | jb .mask_done |
3958 | jb .mask_done |
3871 | mov al, [esi] |
3959 | mov al, [esi] |
3872 | cmp al, '*' |
3960 | cmp al, '*' |
3873 | jz .asterisk |
3961 | jz .asterisk |
3874 | cmp al, '?' |
3962 | cmp al, '?' |
3875 | jz .quest |
3963 | jz .quest |
3876 | cmp al, ']' |
3964 | cmp al, ']' |
3877 | jz .list |
3965 | jz .list |
3878 | dec edi |
3966 | dec edi |
3879 | cmp edi, edx |
3967 | cmp edi, edx |
3880 | jb .done_fail |
3968 | jb .done_fail |
3881 | cmp al, [edi] |
3969 | cmp al, [edi] |
3882 | jz .mask_symbol |
3970 | jz .mask_symbol |
3883 | .done_fail: |
3971 | .done_fail: |
3884 | stc |
3972 | stc |
3885 | pop eax edi esi |
3973 | pop eax edi esi |
3886 | ret |
3974 | ret |
3887 | .mask_done: |
3975 | .mask_done: |
3888 | cmp edi, edx |
3976 | cmp edi, edx |
3889 | jnz .done_fail |
3977 | jnz .done_fail |
3890 | .done_succ: |
3978 | .done_succ: |
3891 | clc |
3979 | clc |
3892 | pop eax edi esi |
3980 | pop eax edi esi |
3893 | ret |
3981 | ret |
3894 | .quest: |
3982 | .quest: |
3895 | dec edi |
3983 | dec edi |
3896 | cmp edi, edx |
3984 | cmp edi, edx |
3897 | jb .done_fail |
3985 | jb .done_fail |
3898 | jmp .mask_symbol |
3986 | jmp .mask_symbol |
3899 | .list: |
3987 | .list: |
3900 | dec edi |
3988 | dec edi |
3901 | cmp edi, edx |
3989 | cmp edi, edx |
3902 | jb .done_fail |
3990 | jb .done_fail |
3903 | .list_check: |
3991 | .list_check: |
3904 | dec esi |
3992 | dec esi |
3905 | cmp esi, ecx |
3993 | cmp esi, ecx |
3906 | jbe .done_fail |
3994 | jbe .done_fail |
3907 | mov al, [esi] |
3995 | mov al, [esi] |
3908 | cmp al, '[' |
3996 | cmp al, '[' |
3909 | jz .done_fail |
3997 | jz .done_fail |
3910 | cmp byte [esi-1], '-' |
3998 | cmp byte [esi-1], '-' |
3911 | jz .range |
3999 | jz .range |
3912 | cmp al, [edi] |
4000 | cmp al, [edi] |
3913 | jnz .list_check |
4001 | jnz .list_check |
3914 | .listok: |
4002 | .listok: |
3915 | @@: |
4003 | @@: |
3916 | dec esi |
4004 | dec esi |
3917 | cmp esi, ecx |
4005 | cmp esi, ecx |
3918 | jb .done_fail |
4006 | jb .done_fail |
3919 | cmp byte [esi], '[' |
4007 | cmp byte [esi], '[' |
3920 | jnz @b |
4008 | jnz @b |
3921 | jmp .mask_symbol |
4009 | jmp .mask_symbol |
3922 | .range: |
4010 | .range: |
3923 | cmp al, [edi] |
4011 | cmp al, [edi] |
3924 | jb @f |
4012 | jb @f |
3925 | mov al, [esi-2] |
4013 | mov al, [esi-2] |
3926 | cmp al, [edi] |
4014 | cmp al, [edi] |
3927 | jbe .listok |
4015 | jbe .listok |
3928 | @@: |
4016 | @@: |
3929 | dec esi |
4017 | dec esi |
3930 | dec esi |
4018 | dec esi |
3931 | jmp .list_check |
4019 | jmp .list_check |
3932 | .asterisk: |
4020 | .asterisk: |
3933 | cmp esi, ecx |
4021 | cmp esi, ecx |
3934 | jz .done_succ |
4022 | jz .done_succ |
3935 | cmp byte [esi-1], '?' |
4023 | cmp byte [esi-1], '?' |
3936 | jnz @f |
4024 | jnz @f |
3937 | cmp edi, edx |
4025 | cmp edi, edx |
3938 | jz .done_fail |
4026 | jz .done_fail |
3939 | dec esi |
4027 | dec esi |
3940 | jmp .asterisk |
4028 | jmp .asterisk |
3941 | @@: |
4029 | @@: |
3942 | cmp byte [esi-1], ']' |
4030 | cmp byte [esi-1], ']' |
3943 | jz .asterisk_common |
4031 | jz .asterisk_common |
3944 | ; the mask is ... |
4032 | ; the mask is ... |
3945 | .asterisk_normal: |
4033 | .asterisk_normal: |
3946 | mov al, [esi-1] |
4034 | mov al, [esi-1] |
3947 | @@: |
4035 | @@: |
3948 | cmp edi, edx |
4036 | cmp edi, edx |
3949 | jz .done_fail |
4037 | jz .done_fail |
3950 | cmp al, [edi] |
4038 | cmp al, [edi] |
3951 | jz @f |
4039 | jz @f |
3952 | dec edi |
4040 | dec edi |
3953 | jmp @b |
4041 | jmp @b |
3954 | @@: |
4042 | @@: |
3955 | dec edi |
4043 | dec edi |
3956 | dec esi |
4044 | dec esi |
3957 | call match_single_mask_rev_lowercase |
4045 | call match_single_mask_rev_lowercase |
3958 | jnc .done_succ |
4046 | jnc .done_succ |
3959 | inc esi |
4047 | inc esi |
3960 | jmp .asterisk_normal |
4048 | jmp .asterisk_normal |
3961 | .asterisk_common: |
4049 | .asterisk_common: |
3962 | push edi |
4050 | push edi |
3963 | @@: |
4051 | @@: |
3964 | call match_single_mask_rev_lowercase |
4052 | call match_single_mask_rev_lowercase |
3965 | jnc @f |
4053 | jnc @f |
3966 | dec edi |
4054 | dec edi |
3967 | cmp edi, edx |
4055 | cmp edi, edx |
3968 | jae @b |
4056 | jae @b |
3969 | pop edi |
4057 | pop edi |
3970 | jmp .done_fail |
4058 | jmp .done_fail |
3971 | @@: |
4059 | @@: |
3972 | pop edi |
4060 | pop edi |
3973 | jmp .done_succ |
4061 | jmp .done_succ |
3974 | 4062 | ||
3975 | find_extension: |
4063 | find_extension: |
3976 | lea esi, [ecx+40] |
4064 | lea esi, [ecx+40] |
3977 | push esi |
4065 | push esi |
3978 | @@: |
4066 | @@: |
3979 | lodsb |
4067 | lodsb |
3980 | test al, al |
4068 | test al, al |
3981 | jnz @b |
4069 | jnz @b |
3982 | @@: |
4070 | @@: |
3983 | dec esi |
4071 | dec esi |
3984 | cmp byte [esi], '.' |
4072 | cmp byte [esi], '.' |
3985 | jz .found_ext |
4073 | jz .found_ext |
3986 | cmp esi, [esp] |
4074 | cmp esi, [esp] |
3987 | ja @b |
4075 | ja @b |
3988 | ; empty extension |
4076 | ; empty extension |
3989 | pop esi |
4077 | pop esi |
3990 | stc |
4078 | stc |
3991 | ret |
4079 | ret |
3992 | .found_ext: |
4080 | .found_ext: |
3993 | inc esi |
4081 | inc esi |
3994 | mov edi, associations |
4082 | mov edi, associations |
3995 | @@: |
4083 | @@: |
3996 | push esi edi |
4084 | push esi edi |
3997 | mov edi, [edi] |
4085 | mov edi, [edi] |
3998 | call strcmpi |
4086 | call strcmpi |
3999 | pop edi esi |
4087 | pop edi esi |
4000 | jz @f |
4088 | jz @f |
4001 | add edi, 12 |
4089 | add edi, 12 |
4002 | cmp edi, associations_end |
4090 | cmp edi, associations_end |
4003 | jb @b |
4091 | jb @b |
4004 | ; unknown extension |
4092 | ; unknown extension |
4005 | inc edi |
4093 | inc edi |
4006 | @@: |
4094 | @@: |
4007 | pop esi |
4095 | pop esi |
4008 | ret |
4096 | ret |
4009 | 4097 | ||
4010 | header db 'Kolibri Far 0.2',0 |
4098 | header db 'Kolibri Far 0.21',0 |
4011 | 4099 | ||
4012 | nomem_draw db 'No memory for redraw.',0 |
4100 | nomem_draw db 'No memory for redraw.',0 |
4013 | .size = $ - nomem_draw |
4101 | .size = $ - nomem_draw |
4014 | 4102 | ||
4015 | def_left_dir db '/rd/1',0 |
4103 | def_left_dir db '/rd/1',0 |
4016 | def_right_dir db '/hd0/1',0 |
4104 | def_right_dir db '/hd0/1',0 |
4017 | 4105 | ||
4018 | bSilentFolderMode db 1 |
4106 | bSilentFolderMode db 1 |
4019 | 4107 | ||
4020 | if lang eq ru |
4108 | if lang eq ru |
4021 | aFolder db ' ¯ª ' |
4109 | aFolder db ' ¯ª ' |
4022 | .size = $-aFolder |
4110 | .size = $-aFolder |
4023 | aUp db '¢¥àå' |
4111 | aUp db '¢¥àå' |
4024 | .size = $-aUp |
4112 | .size = $-aUp |
4025 | aDrive db '¨áª',0 |
4113 | aDrive db '¨áª',0 |
4026 | aScreens db 'ªà ë',0 |
4114 | aScreens db 'ªà ë',0 |
4027 | else |
4115 | else |
4028 | aFolder db 'Folder' |
4116 | aFolder db 'Folder' |
4029 | .size = $-aFolder |
4117 | .size = $-aFolder |
4030 | aUp db 'Up' |
4118 | aUp db 'Up' |
4031 | .size = $-aUp |
4119 | .size = $-aUp |
4032 | aDrive db 'Drive',0 |
4120 | aDrive db 'Drive',0 |
4033 | aScreens db 'Screens',0 |
4121 | aScreens db 'Screens',0 |
4034 | end if |
4122 | end if |
4035 | 4123 | ||
4036 | _10d dd 10 |
4124 | _10d dd 10 |
4037 | _100d dd 100 |
4125 | _100d dd 100 |
4038 | _10 db 10 |
4126 | _10 db 10 |
4039 | _100 db 100 |
4127 | _100 db 100 |
4040 | 4128 | ||
4041 | fpu_cw dw 000011100111111b |
4129 | fpu_cw dw 000011100111111b |
4042 | 4130 | ||
4043 | keybar_panels: |
4131 | keybar_panels: |
4044 | if lang eq ru |
4132 | if lang eq ru |
4045 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
4133 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
4046 | db '®¬®éì' |
4134 | db '®¬®éì' |
4047 | db '®«ì§' |
4135 | db '®«ì§' |
4048 | db 'à®á¬ ' |
4136 | db 'à®á¬ ' |
4049 | db '¥¤ ªâ' |
4137 | db '¥¤ ªâ' |
4050 | db '®¯¨à ' |
4138 | db '®¯¨à ' |
4051 | db '¥à¥ ' |
4139 | db '¥à¥ ' |
4052 | db ' ¯ª ' |
4140 | db ' ¯ª ' |
4053 | db '¤ «¥' |
4141 | db '¤ «¥' |
4054 | db '®ä' |
4142 | db '®ä' |
4055 | db 'ë室 ' |
4143 | db 'ë室 ' |
4056 | db '®¤ã«¨' |
4144 | db '®¤ã«¨' |
4057 | db 'ªà ë' |
4145 | db 'ªà ë' |
4058 | ; Shift |
4146 | ; Shift |
4059 | db '®¡ ¢«' |
4147 | db '®¡ ¢«' |
4060 | db ' ᯠª' |
4148 | db ' ᯠª' |
4061 | db 'à宬' |
4149 | db 'à宬' |
4062 | db '¥¤ ª.' |
4150 | db '¥¤ ª.' |
4063 | db '®¯¨à ' |
4151 | db '®¯¨à ' |
4064 | db '¥à¥¨¬' |
4152 | db '¥à¥¨¬' |
4065 | db ' ' |
4153 | db ' ' |
4066 | db '¤ «¥' |
4154 | db '¤ «¥' |
4067 | db '®åà ' |
4155 | db '®åà ' |
4068 | db '®á«¤' |
4156 | db '®á«¤' |
4069 | db 'à㯯ë' |
4157 | db 'à㯯ë' |
4070 | db 'ë¡à ' |
4158 | db 'ë¡à ' |
4071 | ; Ctrl |
4159 | ; Ctrl |
4072 | db '¥¢ ï ' |
4160 | db '¥¢ ï ' |
4073 | db 'à ¢ ï' |
4161 | db 'à ¢ ï' |
4074 | db '• ' |
4162 | db '• ' |
4075 | db ' áè¨à' |
4163 | db ' áè¨à' |
4076 | db '®¤¨ä ' |
4164 | db '®¤¨ä ' |
4077 | db ' §¬¥à' |
4165 | db ' §¬¥à' |
4078 | db '¥á®àâ' |
4166 | db '¥á®àâ' |
4079 | db '®§¤ ' |
4167 | db '®§¤ ' |
4080 | db '®áâã¯' |
4168 | db '®áâã¯' |
4081 | db '¯¨á ' |
4169 | db '¯¨á ' |
4082 | db '« ¤¥«' |
4170 | db '« ¤¥«' |
4083 | db '®àâ ' |
4171 | db '®àâ ' |
4084 | ; Ctrl+Shift |
4172 | ; Ctrl+Shift |
4085 | db ' ' |
4173 | db ' ' |
4086 | db ' ' |
4174 | db ' ' |
4087 | db 'à®á¬ ' |
4175 | db 'à®á¬ ' |
4088 | db '¥¤ ªâ' |
4176 | db '¥¤ ªâ' |
4089 | db ' ' |
4177 | db ' ' |
4090 | db ' ' |
4178 | db ' ' |
4091 | db ' ' |
4179 | db ' ' |
4092 | db ' ' |
4180 | db ' ' |
4093 | db ' ' |
4181 | db ' ' |
4094 | db ' ' |
4182 | db ' ' |
4095 | db ' ' |
4183 | db ' ' |
4096 | db ' ' |
4184 | db ' ' |
4097 | ; Alt |
4185 | ; Alt |
4098 | db '¥¢ ï ' |
4186 | db '¥¢ ï ' |
4099 | db 'à ¢ ï' |
4187 | db 'à ¢ ï' |
4100 | db '¬®âà.' |
4188 | db '¬®âà.' |
4101 | db '¥¤ ª.' |
4189 | db '¥¤ ª.' |
4102 | db '¥ç âì' |
4190 | db '¥ç âì' |
4103 | db '¢ï§ì ' |
4191 | db '¢ï§ì ' |
4104 | db '᪠âì' |
4192 | db '᪠âì' |
4105 | db 'áâ®à ' |
4193 | db 'áâ®à ' |
4106 | db '¨¤¥® ' |
4194 | db '¨¤¥® ' |
4107 | db '¥à¥¢®' |
4195 | db '¥à¥¢®' |
4108 | db 'áâà ' |
4196 | db 'áâà ' |
4109 | db 'áâ ¯' |
4197 | db 'áâ ¯' |
4110 | ; Alt+Shift |
4198 | ; Alt+Shift |
4111 | db ' ' |
4199 | db ' ' |
4112 | db ' ' |
4200 | db ' ' |
4113 | db ' ' |
4201 | db ' ' |
4114 | db ' ' |
4202 | db ' ' |
4115 | db ' ' |
4203 | db ' ' |
4116 | db ' ' |
4204 | db ' ' |
4117 | db ' ' |
4205 | db ' ' |
4118 | db ' ' |
4206 | db ' ' |
4119 | db '®ä«' |
4207 | db '®ä«' |
4120 | db ' ' |
4208 | db ' ' |
4121 | db ' ' |
4209 | db ' ' |
4122 | db ' ' |
4210 | db ' ' |
4123 | ; Alt+Ctrl |
4211 | ; Alt+Ctrl |
4124 | times 12 db ' ' |
4212 | times 12 db ' ' |
4125 | ; Alt+Ctrl+Shift |
4213 | ; Alt+Ctrl+Shift |
4126 | times 12 db ' ' |
4214 | times 12 db ' ' |
4127 | else |
4215 | else |
4128 | ; No modificators |
4216 | ; No modificators |
4129 | db 'Help ' |
4217 | db 'Help ' |
4130 | db 'UserMn' |
4218 | db 'UserMn' |
4131 | db 'View ' |
4219 | db 'View ' |
4132 | db 'Edit ' |
4220 | db 'Edit ' |
4133 | db 'Copy ' |
4221 | db 'Copy ' |
4134 | db 'RenMov' |
4222 | db 'RenMov' |
4135 | db 'MkFold' |
4223 | db 'MkFold' |
4136 | db 'Delete' |
4224 | db 'Delete' |
4137 | db 'ConfMn' |
4225 | db 'ConfMn' |
4138 | db 'Quit ' |
4226 | db 'Quit ' |
4139 | db 'Plugin' |
4227 | db 'Plugin' |
4140 | db 'Screen' |
4228 | db 'Screen' |
4141 | ; Shift |
4229 | ; Shift |
4142 | db 'Add ' |
4230 | db 'Add ' |
4143 | db 'Extrct' |
4231 | db 'Extrct' |
4144 | db 'ArcCmd' |
4232 | db 'ArcCmd' |
4145 | db 'Edit..' |
4233 | db 'Edit..' |
4146 | db 'Copy ' |
4234 | db 'Copy ' |
4147 | db 'Rename' |
4235 | db 'Rename' |
4148 | db ' ' |
4236 | db ' ' |
4149 | db 'Delete' |
4237 | db 'Delete' |
4150 | db 'Save ' |
4238 | db 'Save ' |
4151 | db 'Last ' |
4239 | db 'Last ' |
4152 | db 'Group ' |
4240 | db 'Group ' |
4153 | db 'SelUp ' |
4241 | db 'SelUp ' |
4154 | ; Ctrl |
4242 | ; Ctrl |
4155 | db 'Left ' |
4243 | db 'Left ' |
4156 | db 'Right ' |
4244 | db 'Right ' |
4157 | db 'Name ' |
4245 | db 'Name ' |
4158 | db 'Extens' |
4246 | db 'Extens' |
4159 | db 'Modifn' |
4247 | db 'Modifn' |
4160 | db 'Size ' |
4248 | db 'Size ' |
4161 | db 'Unsort' |
4249 | db 'Unsort' |
4162 | db 'Creatn' |
4250 | db 'Creatn' |
4163 | db 'Access' |
4251 | db 'Access' |
4164 | db 'Descr ' |
4252 | db 'Descr ' |
4165 | db 'Owner ' |
4253 | db 'Owner ' |
4166 | db 'Sort ' |
4254 | db 'Sort ' |
4167 | ; Ctrl+Shift |
4255 | ; Ctrl+Shift |
4168 | db ' ' |
4256 | db ' ' |
4169 | db ' ' |
4257 | db ' ' |
4170 | db 'View ' |
4258 | db 'View ' |
4171 | db 'Edit ' |
4259 | db 'Edit ' |
4172 | db ' ' |
4260 | db ' ' |
4173 | db ' ' |
4261 | db ' ' |
4174 | db ' ' |
4262 | db ' ' |
4175 | db ' ' |
4263 | db ' ' |
4176 | db ' ' |
4264 | db ' ' |
4177 | db ' ' |
4265 | db ' ' |
4178 | db ' ' |
4266 | db ' ' |
4179 | db ' ' |
4267 | db ' ' |
4180 | ; Alt |
4268 | ; Alt |
4181 | db 'Left ' |
4269 | db 'Left ' |
4182 | db 'Right ' |
4270 | db 'Right ' |
4183 | db 'View..' |
4271 | db 'View..' |
4184 | db 'Edit..' |
4272 | db 'Edit..' |
4185 | db 'Print ' |
4273 | db 'Print ' |
4186 | db 'MkLink' |
4274 | db 'MkLink' |
4187 | db 'Find ' |
4275 | db 'Find ' |
4188 | db 'Histry' |
4276 | db 'Histry' |
4189 | db 'Video ' |
4277 | db 'Video ' |
4190 | db 'Tree ' |
4278 | db 'Tree ' |
4191 | db 'ViewHs' |
4279 | db 'ViewHs' |
4192 | db 'FoldHs' |
4280 | db 'FoldHs' |
4193 | ; Alt+Shift |
4281 | ; Alt+Shift |
4194 | db ' ' |
4282 | db ' ' |
4195 | db ' ' |
4283 | db ' ' |
4196 | db ' ' |
4284 | db ' ' |
4197 | db ' ' |
4285 | db ' ' |
4198 | db ' ' |
4286 | db ' ' |
4199 | db ' ' |
4287 | db ' ' |
4200 | db ' ' |
4288 | db ' ' |
4201 | db ' ' |
4289 | db ' ' |
4202 | db 'ConfPl' |
4290 | db 'ConfPl' |
4203 | db ' ' |
4291 | db ' ' |
4204 | db ' ' |
4292 | db ' ' |
4205 | db ' ' |
4293 | db ' ' |
4206 | ; Alt+Ctrl |
4294 | ; Alt+Ctrl |
4207 | times 12 db ' ' |
4295 | times 12 db ' ' |
4208 | ; Alt+Ctrl+Shift |
4296 | ; Alt+Ctrl+Shift |
4209 | times 12 db ' ' |
4297 | times 12 db ' ' |
4210 | end if |
4298 | end if |
4211 | 4299 | ||
4212 | keybar_viewer: |
4300 | keybar_viewer: |
4213 | if lang eq ru |
4301 | if lang eq ru |
4214 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
4302 | ; ¡¥§ ª« ¢¨è-¬®¤¨ä¨ª â®à®¢ |
4215 | db '®¬®éì' |
4303 | db '®¬®éì' |
4216 | db ' §¢¥à' |
4304 | db ' §¢¥à' |
4217 | db 'ë室 ' |
4305 | db 'ë室 ' |
4218 | db '®¤ ' |
4306 | db '®¤ ' |
4219 | db ' ' |
4307 | db ' ' |
4220 | db '¥¤ ªâ' |
4308 | db '¥¤ ªâ' |
4221 | db '®¨áª ' |
4309 | db '®¨áª ' |
4222 | keybar_cp: |
4310 | keybar_cp: |
4223 | db 'cp1251' |
4311 | db 'cp1251' |
4224 | db ' ' |
4312 | db ' ' |
4225 | db 'ë室 ' |
4313 | db 'ë室 ' |
4226 | db '®¤ã«¨' |
4314 | db '®¤ã«¨' |
4227 | db 'ªà ë' |
4315 | db 'ªà ë' |
4228 | ; Shift |
4316 | ; Shift |
4229 | db ' ' |
4317 | db ' ' |
4230 | db '«®¢ ' |
4318 | db '«®¢ ' |
4231 | db ' ' |
4319 | db ' ' |
4232 | db ' ' |
4320 | db ' ' |
4233 | db ' ' |
4321 | db ' ' |
4234 | db ' ' |
4322 | db ' ' |
4235 | db ' «ìè¥' |
4323 | db ' «ìè¥' |
4236 | db ' ¡«¨æ' |
4324 | db ' ¡«¨æ' |
4237 | db ' ' |
4325 | db ' ' |
4238 | db ' ' |
4326 | db ' ' |
4239 | db ' ' |
4327 | db ' ' |
4240 | db ' ' |
4328 | db ' ' |
4241 | ; Ctrl |
4329 | ; Ctrl |
4242 | db ' ' |
4330 | db ' ' |
4243 | db ' ' |
4331 | db ' ' |
4244 | db ' ' |
4332 | db ' ' |
4245 | db ' ' |
4333 | db ' ' |
4246 | db ' ' |
4334 | db ' ' |
4247 | db ' ' |
4335 | db ' ' |
4248 | db ' ' |
4336 | db ' ' |
4249 | db ' ' |
4337 | db ' ' |
4250 | db ' ' |
4338 | db ' ' |
4251 | db '®§¨æ ' |
4339 | db '®§¨æ ' |
4252 | db ' ' |
4340 | db ' ' |
4253 | db ' ' |
4341 | db ' ' |
4254 | ; Ctrl+Shift |
4342 | ; Ctrl+Shift |
4255 | db ' ' |
4343 | db ' ' |
4256 | db ' ' |
4344 | db ' ' |
4257 | db ' ' |
4345 | db ' ' |
4258 | db ' ' |
4346 | db ' ' |
4259 | db ' ' |
4347 | db ' ' |
4260 | db ' ' |
4348 | db ' ' |
4261 | db ' ' |
4349 | db ' ' |
4262 | db ' ' |
4350 | db ' ' |
4263 | db ' ' |
4351 | db ' ' |
4264 | db ' ' |
4352 | db ' ' |
4265 | db ' ' |
4353 | db ' ' |
4266 | db ' ' |
4354 | db ' ' |
4267 | ; Alt |
4355 | ; Alt |
4268 | db ' ' |
4356 | db ' ' |
4269 | db ' ' |
4357 | db ' ' |
4270 | db ' ' |
4358 | db ' ' |
4271 | db ' ' |
4359 | db ' ' |
4272 | db '¥ç âì' |
4360 | db '¥ç âì' |
4273 | db ' ' |
4361 | db ' ' |
4274 | db ' § ¤ ' |
4362 | db ' § ¤ ' |
4275 | db '¥à¥©â' |
4363 | db '¥à¥©â' |
4276 | db '¨¤¥® ' |
4364 | db '¨¤¥® ' |
4277 | db ' ' |
4365 | db ' ' |
4278 | db 'áâà ' |
4366 | db 'áâà ' |
4279 | db ' ' |
4367 | db ' ' |
4280 | ; Alt+Shift |
4368 | ; Alt+Shift |
4281 | db ' ' |
4369 | db ' ' |
4282 | db ' ' |
4370 | db ' ' |
4283 | db ' ' |
4371 | db ' ' |
4284 | db ' ' |
4372 | db ' ' |
4285 | db ' ' |
4373 | db ' ' |
4286 | db ' ' |
4374 | db ' ' |
4287 | db ' ' |
4375 | db ' ' |
4288 | db ' ' |
4376 | db ' ' |
4289 | db '®ä¨£' |
4377 | db '®ä¨£' |
4290 | db ' ' |
4378 | db ' ' |
4291 | db ' ' |
4379 | db ' ' |
4292 | db ' ' |
4380 | db ' ' |
4293 | ; Alt+Ctrl |
4381 | ; Alt+Ctrl |
4294 | times 12 db ' ' |
4382 | times 12 db ' ' |
4295 | ; Alt+Ctrl+Shift |
4383 | ; Alt+Ctrl+Shift |
4296 | times 12 db ' ' |
4384 | times 12 db ' ' |
4297 | else |
4385 | else |
4298 | ; No modificators |
4386 | ; No modificators |
4299 | db 'Help ' |
4387 | db 'Help ' |
4300 | db 'Unwrap' |
4388 | db 'Unwrap' |
4301 | db 'Quit ' |
4389 | db 'Quit ' |
4302 | db 'Hex ' |
4390 | db 'Hex ' |
4303 | db ' ' |
4391 | db ' ' |
4304 | db 'Edit ' |
4392 | db 'Edit ' |
4305 | db 'Search' |
4393 | db 'Search' |
4306 | keybar_cp: |
4394 | keybar_cp: |
4307 | db 'cp1251' |
4395 | db 'cp1251' |
4308 | db ' ' |
4396 | db ' ' |
4309 | db 'Quit ' |
4397 | db 'Quit ' |
4310 | db 'Plugin' |
4398 | db 'Plugin' |
4311 | db 'Screen' |
4399 | db 'Screen' |
4312 | ; Shift |
4400 | ; Shift |
4313 | db ' ' |
4401 | db ' ' |
4314 | db 'WWrap ' |
4402 | db 'WWrap ' |
4315 | db ' ' |
4403 | db ' ' |
4316 | db ' ' |
4404 | db ' ' |
4317 | db ' ' |
4405 | db ' ' |
4318 | db ' ' |
4406 | db ' ' |
4319 | db 'Next ' |
4407 | db 'Next ' |
4320 | db 'Table ' |
4408 | db 'Table ' |
4321 | db ' ' |
4409 | db ' ' |
4322 | db ' ' |
4410 | db ' ' |
4323 | db ' ' |
4411 | db ' ' |
4324 | db ' ' |
4412 | db ' ' |
4325 | ; Ctrl |
4413 | ; Ctrl |
4326 | db ' ' |
4414 | db ' ' |
4327 | db ' ' |
4415 | db ' ' |
4328 | db ' ' |
4416 | db ' ' |
4329 | db ' ' |
4417 | db ' ' |
4330 | db ' ' |
4418 | db ' ' |
4331 | db ' ' |
4419 | db ' ' |
4332 | db ' ' |
4420 | db ' ' |
4333 | db ' ' |
4421 | db ' ' |
4334 | db ' ' |
4422 | db ' ' |
4335 | db 'GoFile' |
4423 | db 'GoFile' |
4336 | db ' ' |
4424 | db ' ' |
4337 | db ' ' |
4425 | db ' ' |
4338 | ; Ctrl+Shift |
4426 | ; Ctrl+Shift |
4339 | db ' ' |
4427 | db ' ' |
4340 | db ' ' |
4428 | db ' ' |
4341 | db ' ' |
4429 | db ' ' |
4342 | db ' ' |
4430 | db ' ' |
4343 | db ' ' |
4431 | db ' ' |
4344 | db ' ' |
4432 | db ' ' |
4345 | db ' ' |
4433 | db ' ' |
4346 | db ' ' |
4434 | db ' ' |
4347 | db ' ' |
4435 | db ' ' |
4348 | db ' ' |
4436 | db ' ' |
4349 | db ' ' |
4437 | db ' ' |
4350 | db ' ' |
4438 | db ' ' |
4351 | ; Alt |
4439 | ; Alt |
4352 | db ' ' |
4440 | db ' ' |
4353 | db ' ' |
4441 | db ' ' |
4354 | db ' ' |
4442 | db ' ' |
4355 | db ' ' |
4443 | db ' ' |
4356 | db 'Print ' |
4444 | db 'Print ' |
4357 | db ' ' |
4445 | db ' ' |
4358 | db 'Prev ' |
4446 | db 'Prev ' |
4359 | db 'Goto ' |
4447 | db 'Goto ' |
4360 | db 'Video ' |
4448 | db 'Video ' |
4361 | db ' ' |
4449 | db ' ' |
4362 | db 'ViewHs' |
4450 | db 'ViewHs' |
4363 | db ' ' |
4451 | db ' ' |
4364 | ; Alt+Shift |
4452 | ; Alt+Shift |
4365 | db ' ' |
4453 | db ' ' |
4366 | db ' ' |
4454 | db ' ' |
4367 | db ' ' |
4455 | db ' ' |
4368 | db ' ' |
4456 | db ' ' |
4369 | db ' ' |
4457 | db ' ' |
4370 | db ' ' |
4458 | db ' ' |
4371 | db ' ' |
4459 | db ' ' |
4372 | db ' ' |
4460 | db ' ' |
4373 | db 'Config' |
4461 | db 'Config' |
4374 | db ' ' |
4462 | db ' ' |
4375 | db ' ' |
4463 | db ' ' |
4376 | db ' ' |
4464 | db ' ' |
4377 | ; Alt+Ctrl |
4465 | ; Alt+Ctrl |
4378 | times 12 db ' ' |
4466 | times 12 db ' ' |
4379 | ; Alt+Ctrl+Shift |
4467 | ; Alt+Ctrl+Shift |
4380 | times 12 db ' ' |
4468 | times 12 db ' ' |
4381 | end if |
4469 | end if |
4382 | 4470 | ||
4383 | align 4 |
4471 | align 4 |
4384 | cur_width dd 80 |
4472 | cur_width dd 80 |
4385 | cur_height dd 25 |
4473 | cur_height dd 25 |
4386 | saved_width dd -1 |
4474 | saved_width dd -1 |
4387 | saved_height dd -1 |
4475 | saved_height dd -1 |
4388 | fill_width dd 0 |
4476 | fill_width dd 0 |
4389 | fill_height dd 0 |
4477 | fill_height dd 0 |
4390 | max_width = 256 |
4478 | max_width = 256 |
4391 | max_height = 256 |
4479 | max_height = 256 |
4392 | console_data_ptr dd 0 |
4480 | console_data_ptr dd 0 |
4393 | 4481 | ||
4394 | cursor_x dd -1 |
4482 | cursor_x dd -1 |
4395 | cursor_y dd -1 |
4483 | cursor_y dd -1 |
4396 | old_cursor_x dd -1 |
4484 | old_cursor_x dd -1 |
4397 | old_cursor_y dd -1 |
4485 | old_cursor_y dd -1 |
4398 | 4486 | ||
4399 | active_panel dd panel1_data |
4487 | active_panel dd panel1_data |
4400 | 4488 | ||
4401 | console_colors dd 0x000000, 0x000080, 0x008000, 0x008080 |
4489 | console_colors dd 0x000000, 0x000080, 0x008000, 0x008080 |
4402 | dd 0x800000, 0x800080, 0x808000, 0xC0C0C0 |
4490 | dd 0x800000, 0x800080, 0x808000, 0xC0C0C0 |
4403 | dd 0x808080, 0x0000FF, 0x00FF00, 0x00FFFF |
4491 | dd 0x808080, 0x0000FF, 0x00FF00, 0x00FFFF |
4404 | dd 0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF |
4492 | dd 0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF |
4405 | 4493 | ||
4406 | compare_fns dd compare_name |
4494 | compare_fns dd compare_name |
4407 | dd compare_name_rev |
4495 | dd compare_name_rev |
4408 | dd compare_ext |
4496 | dd compare_ext |
4409 | dd compare_ext_rev |
4497 | dd compare_ext_rev |
4410 | dd compare_modified |
4498 | dd compare_modified |
4411 | dd compare_modified_rev |
4499 | dd compare_modified_rev |
4412 | dd compare_size |
4500 | dd compare_size |
4413 | dd compare_size_rev |
4501 | dd compare_size_rev |
4414 | dd compare_unordered |
4502 | dd compare_unordered |
4415 | dd compare_unordered_rev |
4503 | dd compare_unordered_rev |
4416 | dd compare_created |
4504 | dd compare_created |
4417 | dd compare_created_rev |
4505 | dd compare_created_rev |
4418 | dd compare_accessed |
4506 | dd compare_accessed |
4419 | dd compare_accessed_rev |
4507 | dd compare_accessed_rev |
4420 | 4508 | ||
4421 | ctrlkey_tests dd ctrlkey_test0 |
4509 | ctrlkey_tests dd ctrlkey_test0 |
4422 | dd ctrlkey_test1 |
4510 | dd ctrlkey_test1 |
4423 | dd ctrlkey_test2 |
4511 | dd ctrlkey_test2 |
4424 | dd ctrlkey_test3 |
4512 | dd ctrlkey_test3 |
4425 | dd ctrlkey_test4 |
4513 | dd ctrlkey_test4 |
4426 | ctrlkey_tests_num = 5 |
4514 | ctrlkey_tests_num = 5 |
4427 | 4515 | ||
4428 | virtual at 0 |
4516 | virtual at 0 |
4429 | screen_vtable: |
4517 | screen_vtable: |
4430 | .OnRedraw dd ? |
4518 | .OnRedraw dd ? |
4431 | .OnKey dd ? |
4519 | .OnKey dd ? |
4432 | .keybar dd ? |
4520 | .keybar dd ? |
4433 | .getname dd ? |
4521 | .getname dd ? |
4434 | end virtual |
4522 | end virtual |
4435 | 4523 | ||
4436 | panels_vtable: |
4524 | panels_vtable: |
4437 | dd panels_OnRedraw |
4525 | dd panels_OnRedraw |
4438 | dd panels_OnKey |
4526 | dd panels_OnKey |
4439 | dd keybar_panels |
4527 | dd keybar_panels |
4440 | dd panels_getname |
4528 | dd panels_getname |
4441 | 4529 | ||
4442 | viewer_vtable: |
4530 | viewer_vtable: |
4443 | dd viewer_OnRedraw |
4531 | dd viewer_OnRedraw |
4444 | dd viewer_OnKey |
4532 | dd viewer_OnKey |
4445 | dd keybar_viewer |
4533 | dd keybar_viewer |
4446 | dd viewer_getname |
4534 | dd viewer_getname |
4447 | 4535 | ||
4448 | ; additions to this table require changes in tools.inc::get_error_msg |
4536 | ; additions to this table require changes in tools.inc::get_error_msg |
4449 | errors1: |
4537 | errors1: |
4450 | dd error0msg |
4538 | dd error0msg |
4451 | dd error1msg |
4539 | dd error1msg |
4452 | dd error2msg |
4540 | dd error2msg |
4453 | dd error3msg |
4541 | dd error3msg |
4454 | dd error4msg |
4542 | dd error4msg |
4455 | dd error5msg |
4543 | dd error5msg |
4456 | dd error6msg |
4544 | dd error6msg |
4457 | dd error7msg |
4545 | dd error7msg |
4458 | dd error8msg |
4546 | dd error8msg |
4459 | dd error9msg |
4547 | dd error9msg |
4460 | dd error10msg |
4548 | dd error10msg |
4461 | dd error11msg |
4549 | dd error11msg |
4462 | errors2: |
4550 | errors2: |
4463 | dd error30msg |
4551 | dd error30msg |
4464 | dd error31msg |
4552 | dd error31msg |
4465 | dd error32msg |
4553 | dd error32msg |
4466 | 4554 | ||
4467 | encodings: |
4555 | encodings: |
4468 | .cp866 = 0 |
4556 | .cp866 = 0 |
4469 | .cp1251 = 1 |
4557 | .cp1251 = 1 |
4470 | 4558 | ||
4471 | .names: |
4559 | .names: |
4472 | db 'cp866 ' |
4560 | db 'cp866 ' |
4473 | db 'cp1251 ' |
4561 | db 'cp1251 ' |
4474 | 4562 | ||
4475 | .tables: |
4563 | .tables: |
4476 | ; cp866 - trivial map |
4564 | ; cp866 - trivial map |
4477 | times 128 db %+127 |
4565 | times 128 db %+127 |
4478 | ; cp1251 |
4566 | ; cp1251 |
4479 | db 0x3F,0x3F,0x27,0x3F,0x22,0x3A,0xC5,0xD8,0x3F,0x25,0x3F,0x3C,0x3F,0x3F,0x3F,0x3F |
4567 | db 0x3F,0x3F,0x27,0x3F,0x22,0x3A,0xC5,0xD8,0x3F,0x25,0x3F,0x3C,0x3F,0x3F,0x3F,0x3F |
4480 | db 0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F |
4568 | db 0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F |
4481 | db 0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4 |
4569 | db 0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4 |
4482 | db 0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5 |
4570 | db 0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5 |
4483 | times 0x30 db %-1+0x80 |
4571 | times 0x30 db %-1+0x80 |
4484 | times 0x10 db %-1+0xE0 |
4572 | times 0x10 db %-1+0xE0 |
4485 | 4573 | ||
4486 | active_screen dd 0 |
4574 | active_screen dd 0 |
4487 | tabsize dd 8 |
4575 | tabsize dd 8 |
4488 | 4576 | ||
4489 | ascii2scan: |
4577 | ascii2scan: |
4490 | times 32 db 0 |
4578 | times 32 db 0 |
4491 | db 0x39,0x02,0x03,0x04,0x05,0x06,0x08,0x28,0x0A,0x0B,0x09,0x0D,0x33,0x0C,0x34,0x35 |
4579 | db 0x39,0x02,0x03,0x04,0x05,0x06,0x08,0x28,0x0A,0x0B,0x09,0x0D,0x33,0x0C,0x34,0x35 |
4492 | db 0x0B,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x27,0x27,0x33,0x0D,0x34,0x35 |
4580 | db 0x0B,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x27,0x27,0x33,0x0D,0x34,0x35 |
4493 | db 0x03,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
4581 | db 0x03,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
4494 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x07,0x0C |
4582 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x07,0x0C |
4495 | db 0x29,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
4583 | db 0x29,0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18 |
4496 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x29,0x00 |
4584 | db 0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,0x1A,0x2B,0x1B,0x29,0x00 |
4497 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
4585 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
4498 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
4586 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
4499 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
4587 | db 0x21,0x33,0x20,0x16,0x26,0x14,0x27,0x19,0x30,0x10,0x13,0x25,0x2F,0x15,0x24,0x22 |
4500 | times 48 db 0 |
4588 | times 48 db 0 |
4501 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
4589 | db 0x23,0x2E,0x31,0x12,0x1E,0x1A,0x11,0x2D,0x17,0x18,0x1B,0x1F,0x32,0x28,0x34,0x2C |
4502 | db 0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
4590 | db 0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 |
4503 | 4591 | ||
4504 | ; « ¢¨èë¥ á®ç¥â ¨ï |
4592 | ; « ¢¨èë¥ á®ç¥â ¨ï |
4505 | ; db scancode, reserved |
4593 | ; db scancode, reserved |
4506 | ; dw ctrlstate |
4594 | ; dw ctrlstate |
4507 | ; dd handler |
4595 | ; dd handler |
4508 | ; ctrlstate: ¬« ¤è¨¥ 4 ¡¨â - ¤«ï Shift, á«¥¤ãî騥 - ¤«ï Ctrl, á«¥¤ãî騥 - ¤«ï Alt |
4596 | ; ctrlstate: ¬« ¤è¨¥ 4 ¡¨â - ¤«ï Shift, á«¥¤ãî騥 - ¤«ï Ctrl, á«¥¤ãî騥 - ¤«ï Alt |
4509 | ; 0 = ¨ ®¤ ª« ¢¨è ¥ ¦ â |
4597 | ; 0 = ¨ ®¤ ª« ¢¨è ¥ ¦ â |
4510 | ; 1 = ஢® ®¤ ¦ â |
4598 | ; 1 = ஢® ®¤ ¦ â |
4511 | ; 2 = ®¡¥ ¦ âë |
4599 | ; 2 = ®¡¥ ¦ âë |
4512 | ; 3 = «¥¢ ï ¦ â , ¯à ¢ ï ¥â |
4600 | ; 3 = «¥¢ ï ¦ â , ¯à ¢ ï ¥â |
4513 | ; 4 = ¯à ¢ ï ¦ â , «¥¢ ï ¥â |
4601 | ; 4 = ¯à ¢ ï ¦ â , «¥¢ ï ¥â |
4514 | panels_ctrlkeys: |
4602 | panels_ctrlkeys: |
4515 | dw 0x48, 0 |
4603 | dw 0x48, 0 |
4516 | dd panels_OnKey.up |
4604 | dd panels_OnKey.up |
4517 | dw 0x50, 0 |
4605 | dw 0x50, 0 |
4518 | dd panels_OnKey.down |
4606 | dd panels_OnKey.down |
4519 | dw 0x4B, 0 |
4607 | dw 0x4B, 0 |
4520 | dd panels_OnKey.left |
4608 | dd panels_OnKey.left |
4521 | dw 0x4D, 0 |
4609 | dw 0x4D, 0 |
4522 | dd panels_OnKey.right |
4610 | dd panels_OnKey.right |
4523 | dw 0xF, 0 |
4611 | dw 0xF, 0 |
4524 | dd panels_OnKey.tab |
4612 | dd panels_OnKey.tab |
4525 | dw 0x47, 0 |
4613 | dw 0x47, 0 |
4526 | dd panels_OnKey.home |
4614 | dd panels_OnKey.home |
4527 | dw 0x4F, 0 |
4615 | dw 0x4F, 0 |
4528 | dd panels_OnKey.end |
4616 | dd panels_OnKey.end |
4529 | dw 0x1C, 0 |
4617 | dw 0x1C, 0 |
4530 | dd panels_OnKey.enter |
4618 | dd panels_OnKey.enter |
4531 | dw 0x3D, 0 |
4619 | dw 0x3D, 0 |
4532 | dd panels_OnKey.f3 |
4620 | dd panels_OnKey.f3 |
4533 | dw 0x3F, 0 |
4621 | dw 0x3F, 0 |
4534 | dd panels_OnKey.f5 |
4622 | dd panels_OnKey.f5 |
4535 | dw 0x3F, 1 |
4623 | dw 0x3F, 1 |
4536 | dd panels_OnKey.shift_f5 |
4624 | dd panels_OnKey.shift_f5 |
- | 4625 | dw 0x41, 0 |
|
- | 4626 | dd panels_OnKey.f7 |
|
4537 | dw 0x42, 0 |
4627 | dw 0x42, 0 |
4538 | dd panels_OnKey.f8 |
4628 | dd panels_OnKey.f8 |
4539 | dw 0x43, 0x100 |
4629 | dw 0x43, 0x100 |
4540 | dd alt_f9 |
4630 | dd alt_f9 |
4541 | dw 0x44, 0 |
4631 | dw 0x44, 0 |
4542 | dd exit |
4632 | dd exit |
4543 | dw 0x5D, 0 |
4633 | dw 0x5D, 0 |
4544 | dd panels_OnKey.menu |
4634 | dd panels_OnKey.menu |
4545 | repeat 9-3+1 |
4635 | repeat 9-3+1 |
4546 | dw 0x3D+%-1, 0x10 |
4636 | dw 0x3D+%-1, 0x10 |
4547 | dd panels_OnKey.ctrl_f39 |
4637 | dd panels_OnKey.ctrl_f39 |
4548 | end repeat |
4638 | end repeat |
4549 | dw 0x3B, 0x100 |
4639 | dw 0x3B, 0x100 |
4550 | dd panels_OnKey.alt_f12 |
4640 | dd panels_OnKey.alt_f12 |
4551 | dw 0x3C, 0x100 |
4641 | dw 0x3C, 0x100 |
4552 | dd panels_OnKey.alt_f12 |
4642 | dd panels_OnKey.alt_f12 |
4553 | dw 0x58, 0 |
4643 | dw 0x58, 0 |
4554 | dd F12 |
4644 | dd F12 |
4555 | dw 0x13, 0x10 |
4645 | dw 0x13, 0x10 |
4556 | dd panels_OnKey.ctrl_r |
4646 | dd panels_OnKey.ctrl_r |
4557 | db 0 |
4647 | db 0 |
4558 | 4648 | ||
4559 | viewer_ctrlkeys: |
4649 | viewer_ctrlkeys: |
4560 | dw 1, 0 |
4650 | dw 1, 0 |
4561 | dd viewer_OnKey.exit |
4651 | dd viewer_OnKey.exit |
4562 | dw 0x51, 0 |
4652 | dw 0x51, 0 |
4563 | dd viewer_OnKey.pgdn |
4653 | dd viewer_OnKey.pgdn |
4564 | dw 0x49, 0 |
4654 | dw 0x49, 0 |
4565 | dd viewer_OnKey.pgup |
4655 | dd viewer_OnKey.pgup |
4566 | dw 0x50, 0 |
4656 | dw 0x50, 0 |
4567 | dd viewer_OnKey.down |
4657 | dd viewer_OnKey.down |
4568 | dw 0x48, 0 |
4658 | dw 0x48, 0 |
4569 | dd viewer_OnKey.up |
4659 | dd viewer_OnKey.up |
4570 | dw 0x4B, 0 |
4660 | dw 0x4B, 0 |
4571 | dd viewer_OnKey.left |
4661 | dd viewer_OnKey.left |
4572 | dw 0x4B, 0x10 |
4662 | dw 0x4B, 0x10 |
4573 | dd viewer_OnKey.ctrl_left |
4663 | dd viewer_OnKey.ctrl_left |
4574 | dw 0x4B, 0x11 |
4664 | dw 0x4B, 0x11 |
4575 | dd viewer_OnKey.ctrl_shift_left |
4665 | dd viewer_OnKey.ctrl_shift_left |
4576 | dw 0x4C, 0 |
4666 | dw 0x4C, 0 |
4577 | dd viewer_OnKey.exit |
4667 | dd viewer_OnKey.exit |
4578 | dw 0x4D, 0 |
4668 | dw 0x4D, 0 |
4579 | dd viewer_OnKey.right |
4669 | dd viewer_OnKey.right |
4580 | dw 0x4D, 0x10 |
4670 | dw 0x4D, 0x10 |
4581 | dd viewer_OnKey.ctrl_right |
4671 | dd viewer_OnKey.ctrl_right |
4582 | dw 0x4D, 0x11 |
4672 | dw 0x4D, 0x11 |
4583 | dd viewer_OnKey.ctrl_shift_right |
4673 | dd viewer_OnKey.ctrl_shift_right |
4584 | dw 0x3C, 0 |
4674 | dw 0x3C, 0 |
4585 | dd viewer_OnKey.f2 |
4675 | dd viewer_OnKey.f2 |
4586 | dw 0x3D, 0 |
4676 | dw 0x3D, 0 |
4587 | dd viewer_OnKey.exit |
4677 | dd viewer_OnKey.exit |
4588 | dw 0x3E, 0 |
4678 | dw 0x3E, 0 |
4589 | dd viewer_OnKey.f4 |
4679 | dd viewer_OnKey.f4 |
4590 | dw 0x42, 0 |
4680 | dw 0x42, 0 |
4591 | dd viewer_OnKey.f8 |
4681 | dd viewer_OnKey.f8 |
4592 | dw 0x44, 0 |
4682 | dw 0x44, 0 |
4593 | dd viewer_OnKey.exit |
4683 | dd viewer_OnKey.exit |
4594 | dw 0x47, 0 |
4684 | dw 0x47, 0 |
4595 | dd viewer_OnKey.home |
4685 | dd viewer_OnKey.home |
4596 | dw 0x4F, 0 |
4686 | dw 0x4F, 0 |
4597 | dd viewer_OnKey.end |
4687 | dd viewer_OnKey.end |
4598 | dw 0x58, 0 |
4688 | dw 0x58, 0 |
4599 | dd F12 |
4689 | dd F12 |
4600 | dw 0x43, 0x100 |
4690 | dw 0x43, 0x100 |
4601 | dd alt_f9 |
4691 | dd alt_f9 |
4602 | db 0 |
4692 | db 0 |
4603 | 4693 | ||
4604 | dirinfo: |
4694 | dirinfo: |
4605 | dd 1 |
4695 | dd 1 |
4606 | .first dd 0 |
4696 | .first dd 0 |
4607 | dd 0 |
4697 | dd 0 |
4608 | .size dd 300 |
4698 | .size dd 300 |
4609 | .dirdata dd 0 |
4699 | .dirdata dd 0 |
4610 | db 0 |
4700 | db 0 |
4611 | .name dd 0 |
4701 | .name dd 0 |
4612 | 4702 | ||
4613 | readinfo: |
4703 | readinfo: |
4614 | dd 0 |
4704 | dd 0 |
4615 | .first dq 0 |
4705 | .first dq 0 |
4616 | .size dd 0 |
4706 | .size dd 0 |
4617 | .data dd 0 |
4707 | .data dd 0 |
4618 | db 0 |
4708 | db 0 |
4619 | .name dd 0 |
4709 | .name dd 0 |
4620 | 4710 | ||
4621 | writeinfo: |
4711 | writeinfo: |
4622 | .code dd 2 |
4712 | .code dd 2 |
4623 | .first dq 0 |
4713 | .first dq 0 |
4624 | .size dd 0 |
4714 | .size dd 0 |
4625 | .data dd 0 |
4715 | .data dd 0 |
4626 | db 0 |
4716 | db 0 |
4627 | .name dd 0 |
4717 | .name dd 0 |
4628 | 4718 | ||
4629 | attrinfo: |
4719 | attrinfo: |
4630 | dd 5 |
4720 | dd 5 |
4631 | dd 0 |
4721 | dd 0 |
4632 | dd 0 |
4722 | dd 0 |
4633 | dd 0 |
4723 | dd 0 |
4634 | dd .attr |
4724 | dd .attr |
4635 | db 0 |
4725 | db 0 |
4636 | .name dd 0 |
4726 | .name dd 0 |
4637 | 4727 | ||
4638 | delinfo: |
4728 | delinfo: |
4639 | dd 8 |
4729 | dd 8 |
4640 | dd 0 |
4730 | dd 0 |
4641 | dd 0 |
4731 | dd 0 |
4642 | dd 0 |
4732 | dd 0 |
4643 | dd 0 |
4733 | dd 0 |
4644 | db 0 |
4734 | db 0 |
4645 | dd execdata |
4735 | dd execdata |
- | 4736 | ||
- | 4737 | mkdirinfo: |
|
- | 4738 | dd 9 |
|
- | 4739 | dd 0 |
|
- | 4740 | dd 0 |
|
- | 4741 | dd 0 |
|
- | 4742 | dd 0 |
|
- | 4743 | db 0 |
|
- | 4744 | dd CopyDestEditBuf+12 |
|
4646 | 4745 | ||
4647 | if lang eq ru |
4746 | if lang eq ru |
4648 | compare_names db '¨à¬ á¤' |
4747 | compare_names db '¨à¬ á¤' |
4649 | else |
4748 | else |
4650 | compare_names db 'nNxXmMsSuUcCaA' |
4749 | compare_names db 'nNxXmMsSuUcCaA' |
4651 | end if |
4750 | end if |
4652 | 4751 | ||
4653 | ; ¤¥áì ç¨ îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ - ¢ ⥪ã饩 ॠ«¨§ 樨 ®¨ § è¨âë ¢ ¡¨ ਪ |
4752 | ; ¤¥áì ç¨ îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ - ¢ ⥪ã饩 ॠ«¨§ 樨 ®¨ § è¨âë ¢ ¡¨ ਪ |
4654 | 4753 | ||
4655 | ; ¥«ì |
4754 | ; ¥«ì |
4656 | panel_normal_color db 1Bh |
4755 | panel_normal_color db 1Bh |
4657 | panel_border_color db 1Bh |
4756 | panel_border_color db 1Bh |
4658 | panel_cursor_color db 30h |
4757 | panel_cursor_color db 30h |
4659 | panel_header_color db 1Bh |
4758 | panel_header_color db 1Bh |
4660 | panel_active_header_color db 30h |
4759 | panel_active_header_color db 30h |
4661 | column_header_color db 1Eh |
4760 | column_header_color db 1Eh |
4662 | panel_nscreens_color db 0Bh |
4761 | panel_nscreens_color db 0Bh |
4663 | ; ¨ «®£¨ |
4762 | ; ¨ «®£¨ |
4664 | dialog_colors: |
4763 | dialog_colors: |
4665 | dialog_main_color db 70h |
4764 | dialog_main_color db 70h |
4666 | dialog_border_color db 70h |
4765 | dialog_border_color db 70h |
4667 | dialog_header_color db 70h |
4766 | dialog_header_color db 70h |
4668 | dialog_edit_color db 30h |
4767 | dialog_edit_color db 30h |
4669 | dialog_unmodified_edit_color db 38h |
4768 | dialog_unmodified_edit_color db 38h |
4670 | dialog_normal_btn_color db 70h |
4769 | dialog_normal_btn_color db 70h |
4671 | dialog_selected_btn_color db 30h |
4770 | dialog_selected_btn_color db 30h |
4672 | ; ।ã¯à¥¦¤¥¨ï ¨ ®è¨¡ª¨ |
4771 | ; ।ã¯à¥¦¤¥¨ï ¨ ®è¨¡ª¨ |
4673 | warning_colors: |
4772 | warning_colors: |
4674 | ; !!! ¤®«¦ë ¡ëâì ⥠¦¥ ¯®«ï ¨ ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¤«ï ®¡ëçëå ¤¨ «®£®¢ !!! |
4773 | ; !!! ¤®«¦ë ¡ëâì ⥠¦¥ ¯®«ï ¨ ¢ ⮬ ¦¥ ¯®à浪¥, çâ® ¨ ¤«ï ®¡ëçëå ¤¨ «®£®¢ !!! |
4675 | warning_main_color db 4Fh |
4774 | warning_main_color db 4Fh |
4676 | warning_border_color db 4Fh |
4775 | warning_border_color db 4Fh |
4677 | warning_header_color db 4Fh |
4776 | warning_header_color db 4Fh |
4678 | warning_edit_color db 30h |
4777 | warning_edit_color db 30h |
4679 | warning_unmodified_edit_color db 38h |
4778 | warning_unmodified_edit_color db 38h |
4680 | warning_normal_btn_color db 4Fh |
4779 | warning_normal_btn_color db 4Fh |
4681 | warning_selected_btn_color db 70h |
4780 | warning_selected_btn_color db 70h |
4682 | ; ¥î |
4781 | ; ¥î |
4683 | menu_normal_color db 3Fh |
4782 | menu_normal_color db 3Fh |
4684 | menu_selected_color db 0Fh |
4783 | menu_selected_color db 0Fh |
4685 | menu_highlight_color db 3Eh |
4784 | menu_highlight_color db 3Eh |
4686 | menu_selected_highlight_color db 0Eh |
4785 | menu_selected_highlight_color db 0Eh |
4687 | menu_border_color db 3Fh |
4786 | menu_border_color db 3Fh |
4688 | menu_header_color db 3Fh |
4787 | menu_header_color db 3Fh |
4689 | menu_scrollbar_color db 3Fh |
4788 | menu_scrollbar_color db 3Fh |
4690 | ; ¨¥©ª ª« ¢¨è |
4789 | ; ¨¥©ª ª« ¢¨è |
4691 | keybar_number_color db 7 |
4790 | keybar_number_color db 7 |
4692 | keybar_name_color db 30h |
4791 | keybar_name_color db 30h |
4693 | keybar_bgr_color db 7 |
4792 | keybar_bgr_color db 7 |
4694 | ; ®¬ ¤ ï áâப |
4793 | ; ®¬ ¤ ï áâப |
4695 | cmdbar_normal_color db 7 |
4794 | cmdbar_normal_color db 7 |
4696 | cmdbar_prefix_color db 7 |
4795 | cmdbar_prefix_color db 7 |
4697 | ; à®á¬®âà騪 |
4796 | ; à®á¬®âà騪 |
4698 | view_normal_color db 1Bh |
4797 | view_normal_color db 1Bh |
4699 | view_status_color db 30h |
4798 | view_status_color db 30h |
4700 | view_arrows_color db 1Eh |
4799 | view_arrows_color db 1Eh |
4701 | 4800 | ||
4702 | ; ®¤á¢¥âª ä ©«®¢ |
4801 | ; ®¤á¢¥âª ä ©«®¢ |
4703 | highlight_num_groups dd 10 |
4802 | highlight_num_groups dd 10 |
4704 | highlight_groups dd highlight_group0 |
4803 | highlight_groups dd highlight_group0 |
4705 | dd highlight_group1 |
4804 | dd highlight_group1 |
4706 | dd highlight_group2 |
4805 | dd highlight_group2 |
4707 | dd highlight_group3 |
4806 | dd highlight_group3 |
4708 | dd highlight_group4 |
4807 | dd highlight_group4 |
4709 | dd highlight_group5 |
4808 | dd highlight_group5 |
4710 | dd highlight_group6 |
4809 | dd highlight_group6 |
4711 | dd highlight_group7 |
4810 | dd highlight_group7 |
4712 | dd highlight_group8 |
4811 | dd highlight_group8 |
4713 | dd highlight_group9 |
4812 | dd highlight_group9 |
4714 | 4813 | ||
4715 | ; ®à¬ â ®¯¨á ¨ï £àã¯¯ë ¯®¤á¢¥âª¨: |
4814 | ; ®à¬ â ®¯¨á ¨ï £àã¯¯ë ¯®¤á¢¥âª¨: |
4716 | virtual at 0 |
4815 | virtual at 0 |
4717 | highlight: |
4816 | highlight: |
4718 | .NormalColor db ? |
4817 | .NormalColor db ? |
4719 | .CursorColor db ? |
4818 | .CursorColor db ? |
4720 | .IncludeAttributes db ? |
4819 | .IncludeAttributes db ? |
4721 | .Mask: ; ASCIIZ-string |
4820 | .Mask: ; ASCIIZ-string |
4722 | end virtual |
4821 | end virtual |
4723 | 4822 | ||
4724 | ; all highlight masks must be in lowercase! |
4823 | ; all highlight masks must be in lowercase! |
4725 | highlight_group0: |
4824 | highlight_group0: |
4726 | db 13h |
4825 | db 13h |
4727 | db 38h |
4826 | db 38h |
4728 | db 2 |
4827 | db 2 |
4729 | db '*',0 |
4828 | db '*',0 |
4730 | highlight_group1: |
4829 | highlight_group1: |
4731 | db 13h |
4830 | db 13h |
4732 | db 38h |
4831 | db 38h |
4733 | db 4 |
4832 | db 4 |
4734 | db '*',0 |
4833 | db '*',0 |
4735 | highlight_group2: |
4834 | highlight_group2: |
4736 | db 1Fh |
4835 | db 1Fh |
4737 | db 3Fh |
4836 | db 3Fh |
4738 | db 10h |
4837 | db 10h |
4739 | db '*|..',0 |
4838 | db '*|..',0 |
4740 | highlight_group3: |
4839 | highlight_group3: |
4741 | db 0 |
4840 | db 0 |
4742 | db 0 |
4841 | db 0 |
4743 | db 10h |
4842 | db 10h |
4744 | db '..',0 |
4843 | db '..',0 |
4745 | highlight_group4: |
4844 | highlight_group4: |
4746 | db 1Ah |
4845 | db 1Ah |
4747 | db 3Ah |
4846 | db 3Ah |
4748 | db 0 |
4847 | db 0 |
4749 | db '*.exe,*.com,*.bat,*.cmd',0 |
4848 | db '*.exe,*.com,*.bat,*.cmd',0 |
4750 | highlight_group5: |
4849 | highlight_group5: |
4751 | db 1Ah |
4850 | db 1Ah |
4752 | db 3Ah |
4851 | db 3Ah |
4753 | db 0 |
4852 | db 0 |
4754 | db '*|*.*',0 |
4853 | db '*|*.*',0 |
4755 | highlight_group6: |
4854 | highlight_group6: |
4756 | db 1Dh |
4855 | db 1Dh |
4757 | db 3Dh |
4856 | db 3Dh |
4758 | db 0 |
4857 | db 0 |
4759 | db '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],' |
4858 | db '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],' |
4760 | db '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],' |
4859 | db '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],' |
4761 | db '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,' |
4860 | db '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,' |
4762 | db '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0 |
4861 | db '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0 |
4763 | highlight_group7: |
4862 | highlight_group7: |
4764 | db 16h |
4863 | db 16h |
4765 | db 36h |
4864 | db 36h |
4766 | db 0 |
4865 | db 0 |
4767 | db '*.bak,*.tmp',0 |
4866 | db '*.bak,*.tmp',0 |
4768 | highlight_group8: |
4867 | highlight_group8: |
4769 | db 17h |
4868 | db 17h |
4770 | db 37h |
4869 | db 37h |
4771 | db 0 |
4870 | db 0 |
4772 | db '*.asm,*.inc',0 |
4871 | db '*.asm,*.inc',0 |
4773 | highlight_group9: |
4872 | highlight_group9: |
4774 | db 1Fh |
4873 | db 1Fh |
4775 | db 3Fh |
4874 | db 3Fh |
4776 | db 10h |
4875 | db 10h |
4777 | db '*',0 |
4876 | db '*',0 |
4778 | 4877 | ||
4779 | associations: |
4878 | associations: |
4780 | dd aAsm, tinypad, AsmMenu |
4879 | dd aAsm, tinypad, AsmMenu |
4781 | dd aInc, tinypad, 0 |
4880 | dd aInc, tinypad, 0 |
4782 | dd aTxt, tinypad, 0 |
4881 | dd aTxt, tinypad, 0 |
4783 | dd aJpg, jpegview, 0 |
4882 | dd aJpg, jpegview, 0 |
4784 | dd aJpeg, jpegview, 0 |
4883 | dd aJpeg, jpegview, 0 |
4785 | dd aGif, gifview, GifMenu |
4884 | dd aGif, gifview, GifMenu |
4786 | dd aWav, ac97, 0 |
4885 | dd aWav, ac97, 0 |
4787 | dd aMp3, ac97, 0 |
4886 | dd aMp3, ac97, 0 |
4788 | dd aMid, midamp, 0 |
4887 | dd aMid, midamp, 0 |
4789 | dd aBmp, mv, BmpMenu |
4888 | dd aBmp, mv, BmpMenu |
4790 | dd aPng, archer, 0 |
4889 | dd aPng, archer, 0 |
4791 | dd aRtf, rtfread, 0 |
4890 | dd aRtf, rtfread, 0 |
4792 | dd a3ds, view3ds, 0 |
4891 | dd a3ds, view3ds, 0 |
4793 | dd aLif, life2, 0 |
4892 | dd aLif, life2, 0 |
4794 | associations_end: |
4893 | associations_end: |
4795 | 4894 | ||
4796 | aAsm db 'asm',0 |
4895 | aAsm db 'asm',0 |
4797 | aInc db 'inc',0 |
4896 | aInc db 'inc',0 |
4798 | aTxt db 'txt',0 |
4897 | aTxt db 'txt',0 |
4799 | tinypad db '/rd/1/TinyPad',0 |
4898 | tinypad db '/rd/1/TinyPad',0 |
4800 | 4899 | ||
4801 | aJpg db 'jpg',0 |
4900 | aJpg db 'jpg',0 |
4802 | aJpeg db 'jpeg',0 |
4901 | aJpeg db 'jpeg',0 |
4803 | jpegview db '/rd/1/JpegView',0 |
4902 | jpegview db '/rd/1/JpegView',0 |
4804 | 4903 | ||
4805 | aGif db 'gif',0 |
4904 | aGif db 'gif',0 |
4806 | gifview db '/rd/1/GIFVIEW',0 |
4905 | gifview db '/rd/1/GIFVIEW',0 |
4807 | 4906 | ||
4808 | aWav db 'wav',0 |
4907 | aWav db 'wav',0 |
4809 | aMp3 db 'mp3',0 |
4908 | aMp3 db 'mp3',0 |
4810 | ac97 db '/rd/1/AC97SND',0 |
4909 | ac97 db '/rd/1/AC97SND',0 |
4811 | 4910 | ||
4812 | aMid db 'mid',0 |
4911 | aMid db 'mid',0 |
4813 | midamp db '/rd/1/MIDAMP',0 |
4912 | midamp db '/rd/1/MIDAMP',0 |
4814 | 4913 | ||
4815 | aBmp db 'bmp',0 |
4914 | aBmp db 'bmp',0 |
4816 | mv db '/rd/1/MV',0 |
4915 | mv db '/rd/1/MV',0 |
4817 | 4916 | ||
4818 | aPng db 'png',0 |
4917 | aPng db 'png',0 |
4819 | archer db '/rd/1/@rcher',0 |
4918 | archer db '/rd/1/@rcher',0 |
4820 | 4919 | ||
4821 | aRtf db 'rtf',0 |
4920 | aRtf db 'rtf',0 |
4822 | rtfread db '/rd/1/RtfRead',0 |
4921 | rtfread db '/rd/1/RtfRead',0 |
4823 | 4922 | ||
4824 | a3ds db '3ds',0 |
4923 | a3ds db '3ds',0 |
4825 | view3ds db '/rd/1/3d/view3ds',0 |
4924 | view3ds db '/rd/1/3d/view3ds',0 |
4826 | 4925 | ||
4827 | aLif db 'lif',0 |
4926 | aLif db 'lif',0 |
4828 | life2 db '/rd/1/demos/life2',0 |
4927 | life2 db '/rd/1/demos/life2',0 |
4829 | 4928 | ||
4830 | AsmMenu: |
4929 | AsmMenu: |
4831 | dd aEdit, tinypad |
4930 | dd aEdit, tinypad |
4832 | dd aCompile, fasm |
4931 | dd aCompile, fasm |
4833 | dd 0 |
4932 | dd 0 |
4834 | BmpMenu: |
4933 | BmpMenu: |
4835 | dd aView, mv |
4934 | dd aView, mv |
4836 | dd aEdit, animage |
4935 | dd aEdit, animage |
4837 | dd 0 |
4936 | dd 0 |
4838 | GifMenu: |
4937 | GifMenu: |
4839 | dd aView, gifview |
4938 | dd aView, gifview |
4840 | dd aEdit, animage |
4939 | dd aEdit, animage |
4841 | dd 0 |
4940 | dd 0 |
4842 | 4941 | ||
4843 | if lang eq en |
4942 | if lang eq en |
4844 | aView db '&View',0 |
4943 | aView db '&View',0 |
4845 | aCompile db '&Compile',0 |
4944 | aCompile db '&Compile',0 |
4846 | aEdit db '&Edit',0 |
4945 | aEdit db '&Edit',0 |
4847 | else |
4946 | else |
4848 | aView db '&à®á¬®âà',0 |
4947 | aView db '&à®á¬®âà',0 |
4849 | aCompile db '&®¬¯¨«¨à®¢ âì',0 |
4948 | aCompile db '&®¬¯¨«¨à®¢ âì',0 |
4850 | aEdit db '&¥¤ ªâ®à',0 |
4949 | aEdit db '&¥¤ ªâ®à',0 |
4851 | end if |
4950 | end if |
4852 | 4951 | ||
4853 | fasm db '/rd/1/develop/fasm',0 |
4952 | fasm db '/rd/1/develop/fasm',0 |
4854 | animage db '/rd/1/animage',0 |
4953 | animage db '/rd/1/animage',0 |
4855 | 4954 | ||
4856 | bConfirmDelete db 1 |
4955 | bConfirmDelete db 1 |
- | 4956 | bConfirmDeleteIncomplete db 0 |
|
4857 | 4957 | ||
4858 | ; ¤¥áì § ª 稢 îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ |
4958 | ; ¤¥áì § ª 稢 îâáï ª®ä¨£ãà æ¨®ë¥ ¤ ë¥ |
4859 | 4959 | ||
4860 | bWasE0 db 0 |
4960 | bWasE0 db 0 |
4861 | ctrlstate db 0 |
4961 | ctrlstate db 0 |
4862 | 4962 | ||
4863 | align 4 |
4963 | align 4 |
4864 | ; ®®¡é¥¨¥ ® ®¡«®¬¥ ¯à¨ ¢ë¤¥«¥¨¨ ¯ ¬ï⨠|
4964 | ; ®®¡é¥¨¥ ® ®¡«®¬¥ ¯à¨ ¢ë¤¥«¥¨¨ ¯ ¬ï⨠|
4865 | nomem_dlgdata: |
4965 | nomem_dlgdata: |
4866 | dd 2 |
4966 | dd 2 |
4867 | dd -1 |
4967 | dd -1 |
4868 | dd -1 |
4968 | dd -1 |
4869 | dd 12 |
4969 | dd 12 |
4870 | dd 2 |
4970 | dd 2 |
4871 | dd 1 |
4971 | dd 1 |
4872 | dd 1 |
4972 | dd 1 |
4873 | dd aError |
4973 | dd aError |
4874 | rb 4 |
4974 | rb 4 |
4875 | dd 0 |
4975 | dd 0 |
4876 | dd 0 |
4976 | dd 0 |
4877 | dd 2 |
4977 | dd 2 |
4878 | ; áâப "No memory" |
4978 | ; áâப "No memory" |
4879 | dd 1 |
4979 | dd 1 |
4880 | dd 1,0,10,0 |
4980 | dd 1,0,10,0 |
4881 | dd aNoMemory |
4981 | dd aNoMemory |
4882 | dd 1 |
4982 | dd 1 |
4883 | ; ª®¯ª "Ok" |
4983 | ; ª®¯ª "Ok" |
4884 | dd 2 |
4984 | dd 2 |
4885 | dd 4,1,7,1 |
4985 | dd 4,1,7,1 |
4886 | dd aOk |
4986 | dd aOk |
4887 | dd 0xD |
4987 | dd 0xD |
4888 | 4988 | ||
4889 | f8_confirm_dlgdata: |
4989 | f8_confirm_dlgdata: |
4890 | dd 1 |
4990 | dd 1 |
4891 | .x dd -1 |
4991 | .x dd -1 |
4892 | .y dd -1 |
4992 | .y dd -1 |
4893 | .width dd ? |
4993 | .width dd ? |
4894 | .height dd 3 |
4994 | .height dd 3 |
4895 | dd 4 |
4995 | dd 4 |
4896 | dd 2 |
4996 | dd 2 |
4897 | dd aDeleteCaption |
4997 | dd aDeleteCaption |
4898 | .main_color db ? |
4998 | .main_color db ? |
4899 | .border_color db ? |
4999 | .border_color db ? |
4900 | .header_color db ? |
5000 | .header_color db ? |
4901 | db 0 |
5001 | db 0 |
4902 | dd 0 |
5002 | dd 0 |
4903 | dd 0 |
5003 | dd 0 |
4904 | dd 4 |
5004 | dd 4 |
4905 | ; áâப "ë å®â¨â¥ 㤠«¨âì ..." |
5005 | ; áâப "ë å®â¨â¥ 㤠«¨âì ..." |
4906 | dd 1 |
5006 | dd 1 |
4907 | dd 1,0 |
5007 | dd 1,0 |
4908 | .width2 dd ? |
5008 | .width2 dd ? |
4909 | dd 0 |
5009 | dd 0 |
4910 | dd aConfirmDeleteTextBuf |
5010 | dd aConfirmDeleteTextBuf |
4911 | dd 1 |
5011 | dd 1 |
4912 | ; áâப á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ |
5012 | ; áâப á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ |
4913 | dd 1 |
5013 | dd 1 |
4914 | dd 1,1 |
5014 | dd 1,1 |
4915 | .width3 dd ? |
5015 | .width3 dd ? |
4916 | dd 1 |
5016 | dd 1 |
4917 | .name dd ? |
5017 | .name dd ? |
4918 | dd 1 |
5018 | dd 1 |
4919 | ; ª®¯ª "㤠«¨âì" |
5019 | ; ª®¯ª "㤠«¨âì" |
4920 | .del_btn: |
5020 | .del_btn: |
4921 | dd 2 |
5021 | dd 2 |
4922 | .del_x1 dd ? |
5022 | .del_x1 dd ? |
4923 | dd 2 |
5023 | dd 2 |
4924 | .del_x2 dd ? |
5024 | .del_x2 dd ? |
4925 | dd 2 |
5025 | dd 2 |
4926 | dd aDelete |
5026 | dd aDelete |
4927 | .flags1 dd 4 |
5027 | .flags1 dd 0xC |
4928 | ; ª®¯ª "®â¬¥¨âì" |
5028 | ; ª®¯ª "®â¬¥¨âì" |
4929 | dd 2 |
5029 | dd 2 |
4930 | .cnl_x1 dd ? |
5030 | .cnl_x1 dd ? |
4931 | dd 2 |
5031 | dd 2 |
4932 | .cnl_x2 dd ? |
5032 | .cnl_x2 dd ? |
4933 | dd 2 |
5033 | dd 2 |
4934 | dd aCancel |
5034 | dd aCancel |
4935 | .flags2 dd 0 |
5035 | .flags2 dd 8 |
4936 | 5036 | ||
4937 | ; ¤¨ «®£ ª®¯¨à®¢ ¨ï |
5037 | ; ¤¨ «®£ ª®¯¨à®¢ ¨ï |
4938 | copy_dlgdata: |
5038 | copy_dlgdata: |
4939 | dd 1 |
5039 | dd 1 |
4940 | .x dd -1 |
5040 | .x dd -1 |
4941 | .y dd -1 |
5041 | .y dd -1 |
4942 | .width dd ? |
5042 | .width dd ? |
4943 | .height dd 4 |
5043 | .height dd 4 |
4944 | dd 4 |
5044 | dd 4 |
4945 | dd 2 |
5045 | dd 2 |
4946 | dd aCopyCaption |
5046 | dd aCopyCaption |
4947 | .main_color db ? |
5047 | .main_color db ? |
4948 | .border_color db ? |
5048 | .border_color db ? |
4949 | .header_color db ? |
5049 | .header_color db ? |
4950 | db 0 |
5050 | db 0 |
4951 | dd 0 |
5051 | dd 0 |
4952 | dd 0 |
5052 | dd 0 |
4953 | dd 4 |
5053 | dd 4 |
4954 | ; áâப '®¯¨à®¢ âì "%s" ¢:' |
5054 | ; áâப '®¯¨à®¢ âì "%s" ¢:' |
4955 | dd 1 |
5055 | dd 1 |
4956 | dd 1,0 |
5056 | dd 1,0 |
4957 | .width2 dd ? |
5057 | .width2 dd ? |
4958 | dd 0 |
5058 | dd 0 |
4959 | dd CopySourceTextBuf |
5059 | dd CopySourceTextBuf |
4960 | dd 0 |
5060 | dd 0 |
4961 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ § 票ï |
5061 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ä ©« /¯ ¯ª¨ § 票ï |
4962 | dd 3 |
5062 | dd 3 |
4963 | dd 1,1 |
5063 | dd 1,1 |
4964 | .width3 dd ? |
5064 | .width3 dd ? |
4965 | dd 1 |
5065 | dd 1 |
4966 | dd CopyDestEditBuf |
5066 | dd CopyDestEditBuf |
4967 | .flags0 dd 0 |
5067 | .flags0 dd 0 |
4968 | ; ª®¯ª "ª®¯¨à®¢ âì" |
5068 | ; ª®¯ª "ª®¯¨à®¢ âì" |
4969 | .copy_btn: |
5069 | .copy_btn: |
4970 | dd 2 |
5070 | dd 2 |
4971 | .copy_x1 dd ? |
5071 | .copy_x1 dd ? |
4972 | dd 3 |
5072 | dd 3 |
4973 | .copy_x2 dd ? |
5073 | .copy_x2 dd ? |
4974 | dd 3 |
5074 | dd 3 |
4975 | dd aCopy |
5075 | dd aCopy |
4976 | .flags1 dd 18h |
5076 | .flags1 dd 18h |
4977 | ; ª®¯ª "®â¬¥¨âì" |
5077 | ; ª®¯ª "®â¬¥¨âì" |
4978 | dd 2 |
5078 | dd 2 |
4979 | .cnl_x1 dd ? |
5079 | .cnl_x1 dd ? |
4980 | dd 3 |
5080 | dd 3 |
4981 | .cnl_x2 dd ? |
5081 | .cnl_x2 dd ? |
4982 | dd 3 |
5082 | dd 3 |
4983 | dd aCancelB |
5083 | dd aCancelB |
4984 | .flags2 dd 8 |
5084 | .flags2 dd 8 |
- | 5085 | ||
- | 5086 | mkdir_dlgdata: |
|
- | 5087 | dd 1 |
|
- | 5088 | dd -1, -1 |
|
- | 5089 | .width dd ? |
|
- | 5090 | .height dd 4 |
|
- | 5091 | dd 4, 2 |
|
- | 5092 | dd aMkDirCaption |
|
- | 5093 | dd ? |
|
- | 5094 | dd 0 |
|
- | 5095 | dd 0 |
|
- | 5096 | dd 4 |
|
- | 5097 | ; âப "®§¤ âì ¯ ¯ªã" |
|
- | 5098 | dd 1 |
|
- | 5099 | dd 1,0,aMkDirLen,0 |
|
- | 5100 | dd aMkDir |
|
- | 5101 | dd 0 |
|
- | 5102 | ; ¯®«¥ । ªâ¨à®¢ ¨ï á ¨¬¥¥¬ ᮧ¤ ¢ ¥¬®© ¯ ¯ª¨ |
|
- | 5103 | dd 3 |
|
- | 5104 | dd 1,1 |
|
- | 5105 | .width2 dd ? |
|
- | 5106 | dd 1 |
|
- | 5107 | dd CopyDestEditBuf |
|
- | 5108 | .flags0 dd 0xC |
|
- | 5109 | ; ª®¯ª "த®«¦¨âì" |
|
- | 5110 | .cont_btn: |
|
- | 5111 | dd 2 |
|
- | 5112 | .cont_x1 dd ? |
|
- | 5113 | dd 3 |
|
- | 5114 | .cont_x2 dd ? |
|
- | 5115 | dd 3 |
|
- | 5116 | dd a_Continue |
|
- | 5117 | .flags1 dd 18h |
|
- | 5118 | ; ª®¯ª "®â¬¥¨âì" |
|
- | 5119 | dd 2 |
|
- | 5120 | .cnl_x1 dd ? |
|
- | 5121 | dd 3 |
|
- | 5122 | .cnl_x2 dd ? |
|
- | 5123 | dd 3 |
|
- | 5124 | dd aCancelB |
|
- | 5125 | .flags2 dd 8 |
|
- | 5126 | ||
- | 5127 | RetryOrCancelBtn: |
|
- | 5128 | dd aRetry |
|
- | 5129 | dd a_Cancel |
|
- | 5130 | DeleteOrKeepBtn: |
|
- | 5131 | dd a_Delete |
|
- | 5132 | dd aKeep |
|
- | 5133 | RetryOrIgnoreBtn: |
|
- | 5134 | dd aRetry |
|
4985 | 5135 | dd aIgnore |
|
4986 | 5136 | ||
4987 | if lang eq ru |
5137 | if lang eq ru |
4988 | aDeleteCaption db '¤ «¥¨¥',0 |
5138 | aDeleteCaption db '¤ «¥¨¥',0 |
4989 | aConfirmDeleteText db 'ë å®â¨â¥ 㤠«¨âì ',0 |
5139 | aConfirmDeleteText db 'ë å®â¨â¥ 㤠«¨âì ',0 |
4990 | aDeleteFolder db '¯ ¯ªã',0 |
5140 | aDeleteFolder db '¯ ¯ªã',0 |
4991 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
5141 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
4992 | aDeleteFile db 'ä ©«',0 |
5142 | aDeleteFile db 'ä ©«',0 |
4993 | aDelete db ' ¤ «¨âì ',0 |
5143 | aDelete db ' ¤ «¨âì ',0 |
4994 | aDeleteLength = $ - aDelete - 1 |
5144 | aDeleteLength = $ - aDelete - 1 |
4995 | aCancel db ' ⬥¨âì ',0 |
5145 | aCancel db ' ⬥¨âì ',0 |
4996 | aCancelLength = $ - aCancel - 1 |
5146 | aCancelLength = $ - aCancel - 1 |
4997 | aCancelB db '[ ⬥¨âì ]',0 |
5147 | aCancelB db '[ ⬥¨âì ]',0 |
4998 | aCancelBLength = $ - aCancelB - 1 |
5148 | aCancelBLength = $ - aCancelB - 1 |
4999 | aCopyCaption db '®¯¨à®¢ ¨¥',0 |
5149 | aCopyCaption db '®¯¨à®¢ ¨¥',0 |
5000 | aCopy db '[ ®¯¨à®¢ âì ]',0 |
5150 | aCopy db '[ ®¯¨à®¢ âì ]',0 |
5001 | aCopyLength = $ - aCopy - 1 |
5151 | aCopyLength = $ - aCopy - 1 |
- | 5152 | a_Continue db '[ த®«¦¨âì ]',0 |
|
- | 5153 | a_ContinueLength = $ - a_Continue - 1 |
|
5002 | aCopy1 db '®¯¨à®¢ âì "',0 |
5154 | aCopy1 db '®¯¨à®¢ âì "',0 |
5003 | aCopy2 db '" ¢:',0 |
5155 | aCopy2 db '" ¢:',0 |
5004 | aError db '訡ª ',0 |
5156 | aError db '訡ª ',0 |
5005 | aContinue db 'த®«¦¨âì',0 |
5157 | aContinue db 'த®«¦¨âì',0 |
5006 | aRetry db '®¢â®à¨âì',0 |
5158 | aRetry db '®¢â®à¨âì',0 |
- | 5159 | a_Cancel db '⬥¨âì',0 |
|
- | 5160 | a_Delete db '¤ «¨âì',0 |
|
5007 | error0msg db 'âà ®... ¥â ®è¨¡ª¨',0 |
5161 | error0msg db 'âà ®... ¥â ®è¨¡ª¨',0 |
5008 | error1msg db 'âà ®... ¥ ®¯à¥¤¥«¥ ¡ § ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0 |
5162 | error1msg db 'âà ®... ¥ ®¯à¥¤¥«¥ ¡ § ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0 |
5009 | error2msg db 'ãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë',0 |
5163 | error2msg db 'ãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë',0 |
5010 | error3msg db '¥¨§¢¥áâ ï ä ©«®¢ ï á¨á⥬ ',0 |
5164 | error3msg db '¥¨§¢¥áâ ï ä ©«®¢ ï á¨á⥬ ',0 |
5011 | error4msg db 'âà ®... 訡ª 4',0 |
5165 | error4msg db 'âà ®... 訡ª 4',0 |
5012 | error5msg db ' ©« ¥ ©¤¥',0 |
5166 | error5msg db ' ©« ¥ ©¤¥',0 |
5013 | error6msg db ' ©« § ª®ç¨«áï',0 |
5167 | error6msg db ' ©« § ª®ç¨«áï',0 |
5014 | error7msg db 'âà ®... ª § â¥«ì ¢¥ ¯ ¬ï⨠¯à¨«®¦¥¨ï',0 |
5168 | error7msg db 'âà ®... ª § â¥«ì ¢¥ ¯ ¬ï⨠¯à¨«®¦¥¨ï',0 |
5015 | error8msg db '¨áª § ¯®«¥',0 |
5169 | error8msg db '¨áª § ¯®«¥',0 |
5016 | error9msg db ' ©«®¢ ï áâàãªâãà à §àãè¥ ',0 |
5170 | error9msg db ' ©«®¢ ï áâàãªâãà à §àãè¥ ',0 |
5017 | error10msg db '®áâ㯠§ ¯à¥éñ',0 |
5171 | error10msg db '®áâ㯠§ ¯à¥éñ',0 |
5018 | error11msg db '訡ª ãáâனá⢠',0 |
5172 | error11msg db '訡ª ãáâனá⢠',0 |
5019 | error30msg db '¥¤®áâ â®ç® ¯ ¬ïâ¨',0 |
5173 | error30msg db '¥¤®áâ â®ç® ¯ ¬ïâ¨',0 |
5020 | error31msg db ' ©« ¥ ï¥âáï ¨á¯®«ï¥¬ë¬',0 |
5174 | error31msg db ' ©« ¥ ï¥âáï ¨á¯®«ï¥¬ë¬',0 |
5021 | error32msg db '«¨èª®¬ ¬®£® ¯à®æ¥áᮢ',0 |
5175 | error32msg db '«¨èª®¬ ¬®£® ¯à®æ¥áᮢ',0 |
5022 | aUnknownError db '¥¨§¢¥áâë© ª®¤ ®è¨¡ª¨: ',0 |
5176 | aUnknownError db '¥¨§¢¥áâë© ª®¤ ®è¨¡ª¨: ',0 |
5023 | aCannotReadFolder db '¥ ¬®£ã ¯à®ç¨â âì ¯ ¯ªã',0 |
5177 | aCannotReadFolder db '¥ ¬®£ã ¯à®ç¨â âì ¯ ¯ªã',0 |
- | 5178 | aRunError db '訡ª ¯à¨ § ¯ã᪥ ¯à®£à ¬¬ë:',0 |
|
- | 5179 | aFileNameTooBig db '®«®¥ ¨¬ï ä ©« ᫨誮¬ ¤«¨®¥',0 |
|
- | 5180 | aFolderNameTooBig db '®«®¥ ¨¬ï ¯ ¯ª¨ ᫨誮¬ ¤«¨®¥',0 |
|
- | 5181 | aCmdLineTooBig db '®¬ ¤ ï áâப ¯à¥¢ëè ¥â £à ¨æã OS ¢ 256 ᨬ¢®«®¢',0 |
|
- | 5182 | aCannotCopyToSelf db ' ©« ¥ ¬®¦¥â ¡ëâì ᪮¯¨à®¢ ¢ á ¬®£® ᥡï',0 |
|
- | 5183 | aCannotReadFile db '¥ ¬®£ã ¯à®ç¨â âì ä ©«',0 |
|
- | 5184 | aIncompleteFile db 'ë« ¯®«ãç¥ ¥¯®«ë© ä ©«. ¤ «¨âì ¥£®?',0 |
|
- | 5185 | aKeep db 'áâ ¢¨âì',0 |
|
- | 5186 | aCannotWriteFile db '¥ ¬®£ã § ¯¨á âì ¢ ä ©«',0 |
|
- | 5187 | aCannotDeleteFile db '¥ ¬®£ã 㤠«¨âì ä ©«',0 |
|
- | 5188 | aCannotDeleteFolder db '¥ ¬®£ã 㤠«¨âì ¯ ¯ªã',0 |
|
- | 5189 | aIgnore db '£®à¨à®¢ âì',0 |
|
- | 5190 | aMkDirCaption db '®§¤ ¨¥ ¯ ¯ª¨',0 |
|
- | 5191 | aMkDir db '®§¤ âì ¯ ¯ªã',0 |
|
- | 5192 | aMkDirLen = $ - aMkDir - 1 |
|
- | 5193 | aCannotMakeFolder db '¥ ¬®£ã ᮧ¤ âì ¯ ¯ªã',0 |
|
5024 | else |
5194 | else |
5025 | aDeleteCaption db 'Delete',0 |
5195 | aDeleteCaption db 'Delete',0 |
5026 | aConfirmDeleteText db 'Do you wish to delete ',0 |
5196 | aConfirmDeleteText db 'Do you wish to delete ',0 |
5027 | aDeleteFolder db 'the folder',0 |
5197 | aDeleteFolder db 'the folder',0 |
5028 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
5198 | aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2 |
5029 | aDeleteFile db 'the file',0 |
5199 | aDeleteFile db 'the file',0 |
5030 | aDelete db ' Delete ',0 |
5200 | aDelete db ' Delete ',0 |
5031 | aDeleteLength = $ - aDelete - 1 |
5201 | aDeleteLength = $ - aDelete - 1 |
5032 | aCancel db ' Cancel ',0 |
5202 | aCancel db ' Cancel ',0 |
5033 | aCancelLength = $ - aCancel - 1 |
5203 | aCancelLength = $ - aCancel - 1 |
5034 | aCancelB db '[ Cancel ]',0 |
5204 | aCancelB db '[ Cancel ]',0 |
5035 | aCancelBLength = $ - aCancelB - 1 |
5205 | aCancelBLength = $ - aCancelB - 1 |
5036 | aCopyCaption db 'Copy',0 |
5206 | aCopyCaption db 'Copy',0 |
5037 | aCopy db '[ Copy ]',0 |
5207 | aCopy db '[ Copy ]',0 |
5038 | aCopyLength = $ - aCopy - 1 |
5208 | aCopyLength = $ - aCopy - 1 |
- | 5209 | a_Continue db '[ Continue ]',0 |
|
- | 5210 | a_ContinueLength = $ - a_Continue - 1 |
|
5039 | aCopy1 db 'Copy "',0 |
5211 | aCopy1 db 'Copy "',0 |
5040 | aCopy2 db '" to:',0 |
5212 | aCopy2 db '" to:',0 |
5041 | aError db 'Error',0 |
5213 | aError db 'Error',0 |
5042 | aContinue db 'Continue',0 |
5214 | aContinue db 'Continue',0 |
5043 | aRetry db 'Retry',0 |
5215 | aRetry db 'Retry',0 |
- | 5216 | a_Cancel db 'Cancel',0 |
|
- | 5217 | a_Delete db 'Delete',0 |
|
5044 | error0msg db 'Strange... No error',0 |
5218 | error0msg db 'Strange... No error',0 |
5045 | error1msg db 'Strange... Hard disk base and/or partition not defined',0 |
5219 | error1msg db 'Strange... Hard disk base and/or partition not defined',0 |
5046 | error2msg db 'The file system does not support this function',0 |
5220 | error2msg db 'The file system does not support this function',0 |
5047 | error3msg db 'Unknown file system',0 |
5221 | error3msg db 'Unknown file system',0 |
5048 | error4msg db 'Strange... Error 4',0 |
5222 | error4msg db 'Strange... Error 4',0 |
5049 | error5msg db 'File not found',0 |
5223 | error5msg db 'File not found',0 |
5050 | error6msg db 'End of file',0 |
5224 | error6msg db 'End of file',0 |
5051 | error7msg db 'Strange... Pointer lies outside of application memory',0 |
5225 | error7msg db 'Strange... Pointer lies outside of application memory',0 |
5052 | error8msg db 'Disk is full',0 |
5226 | error8msg db 'Disk is full',0 |
5053 | error9msg db 'File structure is destroyed',0 |
5227 | error9msg db 'File structure is destroyed',0 |
5054 | error10msg db 'Access denied',0 |
5228 | error10msg db 'Access denied',0 |
5055 | error11msg db 'Device error',0 |
5229 | error11msg db 'Device error',0 |
5056 | error30msg db 'Not enough memory',0 |
5230 | error30msg db 'Not enough memory',0 |
5057 | error31msg db 'File is not executable',0 |
5231 | error31msg db 'File is not executable',0 |
5058 | error32msg db 'Too many processes',0 |
5232 | error32msg db 'Too many processes',0 |
5059 | aUnknownError db 'Unknown error code: ',0 |
5233 | aUnknownError db 'Unknown error code: ',0 |
5060 | aCannotReadFolder db 'Cannot read folder',0 |
5234 | aCannotReadFolder db 'Cannot read folder',0 |
- | 5235 | aRunError db 'Cannot execute program:',0 |
|
- | 5236 | aFileNameTooBig db 'Full file name is too long',0 |
|
- | 5237 | aFolderNameTooBig db 'Full folder name is too long',0 |
|
- | 5238 | aCmdLineTooBig db 'Command line is too long (OS limit is 256 symbols)',0 |
|
- | 5239 | aCannotCopyToSelf db 'File cannot be copied onto itself',0 |
|
- | 5240 | aCannotReadFile db 'Cannot read file',0 |
|
- | 5241 | aIncompleteFile db 'Incomplete file was retrieved. Delete it?',0 |
|
- | 5242 | aKeep db 'Keep',0 |
|
- | 5243 | aCannotWriteFile db 'Cannot write file',0 |
|
- | 5244 | aCannotDeleteFile db 'Cannot delete file',0 |
|
- | 5245 | aCannotDeleteFolder db 'Cannot delete folder',0 |
|
- | 5246 | aIgnore db 'Ignore',0 |
|
- | 5247 | aMkDirCaption db 'Make folder',0 |
|
- | 5248 | aMkDir db 'Create the folder',0 |
|
- | 5249 | aMkDirLen = $ - aMkDir - 1 |
|
- | 5250 | aCannotMakeFolder db 'Cannot create folder',0 |
|
5061 | end if |
5251 | end if |
5062 | aOk db 'OK',0 |
5252 | aOk db 'OK',0 |
5063 | aNoMemory db 'No memory!',0 |
5253 | aNoMemory db 'No memory!',0 |
5064 | 5254 | ||
5065 | execinfo: |
5255 | execinfo: |
5066 | dd 7 |
5256 | dd 7 |
5067 | dd 0 |
5257 | dd 0 |
5068 | execparams dd 0 |
5258 | execparams dd 0 |
5069 | dd 0 |
5259 | dd 0 |
5070 | dd 0 |
5260 | dd 0 |
5071 | db 0 |
5261 | db 0 |
5072 | execptr dd ? |
5262 | execptr dd ? |
5073 | 5263 | ||
5074 | IncludeIGlobals |
5264 | IncludeIGlobals |
5075 | 5265 | ||
5076 | i_end: |
5266 | i_end: |
5077 | 5267 | ||
5078 | IncludeUGlobals |
5268 | IncludeUGlobals |
5079 | 5269 | ||
5080 | execdata rb 1024 |
5270 | execdata rb 1024 |
- | 5271 | execdataend: |
|
5081 | align 4 |
5272 | align 4 |
5082 | attrinfo.attr rb 40 |
5273 | attrinfo.attr rb 40 |
5083 | 5274 | ||
5084 | panel1_data: |
5275 | panel1_data: |
5085 | panel1_left dd ? |
5276 | panel1_left dd ? |
5086 | panel1_top dd ? |
5277 | panel1_top dd ? |
5087 | panel1_width dd ? |
5278 | panel1_width dd ? |
5088 | panel1_height dd ? |
5279 | panel1_height dd ? |
5089 | panel1_index dd ? |
5280 | panel1_index dd ? |
5090 | panel1_start dd ? |
5281 | panel1_start dd ? |
5091 | panel1_colsz dd ? |
5282 | panel1_colsz dd ? |
5092 | panel1_colst dd ? |
5283 | panel1_colst dd ? |
5093 | panel1_sortmode db ? |
5284 | panel1_sortmode db ? |
5094 | rb 3 |
5285 | rb 3 |
5095 | panel1_nfa dd ? |
5286 | panel1_nfa dd ? |
5096 | panel1_numfiles dd ? |
5287 | panel1_numfiles dd ? |
5097 | panel1_files dd ? |
5288 | panel1_files dd ? |
5098 | panel1_dir rb 1024 |
5289 | panel1_dir rb 1024 |
5099 | 5290 | ||
5100 | panel2_data: |
5291 | panel2_data: |
5101 | panel2_left dd ? |
5292 | panel2_left dd ? |
5102 | panel2_top dd ? |
5293 | panel2_top dd ? |
5103 | panel2_width dd ? |
5294 | panel2_width dd ? |
5104 | panel2_height dd ? |
5295 | panel2_height dd ? |
5105 | panel2_index dd ? |
5296 | panel2_index dd ? |
5106 | panel2_start dd ? |
5297 | panel2_start dd ? |
5107 | panel2_colsz dd ? |
5298 | panel2_colsz dd ? |
5108 | panel2_colst dd ? |
5299 | panel2_colst dd ? |
5109 | panel2_sortmode db ? |
5300 | panel2_sortmode db ? |
5110 | rb 3 |
5301 | rb 3 |
5111 | panel2_nfa dd ? |
5302 | panel2_nfa dd ? |
5112 | panel2_numfiles dd ? |
5303 | panel2_numfiles dd ? |
5113 | panel2_files dd ? |
5304 | panel2_files dd ? |
5114 | panel2_dir rb 1024 |
5305 | panel2_dir rb 1024 |
5115 | 5306 | ||
5116 | ;console_data rb max_width*max_height*2 |
5307 | ;console_data rb max_width*max_height*2 |
5117 | 5308 | ||
5118 | nomem_dlgsavearea rb (12+4)*(3+3)*2 |
5309 | nomem_dlgsavearea rb (12+4)*(3+3)*2 |
5119 | 5310 | ||
5120 | cur_header rb max_width |
5311 | cur_header rb max_width |
5121 | tmp dd ? |
5312 | tmp dd ? |
5122 | 5313 | ||
5123 | skinh dd ? |
5314 | skinh dd ? |
5124 | std_colors rd 10 |
5315 | std_colors rd 10 |
5125 | 5316 | ||
5126 | min_y dd ? |
5317 | min_y dd ? |
5127 | max_y dd ? |
5318 | max_y dd ? |
5128 | min_x dd ? |
5319 | min_x dd ? |
5129 | max_x dd ? |
5320 | max_x dd ? |
5130 | used_width dd ? |
5321 | used_width dd ? |
5131 | used_height dd ? |
5322 | used_height dd ? |
5132 | 5323 | ||
5133 | wnd_width dd ? |
5324 | wnd_width dd ? |
5134 | wnd_height dd ? |
5325 | wnd_height dd ? |
5135 | 5326 | ||
5136 | column_left dd ? |
5327 | column_left dd ? |
5137 | column_top dd ? |
5328 | column_top dd ? |
5138 | column_width dd ? |
5329 | column_width dd ? |
5139 | column_height dd ? |
5330 | column_height dd ? |
5140 | column_index dd ? |
5331 | column_index dd ? |
5141 | 5332 | ||
5142 | scrpos dq ? |
5333 | scrpos dq ? |
5143 | viewer_right_side dq ? |
5334 | viewer_right_side dq ? |
5144 | 5335 | ||
5145 | saved_file_name: |
5336 | saved_file_name: |
5146 | procinfo rb 1024 |
5337 | procinfo rb 1024 |
5147 | lower_file_name = procinfo + 512 |
5338 | lower_file_name = procinfo + 512 |
5148 | 5339 | ||
5149 | error_msg rb 128 |
5340 | error_msg rb 128 |
5150 | 5341 | ||
5151 | prev_dir rb 1024 |
5342 | prev_dir rb 1024 |
5152 | 5343 | ||
5153 | driveinfo rb 32+304 |
5344 | driveinfo rb 32+304 |
5154 | tmpname rb 32 |
5345 | tmpname rb 32 |
5155 | 5346 | ||
5156 | screens dd ? |
5347 | screens dd ? |
5157 | num_screens dd ? |
5348 | num_screens dd ? |
5158 | active_screen_vtable dd ? |
5349 | active_screen_vtable dd ? |
5159 | active_screen_data dd ? |
5350 | active_screen_data dd ? |
5160 | 5351 | ||
5161 | aConfirmDeleteTextBuf rb aConfirmDeleteTextMax + 1 |
5352 | aConfirmDeleteTextBuf rb aConfirmDeleteTextMax + 1 |
5162 | CopySourceTextBuf rb 512 |
5353 | CopySourceTextBuf rb 512 |
5163 | CopyDestEditBuf rb 12+512+1 |
5354 | CopyDestEditBuf rb 12+512+1 |
5164 | .length = $ - CopyDestEditBuf - 9 |
5355 | .length = $ - CopyDestEditBuf - 13 |
5165 | 5356 | ||
5166 | align 4 |
5357 | align 4 |
5167 | layout rb 128 |
5358 | layout rb 128 |
5168 | 5359 | ||
5169 | copy_buffer_size = 32768 |
5360 | copy_buffer_size = 32768 |
5170 | copy_buffer rb copy_buffer_size |
5361 | copy_buffer rb copy_buffer_size |
5171 | 5362 | ||
5172 | ; stack |
5363 | ; stack |
5173 | align 4 |
5364 | align 4 |
5174 | rb 512 |
5365 | rb 512 |
5175 | stacktop: |
5366 | stacktop: |
5176 | 5367 | ||
5177 | mem:=>=>=>=>=>=> |
5368 | mem:=>=>=>=>=>=> |