Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; ; |
||
3 | ; SYSTEM X-TREE BROWSER ; |
||
4 | ; ; |
||
5 | ; Author: Pavlushin Evgeni waptap@mail.ru ; |
||
6 | ; site: www.deck4.narod.ru ; |
||
7 | ; ; |
||
8 | ; Compile with FASM for MenuetOS ; |
||
9 | ; ; |
||
10 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
11 | |||
12 | ;Bug report +bug deleted -bug not deleted |
||
13 | ;show/fade del notwork+ |
||
14 | ;64Ver Run file from HD bug deleted. |
||
15 | ;65Ver The bad scroll realization |
||
16 | ;66Ver The good scroll realization, url line anti-flick |
||
17 | ;67Ver Url line monolith procedure |
||
18 | ;68Ver Mini icon on left of file name |
||
19 | ;69Ver Getimg proc size minus 900 bytes |
||
20 | ;70Ver Del data area ramsize minus 140000 bytes |
||
21 | ;72Ver Quick sort, ramsize minus 200000 bytes |
||
22 | ;73Ver Url flick and out bugs delete |
||
23 | ;74Ver scroll bug deleted |
||
24 | ;75Ver hd partition fast change button. Add bmp,txt,exec,asm and inc icons. |
||
25 | ; sort type in headmenu bug del |
||
26 | ;78Ver directory extension bug fix by Asko Vuori |
||
27 | ;79Ver Asko Vuori volume label add and "put in command line" bug fix |
||
28 | ;80Ver prompt edit fatal bug deleted, antiflick when move list up/down |
||
29 | ;81Ver Save Dialog bug deleted |
||
30 | ;600000 bytes memory! |
||
31 | |||
32 | ;****************************************************************************** |
||
33 | use32 |
||
34 | org 0x0 |
||
35 | db 'MENUET01' ; 8 byte id |
||
36 | dd 0x01 ; header version |
||
37 | dd START ; program start |
||
38 | dd I_END ; program image size |
||
39 | dd RAM_END ; memory |
||
40 | dd RAM_END ; stack |
||
41 | dd param_area ,0x0 ; param,icon |
||
42 | ; dd 0,0 |
||
43 | |||
44 | ;****************************************************************************** |
||
45 | include 'lang.inc' |
||
46 | include 'macros.inc' |
||
47 | include 'ascl.inc' |
||
48 | include 'ascgl.inc' |
||
49 | gif_hash_offset = gif_hash |
||
50 | |||
51 | START: ; start of execution |
||
52 | ; //// Willow |
||
53 | mov eax,58 |
||
54 | mov ebx,MRUfile |
||
55 | int 0x40 |
||
56 | ; //// Willow |
||
57 | |||
58 | mov eax,40 |
||
59 | mov ebx,0100111b |
||
60 | int 0x40 |
||
61 | |||
62 | cmp byte [param_area],0 ;test parameters line |
||
63 | jne no_brow ;it's dialog |
||
64 | mov [browser],dword 1 ;it's browser |
||
65 | no_brow: |
||
66 | |||
67 | cmp [browser],dword 1 |
||
68 | je no_dlg |
||
69 | |||
70 | mov al,byte [param_area+5] |
||
71 | mov [dlg_type],al |
||
72 | |||
73 | mov eax,9 |
||
74 | mov ebx,procinfo |
||
75 | mov ecx,-1 |
||
76 | int 0x40 |
||
77 | |||
78 | mov eax,dword [procinfo+30] |
||
79 | mov edi,MYPID+4-1 |
||
80 | mov ecx,4 |
||
81 | mov ebx,10 |
||
82 | cld |
||
83 | |||
84 | new_d: |
||
85 | xor edx,edx |
||
86 | div ebx |
||
87 | add dl,'0' |
||
88 | mov [edi],dl |
||
89 | dec edi |
||
90 | loop new_d |
||
91 | |||
92 | movzx eax,byte [param_area] |
||
93 | sub eax,48 |
||
94 | imul eax,10 |
||
95 | movzx ebx,byte [param_area+1] |
||
96 | add eax,ebx |
||
97 | sub eax,48 |
||
98 | imul eax,10 |
||
99 | movzx ebx,byte [param_area+2] |
||
100 | add eax,ebx |
||
101 | sub eax,48 |
||
102 | imul eax,10 |
||
103 | movzx ebx,byte [param_area+3] |
||
104 | add eax,ebx |
||
105 | sub eax,48 |
||
106 | |||
107 | mov ecx,eax ;pid to ecx |
||
108 | mov eax,60 |
||
109 | mov ebx,2 |
||
110 | mov edx,MYPID |
||
111 | mov esi,4 |
||
112 | int 0x40 |
||
113 | no_dlg: |
||
114 | |||
115 | giftoimg but_file,tempimg |
||
116 | |||
117 | ;************************ |
||
118 | ; Get images |
||
119 | ;************************ |
||
120 | |||
121 | mov eax,0 ;x |
||
122 | mov ebx,0 ;y |
||
123 | mov esi,286 ;xs |
||
124 | mov edi,16 ;ys |
||
125 | mov ecx,tempimg ;src |
||
126 | mov edx,butimg ;dest |
||
127 | call getimgproc |
||
128 | mov eax,288 |
||
129 | mov esi,60 |
||
130 | mov edx,logoimg ;dest |
||
131 | call getimgproc |
||
132 | mov eax,0 ;x |
||
133 | mov ebx,16 ;y |
||
134 | mov esi,51 ;xs |
||
135 | mov edi,esi ;ys |
||
136 | mov edx,logoinfimg ;dest |
||
137 | call getimgproc |
||
138 | mov eax,51 ;x |
||
139 | mov esi,8 ;xs |
||
140 | mov edi,9 ;ys |
||
141 | mov edx,upsb ;dest |
||
142 | call getimgproc |
||
143 | mov eax,51+8 ;x |
||
144 | mov edx,dnsb ;dest |
||
145 | call getimgproc |
||
146 | |||
147 | mov eax,51+16 ;x |
||
148 | mov ebx,16 ;y |
||
149 | mov esi,12 ;xs |
||
150 | mov edi,9 ;ys |
||
151 | |||
152 | mov ecx,tempimg ;src |
||
153 | mov edx,hdico ;dest |
||
154 | mov ebp,9 |
||
155 | loogetimg: |
||
156 | call getimgproc |
||
157 | add edx,9*12*3+8 |
||
158 | add eax,12 |
||
159 | dec ebp |
||
160 | jnz loogetimg |
||
161 | jmp endgip |
||
162 | |||
163 | getimgproc: |
||
164 | pushad |
||
165 | mov dword [edx],esi ;xs |
||
166 | mov dword [edx+4],edi ;ys |
||
167 | |||
168 | mov ebp,eax |
||
169 | mov eax,dword [ecx] ;getx size |
||
170 | push edx |
||
171 | push ecx |
||
172 | lea ecx,[eax+2*eax] |
||
173 | |||
174 | mul ebx |
||
175 | add eax,ebp ;x |
||
176 | mov edx,ecx |
||
177 | lea eax,[eax+2*eax] ;eax=offset on imsrc |
||
178 | |||
179 | mov ecx,esi ;xs |
||
180 | mov ebx,edi ;ys |
||
181 | |||
182 | mov ebp,esi |
||
183 | |||
184 | pop edi |
||
185 | lea esi,[eax+8+edi] |
||
186 | |||
187 | pop edi |
||
188 | add edi,8 |
||
189 | |||
190 | cld |
||
191 | cyc: |
||
192 | movsw |
||
193 | movsb |
||
194 | dec ecx |
||
195 | jne cyc |
||
196 | add esi,edx |
||
197 | mov ecx,ebp ;xs |
||
198 | sub esi,ecx |
||
199 | sub esi,ecx |
||
200 | sub esi,ecx |
||
201 | dec ebx |
||
202 | jne cyc |
||
203 | |||
204 | popad |
||
205 | ret |
||
206 | |||
207 | endgip: |
||
208 | |||
209 | call read_directory |
||
210 | ; call convertation |
||
211 | red: |
||
212 | call draw_window ; at first, draw the window |
||
213 | |||
214 | still: |
||
215 | mov eax,9 |
||
216 | mov ebx,procinfo |
||
217 | mov ecx,-1 |
||
218 | int 0x40 |
||
219 | |||
220 | wtevent red,key,button |
||
221 | |||
222 | scrolltest: |
||
223 | mov eax,37 |
||
224 | mov ebx,2 |
||
225 | int 0x40 |
||
226 | cmp eax,1 |
||
227 | jne still |
||
228 | |||
229 | scrl: |
||
230 | mov eax,37 |
||
231 | mov ebx,1 |
||
232 | int 0x40 |
||
233 | mov ebx,eax |
||
234 | shr eax,16 ;x |
||
235 | and ebx,0xffff ;y |
||
236 | |||
237 | mov ebp,eax |
||
238 | sub ebp,[listx] ;[procinfo.x_size] |
||
239 | sub ebp,[listxsize] |
||
240 | add ebp,[scrollsize] |
||
241 | cmp ebp,dword [scrollsize] ;8 |
||
242 | ja menu_test ; still |
||
243 | |||
244 | mov ebp,ebx |
||
245 | sub ebp,[listy] ;76 ;up scroll |
||
246 | sub ebp,[scrollbutsize] |
||
247 | cmp ebp,0 |
||
248 | jl menu_test |
||
249 | mov [mousey],ebp |
||
250 | |||
251 | push eax ebx edx |
||
252 | mov edx,0 |
||
253 | mov eax,[listysize] |
||
254 | sub eax,2 |
||
255 | mov ebx,dword 10 |
||
256 | div ebx |
||
257 | |||
258 | mov [filelistsize],eax |
||
259 | mov ebx,eax |
||
260 | cmp ebx,[listsize] ;filelistsize in ebx |
||
261 | ja notusescrl |
||
262 | |||
263 | mov edx,0 |
||
264 | mov eax,[listysize] |
||
265 | sub eax,[scrollbutsize] |
||
266 | sub eax,[scrollbutsize] |
||
267 | |||
268 | shl eax,16+6 |
||
269 | div dword [listsize] |
||
270 | mul ebx |
||
271 | shr eax,16+6 |
||
272 | |||
273 | mov ebp,eax ; in ebp ysize of scroll |
||
274 | |||
275 | mov edx,0 |
||
276 | mov eax,[listsize] |
||
277 | |||
278 | mov ebx,[listysize] |
||
279 | sub ebx,[scrollbutsize] |
||
280 | sub ebx,[scrollbutsize] |
||
281 | shl eax,16 |
||
282 | div ebx ;dword [listsize] |
||
283 | mul [mousey] |
||
284 | shr eax,16 |
||
285 | |||
286 | mov ebx,[listsize] |
||
287 | sub ebx,[filelistsize] |
||
288 | cmp eax,ebx |
||
289 | jnae no_cor |
||
290 | mov eax,[listsize] ;correction for full dirs (1000 files) |
||
291 | sub eax,[filelistsize] |
||
292 | no_cor: |
||
293 | mov [filecursor],eax |
||
294 | |||
295 | jmp usescrl |
||
296 | notusescrl: |
||
297 | mov [filecursor],0 ;ebp |
||
298 | usescrl: |
||
299 | |||
300 | pop edx ebx eax |
||
301 | |||
302 | mov esi,[listy];[procinfo.y_size] |
||
303 | add esi,[listysize] |
||
304 | sub esi,[scrollbutsize] |
||
305 | |||
306 | cmp ebx,esi |
||
307 | jna oks ;menu_test ;still |
||
308 | |||
309 | sub esi,ebp |
||
310 | inc esi ;correction |
||
311 | cmp ebx,esi |
||
312 | ja menu_test ;still |
||
313 | oks: |
||
314 | |||
315 | mov [flick],1 |
||
316 | jmp anti_flick ;red |
||
317 | |||
318 | menu_test: |
||
319 | cmp [pmenu_draw],1 ;if menu is show, update all |
||
320 | jne still |
||
321 | mov [pmenu_draw],0 |
||
322 | jmp red ;update all window |
||
323 | |||
324 | ;this function not use in dialog when poup menu's is not used |
||
325 | ;in dialog's |
||
326 | |||
327 | ;=================== |
||
328 | ; Test keyboard |
||
329 | ;=================== |
||
330 | key: ; key |
||
331 | mov eax,2 |
||
332 | int 0x40 |
||
333 | cmp dword [focus],0 |
||
334 | jne con_edit |
||
335 | cmp ah,key_Up |
||
336 | jne no_upk |
||
337 | mov ebx,1 |
||
338 | jmp up |
||
339 | no_upk: |
||
340 | cmp ah,key_Down |
||
341 | jne no_downk |
||
342 | mov ebx,1 |
||
343 | jmp down |
||
344 | no_downk: |
||
345 | cmp ah,key_PgUp |
||
346 | jne no_pgup |
||
347 | mov ebx,10 |
||
348 | jmp up |
||
349 | no_pgup: |
||
350 | cmp ah,key_PgDown |
||
351 | jne no_pgdown |
||
352 | mov ebx,10 |
||
353 | jmp down |
||
354 | no_pgdown: |
||
355 | cmp ah,key_Enter |
||
356 | jne no_k_ent |
||
357 | jmp kfad |
||
358 | no_k_ent: |
||
359 | cmp ah,key_Bspace |
||
360 | je back |
||
361 | cmp ah,key_F2 |
||
362 | je viewset |
||
363 | cmp ah,key_F3 |
||
364 | je textopen |
||
365 | cmp ah,key_F5 |
||
366 | je copy_to_clip |
||
367 | cmp ah,key_F6 |
||
368 | je paste_from_clip |
||
369 | cmp ah,key_F11 |
||
370 | je edit_prompt |
||
371 | cmp ah,key_F12 |
||
372 | je update |
||
373 | jmp still |
||
374 | |||
375 | ; test input string |
||
376 | con_edit: |
||
377 | cmp ah,key_Enter |
||
378 | jne no_con_ent |
||
379 | not [focus] |
||
380 | jmp savetest |
||
381 | jmp update |
||
382 | no_con_ent: |
||
383 | cmp ah,key_Left |
||
384 | jne no_con_left |
||
385 | dec [cursor] |
||
386 | mov [flick],2 |
||
387 | jmp anti_flick ;red |
||
388 | no_con_left: |
||
389 | cmp ah,key_Right |
||
390 | jne no_con_right |
||
391 | inc [cursor] |
||
392 | mov [flick],2 |
||
393 | jmp anti_flick ;red |
||
394 | no_con_right: |
||
395 | cmp ah,key_Bspace |
||
396 | jne no_con_bspace |
||
397 | |||
398 | mov ecx,[cursor] |
||
399 | cmp ecx,0 |
||
400 | je still |
||
401 | dec ecx |
||
402 | mov ebp,[cursor] |
||
403 | lobsp: |
||
404 | mov bl,byte [path+ebp] |
||
405 | mov byte [path+ebp-1],bl |
||
406 | inc ebp |
||
407 | cmp ebp,100 |
||
408 | jne lobsp |
||
409 | dec [cursor] |
||
410 | mov [flick],2 |
||
411 | jmp anti_flick ;red |
||
412 | no_con_bspace: |
||
413 | |||
414 | mov ecx,[cursor] |
||
415 | dec ecx |
||
416 | mov ebp,100 ;[cursor] |
||
417 | losx: |
||
418 | mov bl,byte [path+ebp] |
||
419 | mov byte [path+ebp+1],bl |
||
420 | dec ebp |
||
421 | cmp ebp,ecx ;100 |
||
422 | jne losx |
||
423 | |||
424 | mov ebp, [cursor] |
||
425 | cmp ebp,100 |
||
426 | ja still |
||
427 | |||
428 | mov byte [path+ebp],ah |
||
429 | inc dword [cursor] |
||
430 | |||
431 | mov [flick],2 |
||
432 | jmp anti_flick |
||
433 | |||
434 | |||
435 | ;---------------------------- |
||
436 | ;Test on mouse button |
||
437 | ;----------------------------- |
||
438 | |||
439 | button: ; button |
||
440 | mov eax,17 |
||
441 | int 0x40 |
||
442 | |||
443 | cmp ah,2 ;Edit prompt line? |
||
444 | je edit_prompt |
||
445 | |||
446 | cmp ah,4 |
||
447 | jne no_filelist |
||
448 | |||
449 | mousetest: |
||
450 | mov eax,37 |
||
451 | mov ebx,1 |
||
452 | int 0x40 |
||
453 | mov ebx,eax |
||
454 | shr eax,16 ;x |
||
455 | and ebx,0xffff ;y |
||
456 | |||
457 | sub ebx,[listy] ;80 |
||
458 | mov [mousey],ebx |
||
459 | |||
460 | mov ecx,[listx] |
||
461 | cmp eax,ecx |
||
462 | jl still |
||
463 | add ecx,[listxsize] |
||
464 | cmp eax,ecx |
||
465 | jg still |
||
466 | |||
467 | filexadd: |
||
468 | |||
469 | ; Enter in directory |
||
470 | file_add: |
||
471 | mov edx,0 ;for div correct work div |
||
472 | mov eax,dword [mousey] |
||
473 | mov ebx,10 |
||
474 | div ebx |
||
475 | |||
476 | add eax,[filecursor] |
||
477 | jmp no_kfad |
||
478 | kfad: |
||
479 | mov eax,[filecursor] |
||
480 | no_kfad: |
||
481 | mov ebx,62 |
||
482 | mul ebx |
||
483 | mov ebp,eax |
||
484 | |||
485 | mov edi,paramtest ;clear param string |
||
486 | mov ecx,256 |
||
487 | mov al,0 |
||
488 | rep stosb |
||
489 | |||
490 | |||
491 | mov esi,0 |
||
492 | lll2: |
||
493 | mov al,byte [path+esi] |
||
494 | cmp al,byte 0 ;' '; '/' |
||
495 | je fis2 |
||
496 | cmp al,byte ' '; '/' |
||
497 | je fis2 |
||
498 | inc esi |
||
499 | cmp esi,100 |
||
500 | jna lll2 |
||
501 | jmp fis2 |
||
502 | |||
503 | fis2: |
||
504 | mov edi,ebp |
||
505 | cmp [convinfo+edi+26],dword 'FOL ' |
||
506 | jne openf |
||
507 | mov [path+esi],byte '/' |
||
508 | inc esi |
||
509 | mov ebp,8 |
||
510 | |||
511 | los: ;directory extension bug fix |
||
512 | mov al,[convinfo+edi] |
||
513 | cmp al,' ' |
||
514 | jz skip_name_space |
||
515 | mov [path+esi],al |
||
516 | inc esi |
||
517 | skip_name_space: |
||
518 | inc edi |
||
519 | dec ebp |
||
520 | jnz los |
||
521 | |||
522 | cmp byte [convinfo+edi],'.' |
||
523 | jnz dir_name_end |
||
524 | cmp byte [convinfo+edi+1],' ' |
||
525 | jz dir_name_end |
||
526 | mov ebp,4 |
||
527 | dir_ext_char: |
||
528 | mov al,[convinfo+edi] |
||
529 | cmp al,' ' |
||
530 | jz dir_name_end |
||
531 | mov [path+esi],al |
||
532 | inc esi |
||
533 | inc edi |
||
534 | dec ebp |
||
535 | jnz dir_ext_char |
||
536 | dir_name_end: |
||
537 | mov [filecursor],0 |
||
538 | |||
539 | ;los: |
||
540 | ; mov al,[convinfo+edi] |
||
541 | ; mov [path+esi],al |
||
542 | ; inc esi |
||
543 | ; inc edi |
||
544 | ; dec ebp |
||
545 | ; jnz los |
||
546 | ; mov [filecursor],0 |
||
547 | ; cmp byte [dlg_type],'S' |
||
548 | ; je savetest |
||
549 | ;no_save: |
||
550 | |||
551 | call read_directory |
||
552 | ;; call convertation |
||
553 | call draw_window |
||
554 | ; jmp still |
||
555 | |||
556 | ;Savetest |
||
557 | savetest: |
||
558 | cmp byte [dlg_type],'S' |
||
559 | je savetest_yes |
||
560 | jmp still |
||
561 | savetest_yes: |
||
562 | mov ecx,100 |
||
563 | savetestloop: |
||
564 | cmp [path+ecx],byte 0 |
||
565 | je next_byte |
||
566 | cmp [path+ecx],byte 32 |
||
567 | je next_byte |
||
568 | cmp [path+ecx],byte '.' |
||
569 | je openf ;it's file |
||
570 | ; cmp [path+ecx],byte '/' |
||
571 | ; je no_save ;it's dir |
||
572 | next_byte: |
||
573 | dec ecx |
||
574 | jnz savetestloop |
||
575 | jmp still |
||
576 | |||
577 | ;Open/Run file |
||
578 | |||
579 | openf: |
||
580 | mov ecx,100 |
||
581 | lopt: |
||
582 | mov al,[path+ecx] |
||
583 | mov [paramtest+ecx],al |
||
584 | dec ecx |
||
585 | jns lopt |
||
586 | |||
587 | ; mov ebp,100 |
||
588 | ;loow: |
||
589 | ; cmp [paramtest+ebp],byte '.' |
||
590 | ; je file_set |
||
591 | ; dec ebp |
||
592 | ; jnz loow ;is file set not file add |
||
593 | |||
594 | cmp dword [focus],0 ;if prompt line with focus no add file name from frame |
||
595 | jne file_set |
||
596 | |||
597 | mov [paramtest+esi],byte '/' |
||
598 | inc esi |
||
599 | mov ebp,8+4 |
||
600 | mov edx,edi |
||
601 | losf: |
||
602 | mov al,[convinfo+edi] |
||
603 | mov [paramtest+esi],al |
||
604 | inc esi |
||
605 | inc edi |
||
606 | dec ebp |
||
607 | jnz losf |
||
608 | file_set: |
||
609 | |||
610 | cmp [browser],0 |
||
611 | jne is_brow |
||
612 | |||
613 | movzx eax,byte [param_area] |
||
614 | sub eax,48 |
||
615 | imul eax,10 |
||
616 | movzx ebx,byte [param_area+1] |
||
617 | add eax,ebx |
||
618 | sub eax,48 |
||
619 | imul eax,10 |
||
620 | movzx ebx,byte [param_area+2] |
||
621 | add eax,ebx |
||
622 | sub eax,48 |
||
623 | imul eax,10 |
||
624 | movzx ebx,byte [param_area+3] |
||
625 | add eax,ebx |
||
626 | sub eax,48 |
||
627 | |||
628 | mov ecx,eax ;pid to ecx |
||
629 | mov eax,60 |
||
630 | mov ebx,2 |
||
631 | mov edx,paramtest |
||
632 | mov esi,100 |
||
633 | int 0x40 |
||
634 | |||
635 | jmp exit |
||
636 | |||
637 | is_brow: |
||
638 | |||
639 | ; cmp [convinfo+edi+26],dword 'Fvol' |
||
640 | ; je edit |
||
641 | |||
642 | mov eax,dword [convinfo+edx+8] |
||
643 | cmp eax,'. ' |
||
644 | jne noexecute |
||
645 | mov ebx,0 |
||
646 | jmp execute |
||
647 | noexecute: |
||
648 | |||
649 | cmp eax,'.JPG' |
||
650 | jne nojv |
||
651 | jpg_jpe: |
||
652 | mov ebx,jpgview |
||
653 | jmp run |
||
654 | nojv: |
||
655 | cmp eax,'.JPE' |
||
656 | je jpg_jpe |
||
657 | cmp eax,'.GIF' |
||
658 | jne nojv1 |
||
659 | mov ebx,gifview |
||
660 | jmp run |
||
661 | nojv1: |
||
662 | cmp eax,'.WAV' |
||
663 | jne nojv12 |
||
664 | mov ebx,ac97wav |
||
665 | jmp run |
||
666 | nojv12: |
||
667 | cmp eax,'.BMP' |
||
668 | jne nobv |
||
669 | mov ebx,bmpview |
||
670 | jmp run |
||
671 | nobv: |
||
672 | ; //// Willow |
||
673 | cmp eax,'.PNG' |
||
674 | jne nopngv |
||
675 | mov ebx,pngview |
||
676 | jmp run |
||
677 | nopngv: |
||
678 | ; //// Willow |
||
679 | cmp eax,'.ASM' |
||
680 | je edit |
||
681 | cmp eax,'.TXT' |
||
682 | je edit |
||
683 | cmp eax,'.INC' |
||
684 | je edit |
||
685 | cmp eax,'.DAT' |
||
686 | je edit |
||
687 | jmp still |
||
688 | edit: |
||
689 | mov ebx,editor |
||
690 | jmp run |
||
691 | |||
692 | execute: |
||
693 | mov ecx,0 ;200 |
||
694 | loexe: |
||
695 | mov al,[paramtest+ecx] |
||
696 | ; cmp al,0 |
||
697 | ; je setzr |
||
698 | ; cmp al,' ' |
||
699 | ; je setzr |
||
700 | ; je badl |
||
701 | cmp al,'.' |
||
702 | je setzr |
||
703 | ; je badl |
||
704 | ; jmp okl |
||
705 | ;badl: |
||
706 | ; mov al,0 |
||
707 | okl: |
||
708 | mov [open_path+ecx],al |
||
709 | inc ecx |
||
710 | cmp ecx,200 |
||
711 | jnae loexe |
||
712 | |||
713 | setzr: |
||
714 | ; add ecx,3 |
||
715 | ; mov al,0 |
||
716 | mov [open_path+ecx],byte 0 ;al |
||
717 | |||
718 | mov eax,58 |
||
719 | mov ebx,fileinfo_start |
||
720 | int 0x40 |
||
721 | |||
722 | jmp still |
||
723 | |||
724 | run: |
||
725 | mov ecx,paramtest |
||
726 | mov eax,19 |
||
727 | int 0x40 |
||
728 | jmp still |
||
729 | |||
730 | no_filelist: |
||
731 | |||
732 | cmp ah,5 ;OPEN/SAVE button |
||
733 | je kfad |
||
734 | |||
735 | cmp ah,6 ;Scroll up |
||
736 | jne no_scrlup |
||
737 | mov ebx,1 |
||
738 | jmp up |
||
739 | no_scrlup: |
||
740 | |||
741 | cmp ah,7 ;Scroll down |
||
742 | jne no_scrldown |
||
743 | mov ebx,1 |
||
744 | jmp down |
||
745 | no_scrldown: |
||
746 | |||
747 | cmp ah,8 |
||
748 | jne no_update |
||
749 | update: |
||
750 | call read_directory |
||
751 | ; call convertation |
||
752 | ; mov [filecursor],0 |
||
753 | call draw_window |
||
754 | no_update: |
||
755 | |||
756 | cmp ah,9 |
||
757 | jne no_textopen |
||
758 | textopen: |
||
759 | mov esi,0 |
||
760 | xlll2: |
||
761 | mov al,byte [path+esi] |
||
762 | cmp al,byte '/' |
||
763 | jne xfis2 |
||
764 | inc esi |
||
765 | cmp esi,12*20 |
||
766 | jnae xlll2 |
||
767 | jmp still |
||
768 | xfis2: |
||
769 | mov al,byte [path+esi] |
||
770 | cmp al,byte ' ' |
||
771 | je xaa2 |
||
772 | inc esi |
||
773 | cmp esi,12*20 |
||
774 | jnae xfis2 |
||
775 | jmp still |
||
776 | xaa2: |
||
777 | mov eax,[filecursor] |
||
778 | mov ebx,62 |
||
779 | mul ebx |
||
780 | mov edi,eax |
||
781 | cmp [convinfo+edi+26],dword 'FOL ' |
||
782 | je still |
||
783 | mov ecx,12*20 |
||
784 | xlopt: |
||
785 | mov al,[path+ecx] |
||
786 | mov [paramtest+ecx],al |
||
787 | dec ecx |
||
788 | jns xlopt |
||
789 | mov [paramtest+esi],byte '/' |
||
790 | inc esi |
||
791 | mov ebp,8+4 |
||
792 | mov edx,edi |
||
793 | xlosf: |
||
794 | mov al,[convinfo+edi] |
||
795 | mov [paramtest+esi],al |
||
796 | inc esi |
||
797 | inc edi |
||
798 | dec ebp |
||
799 | jnz xlosf |
||
800 | mov [paramtest+esi],byte 0 |
||
801 | mov ebx,editor |
||
802 | mov ecx,paramtest |
||
803 | mov eax,19 |
||
804 | int 0x40 |
||
805 | jmp red ;still |
||
806 | |||
807 | no_textopen: |
||
808 | |||
809 | cmp ah,11 |
||
810 | jne no_view |
||
811 | viewset: |
||
812 | ; not dword [delflag] |
||
813 | inc dword [viewmode] |
||
814 | cmp dword [viewmode],8 |
||
815 | jnae not_cm |
||
816 | mov [viewmode],0 |
||
817 | not_cm: |
||
818 | call read_directory |
||
819 | ; call convertation |
||
820 | mov [filecursor],0 |
||
821 | call draw_window |
||
822 | jmp still |
||
823 | no_view: |
||
824 | |||
825 | cmp ah,12 ;move back |
||
826 | jne no_back |
||
827 | back: |
||
828 | mov esi,12*20 |
||
829 | lll: |
||
830 | mov al,byte [path+esi] |
||
831 | cmp al,byte ' ' |
||
832 | jne findsl |
||
833 | dec esi |
||
834 | jnz lll |
||
835 | jmp still |
||
836 | findsl: |
||
837 | dec esi |
||
838 | fis: |
||
839 | mov al,byte [path+esi] |
||
840 | cmp al,byte '/' |
||
841 | je aa |
||
842 | mov [path+esi],byte 0 ;' ' |
||
843 | dec esi |
||
844 | jnz fis |
||
845 | aa: |
||
846 | mov [path+esi],byte 0 ;' ' |
||
847 | |||
848 | mov [filecursor],0 |
||
849 | call read_directory |
||
850 | ; call convertation |
||
851 | call draw_window |
||
852 | jmp still |
||
853 | |||
854 | no_back: |
||
855 | cmp ah,13 ;string up? |
||
856 | jne no_up |
||
857 | mov ebx,1 ;step |
||
858 | up: |
||
859 | mov [downstop],0 |
||
860 | sub [filecursor],ebx |
||
861 | cmp [filecursor],0 |
||
862 | jnl cr_ok |
||
863 | mov [filecursor],0 |
||
864 | cr_ok: |
||
865 | jmp draw_wd |
||
866 | no_up: |
||
867 | cmp ah,14 ;string down? |
||
868 | jne no_dn |
||
869 | mov ebx,1 ;step |
||
870 | down: |
||
871 | cmp [downstop],1 |
||
872 | je no_dn |
||
873 | add [filecursor],ebx |
||
874 | jmp draw_wd |
||
875 | no_dn: |
||
876 | |||
877 | cmp ah,15 |
||
878 | jne no_copyclip ;copy to clipboard |
||
879 | copy_to_clip: |
||
880 | mov ebx,param_area ;clipfilp |
||
881 | mov eax,32 |
||
882 | int 0x40 |
||
883 | mov esi,0 |
||
884 | wlll2: |
||
885 | mov al,byte [path+esi] |
||
886 | cmp al,byte '/' |
||
887 | jne wfis2 |
||
888 | inc esi |
||
889 | cmp esi,12*20 |
||
890 | jnae wlll2 |
||
891 | jmp still |
||
892 | wfis2: |
||
893 | mov al,byte [path+esi] |
||
894 | cmp al,byte ' ' |
||
895 | je waa2 |
||
896 | inc esi |
||
897 | cmp esi,12*20 |
||
898 | jnae wfis2 |
||
899 | jmp still |
||
900 | waa2: |
||
901 | mov eax,[filecursor] |
||
902 | mov ebx,62 |
||
903 | mul ebx |
||
904 | mov edi,eax |
||
905 | cmp [convinfo+edi+26],dword 'FOL ' |
||
906 | je still |
||
907 | mov ecx,12*20 |
||
908 | wlopt: |
||
909 | mov al,[path+ecx] |
||
910 | mov [paramtest+ecx],al |
||
911 | dec ecx |
||
912 | jns wlopt |
||
913 | mov [paramtest+esi],byte '/' |
||
914 | inc esi |
||
915 | mov ebp,8+4 |
||
916 | mov edx,edi |
||
917 | wlosf: |
||
918 | mov al,[convinfo+edi] |
||
919 | mov [paramtest+esi],al |
||
920 | inc esi |
||
921 | inc edi |
||
922 | dec ebp |
||
923 | jnz wlosf |
||
924 | mov [paramtest+esi],byte 0 |
||
925 | mov ebx,param_area ;clipfile |
||
926 | mov ecx,paramtest |
||
927 | mov edx,100 |
||
928 | mov esi,0 |
||
929 | mov eax,33 |
||
930 | int 0x40 |
||
931 | jmp still |
||
932 | no_copyclip: |
||
933 | |||
934 | cmp ah,16 |
||
935 | jne no_clippaste |
||
936 | paste_from_clip: |
||
937 | mov ebx,param_area ;clipfile |
||
938 | mov ecx,0 |
||
939 | mov edx,-1 |
||
940 | mov esi,sourcepath |
||
941 | mov eax,6 |
||
942 | int 0x40 |
||
943 | |||
944 | mov ecx,99 |
||
945 | cdestp: |
||
946 | mov al,[path+ecx] |
||
947 | mov [destpath+ecx],al |
||
948 | dec ecx |
||
949 | jns cdestp |
||
950 | |||
951 | mov esi,0 |
||
952 | zlll2: |
||
953 | mov al,byte [destpath+esi] |
||
954 | cmp al,byte '/' |
||
955 | jne zfis2 |
||
956 | inc esi |
||
957 | cmp esi,100 |
||
958 | jnae zlll2 |
||
959 | jmp still |
||
960 | zfis2: |
||
961 | mov al,byte [destpath+esi] |
||
962 | cmp al,byte ' ' |
||
963 | je zaa2 |
||
964 | inc esi |
||
965 | cmp esi,100 |
||
966 | jnae zfis2 |
||
967 | jmp still |
||
968 | zaa2: |
||
969 | mov byte [destpath+esi],'/' |
||
970 | inc esi |
||
971 | |||
972 | mov edi,0 |
||
973 | qlll2: |
||
974 | mov al,byte [sourcepath+edi] |
||
975 | cmp al,byte '.' |
||
976 | je qfis2 |
||
977 | inc edi |
||
978 | cmp edi,100 |
||
979 | jnae qlll2 |
||
980 | jmp still |
||
981 | qfis2: |
||
982 | sub edi,8 ;.-8=start of file name |
||
983 | |||
984 | mov ecx,11 ;11 sybols |
||
985 | cfname: |
||
986 | mov al,[sourcepath+edi] |
||
987 | cmp al,byte ' ' |
||
988 | je dar |
||
989 | mov [destpath+esi],al |
||
990 | inc esi |
||
991 | dar: |
||
992 | inc edi |
||
993 | dec ecx |
||
994 | jns cfname |
||
995 | |||
996 | ; mov [destpath+esi],byte 0 |
||
997 | |||
998 | mov ecx,199 |
||
999 | cdestjp: |
||
1000 | mov al,[sourcepath+ecx] |
||
1001 | cmp al,byte 0 |
||
1002 | jne nor |
||
1003 | mov al,byte 32 |
||
1004 | nor: |
||
1005 | mov [sourcepath+ecx],al |
||
1006 | dec ecx |
||
1007 | jns cdestjp |
||
1008 | |||
1009 | cmp [browser],dword 1 |
||
1010 | jne no_outpath |
||
1011 | mov eax,4 ; function 4 : write text to window |
||
1012 | mov ebx,10*65536+67 ; [x start] *65536 + [y start] |
||
1013 | mov ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB |
||
1014 | mov edx,sourcepath ; pointer to text beginning |
||
1015 | mov esi,100 ;12*20 ; text length |
||
1016 | int 0x40 |
||
1017 | mov ebx,250*65536+67 ; [x start] *65536 + [y start] |
||
1018 | mov ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB |
||
1019 | mov edx,destpath ; pointer to text beginning |
||
1020 | mov esi,100 ;12*20 ; text length |
||
1021 | int 0x40 |
||
1022 | no_outpath: |
||
1023 | |||
1024 | mov ebx,copyrfile |
||
1025 | mov ecx,sourcepath |
||
1026 | mov eax,19 |
||
1027 | int 0x40 |
||
1028 | delay 50 ;wait recoed file |
||
1029 | jmp update ;still |
||
1030 | no_clippaste: |
||
1031 | |||
1032 | cmp ah,19 ;Delete from floppy |
||
1033 | delete_file: |
||
1034 | jne no_delt |
||
1035 | cmp dword [path],'/RD/' |
||
1036 | jne no_delt |
||
1037 | cmp byte [path+4],'1' |
||
1038 | jne no_delt |
||
1039 | |||
1040 | mov eax,[filecursor] |
||
1041 | mov ebx,62 |
||
1042 | mul ebx |
||
1043 | mov edi,eax |
||
1044 | add edi,convinfo |
||
1045 | mov ebp,edi |
||
1046 | mov eax,dword [edi] |
||
1047 | mov dword [paramtest],eax |
||
1048 | mov eax,dword [edi+4] |
||
1049 | mov dword [paramtest+4],eax |
||
1050 | mov eax,dword [edi+4+4+1] |
||
1051 | mov dword [paramtest+4+4],eax |
||
1052 | |||
1053 | mov ebx,paramtest |
||
1054 | mov eax,32 |
||
1055 | int 0x40 |
||
1056 | jmp update |
||
1057 | no_delt: |
||
1058 | |||
1059 | cmp ah,20 ;I - Help |
||
1060 | je help_scr |
||
1061 | |||
1062 | cmp ah,22 |
||
1063 | jne no_headfile |
||
1064 | mov [drawhf],1 |
||
1065 | call draw_window |
||
1066 | mov [drawhf],0 |
||
1067 | mov [pmenu_draw],1 |
||
1068 | jmp still |
||
1069 | no_headfile: |
||
1070 | |||
1071 | cmp ah,23 |
||
1072 | jne no_headview |
||
1073 | mov [drawhv],1 |
||
1074 | call draw_window |
||
1075 | mov [drawhv],0 |
||
1076 | mov [pmenu_draw],1 |
||
1077 | jmp still |
||
1078 | no_headview: |
||
1079 | |||
1080 | cmp ah,24 |
||
1081 | jne no_headinfo |
||
1082 | mov [drawhi],1 |
||
1083 | call draw_window |
||
1084 | mov [drawhi],0 |
||
1085 | mov [pmenu_draw],1 |
||
1086 | jmp still |
||
1087 | no_headinfo: |
||
1088 | |||
1089 | ;FILE MENU |
||
1090 | cmp ah,30 |
||
1091 | je kfad |
||
1092 | |||
1093 | cmp ah,31 |
||
1094 | je copy_to_clip ;Copy |
||
1095 | |||
1096 | cmp ah,32 |
||
1097 | je paste_from_clip ;Paste |
||
1098 | |||
1099 | cmp ah,33 |
||
1100 | je delete_file ;Delte |
||
1101 | |||
1102 | cmp ah,34 |
||
1103 | je textopen ;Edit in Tinypad |
||
1104 | |||
1105 | cmp ah,37 |
||
1106 | je exit |
||
1107 | |||
1108 | ;VIEW MENU |
||
1109 | cmp ah,40 ;Sort by name show del |
||
1110 | jne no_sn |
||
1111 | ; mov dword [viewmode],0 |
||
1112 | and dword [viewmode],100b |
||
1113 | jmp update |
||
1114 | no_sn: |
||
1115 | |||
1116 | cmp ah,41 ;Sort by extension show del |
||
1117 | jne no_se |
||
1118 | and dword [viewmode],1101b |
||
1119 | or dword [viewmode],0001b |
||
1120 | jmp update |
||
1121 | no_se: |
||
1122 | |||
1123 | cmp ah,42 ;Sort by size show del |
||
1124 | jne no_ss |
||
1125 | and dword [viewmode],1110b |
||
1126 | or dword [viewmode],0010b |
||
1127 | jmp update |
||
1128 | no_ss: |
||
1129 | |||
1130 | cmp ah,43 ;Sort by date show del |
||
1131 | jne no_sd |
||
1132 | or dword [viewmode],0011b |
||
1133 | jmp update |
||
1134 | no_sd: |
||
1135 | |||
1136 | cmp ah,44 ;Show del files |
||
1137 | jne no_ds |
||
1138 | or dword [viewmode],0100b |
||
1139 | jmp update |
||
1140 | no_ds: |
||
1141 | |||
1142 | cmp ah,45 ;Fade del files |
||
1143 | jne no_df |
||
1144 | and dword [viewmode],11111011b |
||
1145 | jmp update |
||
1146 | no_df: |
||
1147 | |||
1148 | ;HELP MENU |
||
1149 | cmp ah,50 ;Help? |
||
1150 | je help_scr |
||
1151 | |||
1152 | cmp ah,51 ;Info? |
||
1153 | je info_scr |
||
1154 | |||
1155 | cmp ah,83 |
||
1156 | ja no_hd_part |
||
1157 | cmp ah,80 |
||
1158 | jb no_hd_part |
||
1159 | mov ecx,0 |
||
1160 | sub ah,80 |
||
1161 | inc ah |
||
1162 | mov cl,ah |
||
1163 | mov eax,21 |
||
1164 | mov ebx,8 ;7 |
||
1165 | int 0x40 |
||
1166 | |||
1167 | no_hd_part: |
||
1168 | |||
1169 | cmp ah,1 ; test on exit button |
||
1170 | je exit |
||
1171 | |||
1172 | jmp still |
||
1173 | |||
1174 | exit: |
||
1175 | ; //// Willow |
||
1176 | mov eax,58 |
||
1177 | mov ebx,MRUfile |
||
1178 | mov dword[ebx+8],255 |
||
1179 | inc dword[ebx] |
||
1180 | int 0x40 |
||
1181 | ; //// Willow |
||
1182 | mov eax,-1 |
||
1183 | int 0x40 |
||
1184 | |||
1185 | draw_wd: |
||
1186 | ; call draw_window |
||
1187 | ; jmp still |
||
1188 | mov [flick],1 |
||
1189 | jmp anti_flick |
||
1190 | |||
1191 | edit_prompt: |
||
1192 | not [focus] |
||
1193 | jmp red |
||
1194 | |||
1195 | help_scr: |
||
1196 | mov esi,14 |
||
1197 | mov ebp,help_text |
||
1198 | jmp screen |
||
1199 | |||
1200 | info_scr: |
||
1201 | mov esi,6 |
||
1202 | mov ebp,info_text |
||
1203 | jmp screen |
||
1204 | |||
1205 | screen: |
||
1206 | cmp [browser],dword 1 ;it's browser? |
||
1207 | jne dialogscr |
||
1208 | |||
1209 | mov eax,[procinfo.y_size] |
||
1210 | sub eax,90 |
||
1211 | drawfbox 40,76,300,eax,0x00000000 |
||
1212 | mov eax,[procinfo.y_size] |
||
1213 | sub eax,92 |
||
1214 | drawfbox 41,77,298,eax,0x00ffffff |
||
1215 | mov edi,esi ;14 |
||
1216 | mov ebx,(41+26)*65536+(77+20) |
||
1217 | mov ecx,cl_Black |
||
1218 | mov edx,ebp ;help_text |
||
1219 | jmp outlab |
||
1220 | |||
1221 | dialogscr: |
||
1222 | mov eax,[procinfo.y_size] |
||
1223 | sub eax,84 |
||
1224 | drawfbox 16,54,270,eax,0x00000000 |
||
1225 | mov eax,[procinfo.y_size] |
||
1226 | sub eax,86 |
||
1227 | drawfbox 17,55,268,eax,0x00ffffff |
||
1228 | mov edi,esi ;14 |
||
1229 | mov ebx,(17+10)*65536+(55+1) |
||
1230 | mov ecx,cl_Black |
||
1231 | mov edx,ebp ;help_text |
||
1232 | |||
1233 | outlab: ;out labels |
||
1234 | mov eax,4 |
||
1235 | mov esi,40 |
||
1236 | helploo: |
||
1237 | int 0x40 |
||
1238 | add ebx,11 |
||
1239 | add edx,40 |
||
1240 | dec edi |
||
1241 | jnz helploo |
||
1242 | |||
1243 | setimg 48,84,logoinfimg |
||
1244 | |||
1245 | jmp still |
||
1246 | |||
1247 | ;HELP TEXT |
||
1248 | help_text: |
||
1249 | ;0123456789012345678901234567890123456789 |
||
1250 | db ' ~~~~~ SYSTEM X-TREE ~~~~~ ' |
||
1251 | db ' HELP ' |
||
1252 | db ' ' |
||
1253 | db ' ' |
||
1254 | db 'F2 - CHANGE SORTMODE (name,ext,size,dat)' |
||
1255 | db 'F3 - VIEW file in tinypad ' |
||
1256 | |||
1257 | db 'F5 - COPY FILE to clipboard ' |
||
1258 | db 'F6 - PASTE FILE from clipboard ' |
||
1259 | db 'F11- EDIT PROMPT string ' |
||
1260 | db 'F12- UPDATE directory sources ' |
||
1261 | db ' ' |
||
1262 | |||
1263 | db 'Enter - input to directory ' |
||
1264 | db 'Backspace - back to previos directory ' |
||
1265 | db 'PageDn/PageUp, Up/Down - move cursor ' |
||
1266 | |||
1267 | info_text: |
||
1268 | db ' ~~~~~ SYSTEM X-TREE ~~~~~ ' |
||
1269 | db ' INFO 81 Ver ' |
||
1270 | db ' ' |
||
1271 | db ' Create by Pavlushin Evgeni ' |
||
1272 | db ' with ASCL libary special for Menuet OS ' |
||
1273 | db ' www.deck4.narod.ru waptap@mail.ru ' |
||
1274 | |||
1275 | |||
1276 | ; ********************************************* |
||
1277 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
1278 | ; ******** FILE BROWSER / DIALOG ********* |
||
1279 | |||
1280 | ;draw_browser_window: |
||
1281 | |||
1282 | draw_window: |
||
1283 | |||
1284 | ; mov eax,9 |
||
1285 | ; mov ebx,procinfo |
||
1286 | ; mov ecx,-1 |
||
1287 | ; int 0x40 |
||
1288 | ; mov eax,[procinfo.x_size] |
||
1289 | ; cmp eax,66 |
||
1290 | ; jg temp12345 |
||
1291 | ; ret |
||
1292 | ; temp12345: |
||
1293 | mov eax,48 |
||
1294 | mov ebx,3 |
||
1295 | mov ecx,sc |
||
1296 | mov edx,sizeof.system_colors |
||
1297 | int 0x40 |
||
1298 | |||
1299 | mov eax,[sc.work_button] |
||
1300 | mov [b_color],eax |
||
1301 | |||
1302 | mov eax,12 ; function 12:tell os about windowdraw |
||
1303 | mov ebx,1 ; 1, start of draw |
||
1304 | int 0x40 |
||
1305 | |||
1306 | ;Window |
||
1307 | |||
1308 | xor eax,eax ; function 0 : define and draw window |
||
1309 | |||
1310 | cmp [browser],dword 1 ;it's browser |
||
1311 | jne nob1 |
||
1312 | mov ebx,140*65536+400 ; [x start] *65536 + [x size] |
||
1313 | mov ecx,160*65536+280 ; [y start] *65536 + [y size] |
||
1314 | jmp isb1 |
||
1315 | nob1: |
||
1316 | mov ebx,140*65536+320 ; [x start] *65536 + [x size] |
||
1317 | mov ecx,260*65536+240 ; [y start] *65536 + [y size] |
||
1318 | isb1: |
||
1319 | ; mov edx,[sc.work] ; color of work area RRGGBB |
||
1320 | or edx,0x03ffffff;000000 |
||
1321 | int 0x40 |
||
1322 | |||
1323 | ;Get proc info |
||
1324 | mov eax,9 |
||
1325 | mov ebx,procinfo |
||
1326 | mov ecx,-1 |
||
1327 | int 0x40 |
||
1328 | |||
1329 | mov eax,[procinfo.x_size] |
||
1330 | cmp eax,66 |
||
1331 | jg temp12345 |
||
1332 | ret |
||
1333 | temp12345: |
||
1334 | |||
1335 | cmp [browser],dword 1 ;it's browser |
||
1336 | jne nob9 |
||
1337 | mov [listx],120 |
||
1338 | mov eax,[procinfo.x_size] |
||
1339 | sub eax,[listx] |
||
1340 | sub eax,7 |
||
1341 | mov [listxsize],eax |
||
1342 | mov [listy],73 |
||
1343 | mov eax,[procinfo.y_size] |
||
1344 | sub eax,[listy] |
||
1345 | sub eax,7 |
||
1346 | mov [listysize],eax |
||
1347 | jmp isb9 |
||
1348 | nob9: |
||
1349 | mov [listx],10 |
||
1350 | mov eax,[procinfo.x_size] |
||
1351 | sub eax,[listx] |
||
1352 | sub eax,7 |
||
1353 | mov [listxsize],eax |
||
1354 | mov [listy],54 |
||
1355 | mov eax,[procinfo.y_size] |
||
1356 | sub eax,[listy] |
||
1357 | sub eax,34 |
||
1358 | mov [listysize],eax |
||
1359 | isb9: |
||
1360 | |||
1361 | |||
1362 | ;Draw only browser components |
||
1363 | cmp [browser],dword 1 ;it's browser |
||
1364 | jne nob2 |
||
1365 | |||
1366 | mov eax,[sc.grab_text] ; color of text RRGGBB |
||
1367 | or eax,0x10000000 |
||
1368 | label 8,8,'SYSTEM X-TREE FILE BROWSER',eax |
||
1369 | |||
1370 | ;Draw buttons headers |
||
1371 | mov eax,8 |
||
1372 | mov ebx,8*65536+(6*8-1) ;start pos x |
||
1373 | mov ecx,23*65536+10 ;start pos y |
||
1374 | mov edx,22;+1000000000000000000000000000000b ;spoke butt |
||
1375 | mov edi,3 ;draw 13 button's |
||
1376 | mov esi,0x00339933 |
||
1377 | int 0x40 |
||
1378 | dec edi |
||
1379 | nexthbut: |
||
1380 | add ebx,(6*8)*65536 |
||
1381 | inc edx |
||
1382 | int 0x40 |
||
1383 | dec edi |
||
1384 | jnz nexthbut |
||
1385 | |||
1386 | ;DRAW PARTITION BUTTONS |
||
1387 | mov eax,8 |
||
1388 | mov ebx,340*65536+5 ;start pos x |
||
1389 | mov ecx,24*65536+8 ;start pos y |
||
1390 | mov edx,80;+1000000000000000000000000000000b ;spoke butt |
||
1391 | mov edi,4 ;draw 13 button's |
||
1392 | mov esi,0x00339933 |
||
1393 | int 0x40 |
||
1394 | dec edi |
||
1395 | nextpbut: |
||
1396 | add ebx,6*65536 |
||
1397 | inc edx |
||
1398 | int 0x40 |
||
1399 | dec edi |
||
1400 | jnz nextpbut |
||
1401 | |||
1402 | ;DRAW PARTITON TEXT |
||
1403 | label 341,25,'1234',cl_White;Black |
||
1404 | |||
1405 | ;File STRING |
||
1406 | label 8,25,' FILE VIEW INFO ', ;cl_White ;Black |
||
1407 | |||
1408 | ;BlackLine |
||
1409 | mov eax,[procinfo.x_size] |
||
1410 | sub eax,10 |
||
1411 | drawfbox 5,35, eax, 1, cl_Black |
||
1412 | |||
1413 | ;BlackLine2 |
||
1414 | mov eax,[procinfo.x_size] |
||
1415 | sub eax,10 |
||
1416 | drawfbox 5,68, eax, 1, cl_Black |
||
1417 | |||
1418 | ;BlackLine2 vertical |
||
1419 | ; mov eax,[procinfo.y_size] |
||
1420 | ; sub eax,69+4 |
||
1421 | ; drawfbox 115, 69, 1, eax, cl_Black |
||
1422 | |||
1423 | ;Set logo img |
||
1424 | setimg 34,88,logoinfimg |
||
1425 | label 20,165,'SYSTEM X-TREE',cl_Black |
||
1426 | add ebx,10 |
||
1427 | label ,,'FOR MENUETOS', |
||
1428 | |||
1429 | add ebx,9*65536+20 |
||
1430 | label ,,'welcome to',cl_Green |
||
1431 | add ebx,-15*65536+10 |
||
1432 | label ,,'www.menuetos.org',cl_Green |
||
1433 | |||
1434 | ; label ,,'Create by',cl_Green |
||
1435 | ; add ebx,10 |
||
1436 | ; label ,,' Pavlushin', |
||
1437 | ; add ebx,10 |
||
1438 | ; label ,,' Evgeni', |
||
1439 | |||
1440 | |||
1441 | ;Draw head->file buttons |
||
1442 | cmp [drawhf],1 |
||
1443 | jne no_drawhf |
||
1444 | mov ebx,8*65536+6*12 ;start pos x |
||
1445 | mov ecx,35*65536+10 ;start pos y |
||
1446 | mov edx,30 ;spoke butt |
||
1447 | mov edi,8 ;draw 4 button's |
||
1448 | mov esi,cl_Grey |
||
1449 | call menubutton |
||
1450 | no_drawhf: |
||
1451 | |||
1452 | ;Draw head->view buttons |
||
1453 | cmp [drawhv],1 |
||
1454 | jne no_drawhv |
||
1455 | mov ebx,(8+6*8)*65536+6*12 ;start pos x |
||
1456 | mov ecx,35*65536+10 ;start pos y |
||
1457 | mov edx,40 ;spoke butt |
||
1458 | mov edi,6 ;draw 4 button's |
||
1459 | mov esi,cl_Grey |
||
1460 | call menubutton |
||
1461 | no_drawhv: |
||
1462 | |||
1463 | ;Draw head->info buttons |
||
1464 | cmp [drawhi],1 |
||
1465 | jne no_drawhi |
||
1466 | mov ebx,(8+12*8)*65536+6*12 ;start pos x |
||
1467 | mov ecx,35*65536+10 ;start pos y |
||
1468 | mov edx,50 ;spoke butt |
||
1469 | mov edi,2 ;draw 2 button's |
||
1470 | mov esi,cl_Grey |
||
1471 | call menubutton |
||
1472 | no_drawhi: |
||
1473 | |||
1474 | nob2: |
||
1475 | |||
1476 | ;Draw buttons instruments |
||
1477 | mov eax,8 |
||
1478 | cmp [browser],dword 1 ;it's browser |
||
1479 | jne nob3 |
||
1480 | mov ebx,10*65536+16+5 ;start pos x |
||
1481 | mov ecx,37*65536+15 ;start pos y |
||
1482 | jmp isb3 |
||
1483 | nob3: |
||
1484 | mov ebx,16*65536+16+5 ;start pos x |
||
1485 | mov ecx,29*65536+15 ;start pos y |
||
1486 | isb3: |
||
1487 | mov edx,8;+1000000000000000000000000000000b ;spoke butt |
||
1488 | mov edi,13 ;draw 13 button's |
||
1489 | mov esi,cl_Grey |
||
1490 | int 0x40 |
||
1491 | dec edi |
||
1492 | nextbut: |
||
1493 | add ebx,(16+6)*65536 |
||
1494 | inc edx |
||
1495 | int 0x40 |
||
1496 | dec edi |
||
1497 | jnz nextbut |
||
1498 | |||
1499 | |||
1500 | cmp [browser],dword 1 ;it's browser |
||
1501 | jne nob4 |
||
1502 | ;But img browser |
||
1503 | setimg 10,37,butimg |
||
1504 | ;left logo |
||
1505 | add eax,[procinfo.x_size] |
||
1506 | sub eax,80 |
||
1507 | mov [temp],eax |
||
1508 | setimg [temp],37,logoimg |
||
1509 | jmp isb4 |
||
1510 | nob4: |
||
1511 | ;But img dialog |
||
1512 | setimg 16,29,butimg |
||
1513 | isb4: |
||
1514 | |||
1515 | cmp [browser],dword 1 ;it's browser |
||
1516 | jne nob5 |
||
1517 | |||
1518 | mov [urlx],48 |
||
1519 | mov [urly],55 |
||
1520 | mov eax,[procinfo.x_size] |
||
1521 | sub eax,48+10 |
||
1522 | mov [urlxsize],eax |
||
1523 | mov [urlysize],12 |
||
1524 | |||
1525 | label 20,57,"URL:",cl_Black |
||
1526 | |||
1527 | ;Out view mode info |
||
1528 | mov eax,[viewmode] |
||
1529 | mov ebx,16 |
||
1530 | mul ebx |
||
1531 | mov edx,eax |
||
1532 | mov eax,4 |
||
1533 | mov ebx,180*65536+25 |
||
1534 | mov ecx,cl_Black |
||
1535 | add edx,modetext |
||
1536 | mov esi,16 |
||
1537 | int 0x40 |
||
1538 | |||
1539 | ;List size |
||
1540 | outcount [listsize],294,25,cl_Black,4*65536 |
||
1541 | jmp isb5 |
||
1542 | |||
1543 | head_dlg: db 'OPEN FILE' |
||
1544 | db 'SAVE FILE' |
||
1545 | but_dlg: db 'OPEN' |
||
1546 | db 'SAVE' |
||
1547 | |||
1548 | nob5: |
||
1549 | |||
1550 | mov [urlx],10 |
||
1551 | mov eax,[procinfo.y_size] |
||
1552 | sub eax,24 |
||
1553 | mov [urly],eax |
||
1554 | mov eax,[procinfo.x_size] |
||
1555 | sub eax,80 |
||
1556 | mov [urlxsize],eax |
||
1557 | mov [urlysize],12 |
||
1558 | |||
1559 | cmp byte [dlg_type],'O' ;if byte O - is Open dialog |
||
1560 | jne no_openh |
||
1561 | mov edx,head_dlg ;draw in head OPEN FILE |
||
1562 | jmp out_laby |
||
1563 | no_openh: |
||
1564 | cmp byte [dlg_type],'S' ;if byte S - is Save dialog |
||
1565 | jne no_saveh |
||
1566 | mov edx,head_dlg+9 ;draw in head SAVE FILE |
||
1567 | out_laby: |
||
1568 | mov ebx,8*65536+8 |
||
1569 | mov ecx,[sc.grab_text] ; color of text RRGGBB |
||
1570 | or ecx,0x10000000 |
||
1571 | mov esi,9 |
||
1572 | mov eax,4 |
||
1573 | int 0x40 |
||
1574 | no_saveh: |
||
1575 | |||
1576 | |||
1577 | ;Draw OPEN\SAVE button |
||
1578 | mov ebx,0*65536+50 |
||
1579 | mov ecx,0*65536+12 |
||
1580 | mov eax,[procinfo.x_size] |
||
1581 | sub eax,63 |
||
1582 | shl eax,16 |
||
1583 | add ebx,eax |
||
1584 | mov eax,[procinfo.y_size] |
||
1585 | sub eax,25 |
||
1586 | shl eax,16 |
||
1587 | add ecx,eax |
||
1588 | mov eax,8 |
||
1589 | mov edx,5 ;button ID |
||
1590 | mov esi,0x006699aa ;gradient!!! |
||
1591 | int 0x40 |
||
1592 | |||
1593 | ; label OPEN or SAVE |
||
1594 | mov ebx,[procinfo.x_size] |
||
1595 | sub ebx,48 |
||
1596 | mov eax,[procinfo.y_size] |
||
1597 | sub eax,22 |
||
1598 | shl ebx,16 |
||
1599 | add ebx,eax |
||
1600 | |||
1601 | cmp byte [dlg_type],'O' ;if byte O - is Open dialog |
||
1602 | jne no_openb |
||
1603 | mov edx,but_dlg ;draw in head OPEN FILE |
||
1604 | jmp out_labx |
||
1605 | no_openb: |
||
1606 | cmp byte [dlg_type],'S' ;if byte S - is Save dialog |
||
1607 | jne no_saveb |
||
1608 | mov edx,but_dlg+4 ;draw in head SAVE FILE |
||
1609 | out_labx: |
||
1610 | mov ecx,cl_White |
||
1611 | mov esi,4 |
||
1612 | mov eax,4 |
||
1613 | int 0x40 |
||
1614 | no_saveb: |
||
1615 | |||
1616 | isb5: |
||
1617 | |||
1618 | anti_flick: |
||
1619 | |||
1620 | cmp [flick],2 |
||
1621 | je draw_url |
||
1622 | cmp [flick],0 |
||
1623 | jne no_flick_url |
||
1624 | |||
1625 | ;*************************** |
||
1626 | ; DRAW URL LINE |
||
1627 | ;*************************** |
||
1628 | draw_url: |
||
1629 | |||
1630 | ;Draw URL focus button |
||
1631 | mov ebx,[urlx] |
||
1632 | shl ebx,16 |
||
1633 | add ebx,[urlxsize] |
||
1634 | mov ecx,[urly] |
||
1635 | shl ecx,16 |
||
1636 | add ecx,[urlysize] |
||
1637 | dec ebx |
||
1638 | dec ecx |
||
1639 | mov eax,8 |
||
1640 | mov edx,2 ;button ID |
||
1641 | mov esi,0x00aaaaaa ;gradient!!! |
||
1642 | int 0x40 |
||
1643 | |||
1644 | ;Draw URL String |
||
1645 | mov eax,13 |
||
1646 | mov edx,cl_Black |
||
1647 | int 0x40 |
||
1648 | add ebx,1*65536-2+1 |
||
1649 | add ecx,1*65536-2+1 |
||
1650 | mov edx,cl_White |
||
1651 | int 0x40 |
||
1652 | |||
1653 | ;Draw URL Cursor |
||
1654 | mov eax,6 |
||
1655 | mul [cursor] |
||
1656 | mov ebx,[urlx] |
||
1657 | add ebx,eax |
||
1658 | shl ebx,16 |
||
1659 | add ebx,2*65536+1 |
||
1660 | mov ecx,[urly] |
||
1661 | shl ecx,16 |
||
1662 | add ecx,[urlysize] |
||
1663 | add ecx,2*65536-4 |
||
1664 | mov eax,13 |
||
1665 | mov edx,cl_Black |
||
1666 | int 0x40 |
||
1667 | |||
1668 | ; OUT TEXT |
||
1669 | mov eax,[urlxsize] ;calculating text leight |
||
1670 | sub eax,8 |
||
1671 | mov ebx,6 |
||
1672 | div ebx |
||
1673 | mov esi,eax |
||
1674 | |||
1675 | mov ebx,[urlx] |
||
1676 | shl ebx,16 |
||
1677 | add ebx,[urly] |
||
1678 | add ebx,3*65536+2 |
||
1679 | mov eax,4 ; function 4 : write text to window |
||
1680 | mov ecx,0x00000000 ;[sc.grab_text] ; color of text RRGGBB |
||
1681 | mov edx,path ; pointer to text beginning |
||
1682 | int 0x40 |
||
1683 | |||
1684 | cmp [flick],2 |
||
1685 | jne no_flick_url |
||
1686 | mov [flick],0 |
||
1687 | jmp still |
||
1688 | no_flick_url: |
||
1689 | |||
1690 | |||
1691 | ;*************************** |
||
1692 | ; DRAW FILE LIST |
||
1693 | ;*************************** |
||
1694 | |||
1695 | ;Draw Scroll Line |
||
1696 | mov eax,13 |
||
1697 | |||
1698 | mov ebx,[listx] |
||
1699 | add ebx,[listxsize] |
||
1700 | sub ebx,[scrollsize] |
||
1701 | shl ebx,16 |
||
1702 | add ebx,dword [scrollsize] |
||
1703 | mov ecx,[listy] |
||
1704 | add ecx,[scrollbutsize] |
||
1705 | shl ecx,16 |
||
1706 | add ecx,[listysize] |
||
1707 | sub ecx,[scrollbutsize] |
||
1708 | sub ecx,[scrollbutsize] |
||
1709 | mov edx,[scrollcolor] ;0x00006600 |
||
1710 | int 0x40 |
||
1711 | |||
1712 | ;Draw Scroll Box |
||
1713 | mov edx,0 |
||
1714 | mov eax,[listysize] |
||
1715 | sub eax,2 |
||
1716 | mov ebx,dword 10 |
||
1717 | div ebx |
||
1718 | |||
1719 | mov edx,0 |
||
1720 | mov ebx,eax |
||
1721 | cmp ebx,[listsize] ;filelistsize in ebx |
||
1722 | ja notusescroll |
||
1723 | ;usescroll |
||
1724 | mov eax,[listysize] |
||
1725 | sub eax,[scrollbutsize] |
||
1726 | sub eax,[scrollbutsize] |
||
1727 | shl eax,16 |
||
1728 | div dword [listsize] |
||
1729 | mul ebx |
||
1730 | shr eax,16 |
||
1731 | mov esi,[mousey] |
||
1732 | shl esi,16 |
||
1733 | add esi,eax |
||
1734 | |||
1735 | mov eax,13 |
||
1736 | mov ebx,[listx] |
||
1737 | add ebx,[listxsize] |
||
1738 | sub ebx,[scrollsize] |
||
1739 | shl ebx,16 |
||
1740 | add ebx,dword [scrollsize] |
||
1741 | mov ecx,[listy] |
||
1742 | add ecx,[scrollbutsize] |
||
1743 | shl ecx,16 |
||
1744 | add ecx,esi |
||
1745 | mov edx,[scrollboxcol] |
||
1746 | int 0x40 |
||
1747 | notusescroll: |
||
1748 | |||
1749 | |||
1750 | ;Draw list button for get file name |
||
1751 | mov ebx,[listx] |
||
1752 | shl ebx,16 |
||
1753 | add ebx,[listxsize] |
||
1754 | sub ebx,15 ;right free zone |
||
1755 | sub ebx,[scrollsize] |
||
1756 | mov ecx,[listy] |
||
1757 | shl ecx,16 |
||
1758 | add ecx,[listysize] |
||
1759 | |||
1760 | mov eax,8 |
||
1761 | mov edx,4+1000000000000000000000000000000b ;spoke butt |
||
1762 | int 0x40 |
||
1763 | |||
1764 | add ebx,15 |
||
1765 | mov eax,13 |
||
1766 | mov edx,[listcolor] ;ffffff |
||
1767 | int 0x40 |
||
1768 | |||
1769 | ;Draw up/down buttons |
||
1770 | mov ebx,[listx] |
||
1771 | add ebx,[listxsize] |
||
1772 | sub ebx,[scrollsize] |
||
1773 | shl ebx,16 |
||
1774 | add ebx,[scrollsize] |
||
1775 | mov ecx,[listy] |
||
1776 | shl ecx,16 |
||
1777 | add ecx,[scrollbutsize] |
||
1778 | dec ecx ;correction |
||
1779 | mov eax,8 |
||
1780 | mov edx,6+1000000000000000000000000000000b ;spoke butt |
||
1781 | int 0x40 |
||
1782 | |||
1783 | inc ecx |
||
1784 | mov eax,13 |
||
1785 | mov edx,[scrollbutcol] ;ffffff |
||
1786 | int 0x40 |
||
1787 | |||
1788 | ; Draw image on up button |
||
1789 | pushad |
||
1790 | shr ebx,16 |
||
1791 | mov edx,ebx |
||
1792 | shl edx,16 |
||
1793 | shr ecx,16 |
||
1794 | add edx,ecx |
||
1795 | mov ecx,8*65536+9 |
||
1796 | mov ebx,upsb+8 |
||
1797 | mov eax,7 |
||
1798 | int 0x40 |
||
1799 | popad |
||
1800 | |||
1801 | |||
1802 | dec ecx ;correction |
||
1803 | mov edx,7+1000000000000000000000000000000b ;spoke butt |
||
1804 | mov eax,[listysize] |
||
1805 | sub eax,[scrollbutsize] |
||
1806 | shl eax,16 |
||
1807 | add ecx,eax |
||
1808 | |||
1809 | mov eax,8 |
||
1810 | int 0x40 |
||
1811 | |||
1812 | inc ecx |
||
1813 | mov eax,13 |
||
1814 | mov edx,[scrollbutcol] ;ffffff |
||
1815 | int 0x40 |
||
1816 | |||
1817 | ; Draw image on down button |
||
1818 | pushad |
||
1819 | shr ebx,16 |
||
1820 | mov edx,ebx |
||
1821 | shl edx,16 |
||
1822 | shr ecx,16 |
||
1823 | add edx,ecx |
||
1824 | mov ecx,8*65536+9 |
||
1825 | mov ebx,dnsb+8 |
||
1826 | mov eax,7 |
||
1827 | int 0x40 |
||
1828 | popad |
||
1829 | |||
1830 | |||
1831 | ; Draw text in file list |
||
1832 | |||
1833 | mov eax,[listxsize] |
||
1834 | sub eax,40*6 ;leight of string |
||
1835 | shr eax,1 |
||
1836 | add eax,[listx] |
||
1837 | shl eax,16 |
||
1838 | add eax,[listy] |
||
1839 | add eax,2 |
||
1840 | |||
1841 | mov [filelistxy],eax ;dword 19*65536+58 |
||
1842 | |||
1843 | mov edx,0 |
||
1844 | mov eax,[listysize] |
||
1845 | sub eax,2 |
||
1846 | mov ebx,dword 10 |
||
1847 | div ebx |
||
1848 | mov [filelistsize],eax ;dword 40 |
||
1849 | |||
1850 | ; OUT FILE DATA |
||
1851 | mov eax,[filecursor] ;calc cursor position |
||
1852 | mov ebx,62 |
||
1853 | mul ebx |
||
1854 | |||
1855 | ;OUT TEXT |
||
1856 | mov ebp,4096 ; 16 ;out strings process |
||
1857 | sub ebp,[filecursor] |
||
1858 | mov edx,convinfo ;fileinfo+11 |
||
1859 | add edx,eax |
||
1860 | mov ebx,dword [filelistxy] |
||
1861 | loo: |
||
1862 | mov ecx,0x00888888 ;for another file's color white |
||
1863 | cmp [edx+26],dword 'FOL ' ;folder yellow |
||
1864 | jne nb |
||
1865 | mov ecx,0x00006666 |
||
1866 | jmp cset1 |
||
1867 | nb: |
||
1868 | mov eax,[edx+8] |
||
1869 | ;Color set |
||
1870 | cmp eax,dword '.TXT' ;text's blue |
||
1871 | je itx |
||
1872 | cmp eax,dword '.INC' |
||
1873 | je itx |
||
1874 | cmp eax,dword '.ASM' |
||
1875 | je itx |
||
1876 | jmp nt |
||
1877 | itx: |
||
1878 | mov ecx,0x00446666 |
||
1879 | jmp cset |
||
1880 | nt: |
||
1881 | cmp eax,dword '.BMP' ;picture's pure |
||
1882 | je ipic |
||
1883 | cmp eax,dword '.JPG' |
||
1884 | je ipic |
||
1885 | cmp eax,dword '.JPE' |
||
1886 | je ipic |
||
1887 | cmp eax,dword '.GIF' |
||
1888 | je ipic |
||
1889 | ; //// Willow |
||
1890 | cmp eax,dword '.PNG' |
||
1891 | je ipic |
||
1892 | ; //// Willow |
||
1893 | cmp eax,dword '.WAV' |
||
1894 | je ipic |
||
1895 | jmp np |
||
1896 | ipic: |
||
1897 | mov ecx,0x00226688 |
||
1898 | jmp cset |
||
1899 | np: |
||
1900 | cmp eax,dword '. ' ;execute's green |
||
1901 | jne nexec |
||
1902 | mov ecx,0x00008866 |
||
1903 | jmp cset |
||
1904 | nexec: |
||
1905 | cset: |
||
1906 | |||
1907 | cset1: |
||
1908 | mov esi,40 ;symbols out 62 ;32 |
||
1909 | mov eax,4 |
||
1910 | pushad |
||
1911 | int 0x40 |
||
1912 | ; popad |
||
1913 | |||
1914 | ; pushad |
||
1915 | cmp [edx+26],dword 'Fvol' ;volume label |
||
1916 | jne no_volico |
||
1917 | push hdico+8 |
||
1918 | jmp out_ico |
||
1919 | no_volico: |
||
1920 | cmp [edx+26],dword 'FOL ' |
||
1921 | jne no_folico |
||
1922 | cmp [edx+9],dword 'HARD' |
||
1923 | jne no_hdico |
||
1924 | push hdico+8 |
||
1925 | jmp out_ico |
||
1926 | no_hdico: |
||
1927 | cmp [edx+9],dword 'RAMD' |
||
1928 | jne no_rdico |
||
1929 | push rdico+8 |
||
1930 | jmp out_ico |
||
1931 | no_rdico: |
||
1932 | push folico+8 |
||
1933 | jmp out_ico |
||
1934 | no_folico: |
||
1935 | cmp [edx+8],dword '.BMP' |
||
1936 | je is_imgico |
||
1937 | cmp [edx+8],dword '.JPG' |
||
1938 | je is_imgico |
||
1939 | cmp [edx+8],dword '.JPE' |
||
1940 | je is_imgico |
||
1941 | cmp [edx+8],dword '.GIF' |
||
1942 | je is_imgico |
||
1943 | ; //// Willow |
||
1944 | cmp [edx+8],dword '.PNG' |
||
1945 | je is_imgico |
||
1946 | ; //// Willow |
||
1947 | cmp [edx+8],dword '.WAV' |
||
1948 | je is_imgico |
||
1949 | jmp no_imgico |
||
1950 | is_imgico: |
||
1951 | push imgico+8 |
||
1952 | jmp out_ico |
||
1953 | no_imgico: |
||
1954 | cmp [edx+8],dword '.ASM' |
||
1955 | je is_asmincico |
||
1956 | cmp [edx+8],dword '.INC' |
||
1957 | je is_asmincico |
||
1958 | jmp no_asmincico |
||
1959 | is_asmincico: |
||
1960 | push asmincico+8 |
||
1961 | jmp out_ico |
||
1962 | no_asmincico: |
||
1963 | cmp [edx+8],dword '.TXT' |
||
1964 | jne no_txtico |
||
1965 | push txtico+8 |
||
1966 | jmp out_ico |
||
1967 | no_txtico: |
||
1968 | cmp [edx+8],dword '. ' |
||
1969 | jne no_execico |
||
1970 | push execico+8 |
||
1971 | jmp out_ico |
||
1972 | no_execico: |
||
1973 | cmp [edx+26],dword 'DAT ' |
||
1974 | jne no_datico |
||
1975 | push datico+8 |
||
1976 | jmp out_ico |
||
1977 | no_datico: |
||
1978 | cmp [edx+26],dword 'DEL ' |
||
1979 | jne no_out_ico |
||
1980 | push delico+8 |
||
1981 | jmp out_ico |
||
1982 | out_ico: |
||
1983 | |||
1984 | mov edx,ebx |
||
1985 | sub edx,14*65536+1 |
||
1986 | mov ecx,12*65536+9 |
||
1987 | ; mov ebx,upsb+8 |
||
1988 | pop ebx |
||
1989 | mov eax,7 |
||
1990 | int 0x40 |
||
1991 | no_out_ico: |
||
1992 | popad |
||
1993 | |||
1994 | |||
1995 | add ebx,10 |
||
1996 | noout: |
||
1997 | add edx,62 |
||
1998 | |||
1999 | dec [filelistsize] |
||
2000 | cmp [filelistsize],dword 0 |
||
2001 | je extloo |
||
2002 | |||
2003 | dec ebp |
||
2004 | jnz loo |
||
2005 | dext: |
||
2006 | mov [downstop],1 |
||
2007 | |||
2008 | extloo: |
||
2009 | |||
2010 | cmp [browser],dword 1 ;it's browser |
||
2011 | jne nob8 |
||
2012 | |||
2013 | ;Draw text for head->file buttons |
||
2014 | cmp [drawhf],1 |
||
2015 | jne no_drawhftext |
||
2016 | drawfbox 8,35,(6*12)+1,11*8,0x00000000 |
||
2017 | drawfbox 9,36,(6*12)-1,(11*8)-2,0x00ffffff |
||
2018 | |||
2019 | mov edi,8 |
||
2020 | mov ebx,9*65536+37 |
||
2021 | mov ecx,cl_Black |
||
2022 | mov edx,file_text_label |
||
2023 | call drawmenu |
||
2024 | jmp no_drawhftext |
||
2025 | |||
2026 | file_text_label: |
||
2027 | db ' Open ' |
||
2028 | db ' Copy ' |
||
2029 | db ' Paste ' |
||
2030 | db ' Delete ' |
||
2031 | db ' Tinypad ' |
||
2032 | db ' Edit ' |
||
2033 | db ' ' |
||
2034 | db ' Exit ' |
||
2035 | |||
2036 | no_drawhftext: |
||
2037 | |||
2038 | ;Draw text for head->view buttons |
||
2039 | cmp [drawhv],1 |
||
2040 | jne no_drawhvtext |
||
2041 | drawfbox (8+6*8),35,(6*12)+1,(11*6),0x00000000 |
||
2042 | drawfbox (9+6*8),36,(6*12)-1,(11*6)-2,0x00ffffff |
||
2043 | |||
2044 | mov edi,6 ;4 |
||
2045 | mov ebx,(9+6*8)*65536+37 |
||
2046 | mov ecx,cl_Black |
||
2047 | mov edx,view_text_label |
||
2048 | call drawmenu |
||
2049 | jmp no_drawhvtext |
||
2050 | |||
2051 | view_text_label: |
||
2052 | db ' Name sort ' |
||
2053 | db ' Ext. sort ' |
||
2054 | db ' Size sort ' |
||
2055 | db ' Date sort ' |
||
2056 | db ' Show DEL ' |
||
2057 | db ' Fade DEL ' |
||
2058 | |||
2059 | no_drawhvtext: |
||
2060 | |||
2061 | ;Draw text for head->info buttons |
||
2062 | cmp [drawhi],1 |
||
2063 | jne no_drawhitext |
||
2064 | drawfbox (8+12*8),35,(6*12)+1,(11*2),0x00000000 |
||
2065 | drawfbox (9+12*8),36,(6*12)-1,(11*2)-2,0x00ffffff |
||
2066 | |||
2067 | mov edi,2 |
||
2068 | mov eax,4 |
||
2069 | mov ebx,(9+12*8)*65536+37 |
||
2070 | mov ecx,cl_Black |
||
2071 | mov edx,info_text_label |
||
2072 | call drawmenu |
||
2073 | jmp no_drawhitext |
||
2074 | |||
2075 | info_text_label: |
||
2076 | db ' Help ' |
||
2077 | db ' About ' |
||
2078 | |||
2079 | no_drawhitext: |
||
2080 | |||
2081 | nob8: |
||
2082 | cmp [flick],1 |
||
2083 | jne no_flick |
||
2084 | mov [flick],0 |
||
2085 | jmp still |
||
2086 | no_flick: |
||
2087 | |||
2088 | mov eax,12 ; function 12:tell os about windowdraw |
||
2089 | mov ebx,2 ; 2, end of draw |
||
2090 | int 0x40 |
||
2091 | |||
2092 | ret |
||
2093 | |||
2094 | ;FILE LIST PARAMETRS |
||
2095 | |||
2096 | listx dd 15 |
||
2097 | listy dd 72 |
||
2098 | listxsize dd 350 |
||
2099 | listysize dd 41 |
||
2100 | |||
2101 | filelistxy dd 0 |
||
2102 | filelistsize dd 0 |
||
2103 | scrollsize dd 8 |
||
2104 | listcolor dd 0xffffff ;0xeeeeee |
||
2105 | scrollcolor dd 0x778877 |
||
2106 | scrollboxcol dd 0x335533 |
||
2107 | scrollbutcol dd 0x224422 |
||
2108 | scrollbutsize dd 9 |
||
2109 | usescroll dd 1 |
||
2110 | |||
2111 | ;URL LINE PARAMETRS |
||
2112 | |||
2113 | urlx dd 10 |
||
2114 | urly dd 20 |
||
2115 | urlxsize dd 350 |
||
2116 | urlysize dd 12 |
||
2117 | |||
2118 | |||
2119 | drawmenu: |
||
2120 | mov eax,4 |
||
2121 | mov esi,12 |
||
2122 | menuloo: |
||
2123 | int 0x40 |
||
2124 | add ebx,11 |
||
2125 | add edx,12 |
||
2126 | dec edi |
||
2127 | jnz menuloo |
||
2128 | ret |
||
2129 | |||
2130 | menubutton: |
||
2131 | mov eax,8 |
||
2132 | nextmenubut: |
||
2133 | int 0x40 |
||
2134 | add ecx,11*65536 |
||
2135 | inc edx |
||
2136 | dec edi |
||
2137 | jnz nextmenubut |
||
2138 | ret |
||
2139 | |||
2140 | ;***************************** |
||
2141 | ; READ FILE STRUCTURE PROC |
||
2142 | ;***************************** |
||
2143 | |||
2144 | read_directory: |
||
2145 | |||
2146 | ; STEP 0 SEt TYPE OF SORT |
||
2147 | |||
2148 | mov eax,[viewmode] |
||
2149 | ;with no show del files |
||
2150 | and eax,0FFFFFFFBh |
||
2151 | cmp eax,0 |
||
2152 | jnz no_sort_by_name |
||
2153 | mov [start],0 |
||
2154 | mov [x0],12 |
||
2155 | mov [x1],99 |
||
2156 | mov [x2],99 |
||
2157 | mov [x3],99 |
||
2158 | jmp sortset |
||
2159 | |||
2160 | no_sort_by_name: |
||
2161 | dec eax |
||
2162 | jnz no_sort_by_ext |
||
2163 | mov [start],9 |
||
2164 | mov [x0],9 |
||
2165 | mov [x1],99 |
||
2166 | mov [x2],99 |
||
2167 | mov [x3],12 |
||
2168 | jmp sortset |
||
2169 | |||
2170 | no_sort_by_ext: |
||
2171 | dec eax |
||
2172 | jnz no_sort_by_size |
||
2173 | mov [start],30 |
||
2174 | mov [x0],12 |
||
2175 | mov [x1],99 |
||
2176 | mov [x2],99 |
||
2177 | mov [x3],38 |
||
2178 | jmp sortset |
||
2179 | |||
2180 | no_sort_by_size: |
||
2181 | dec eax |
||
2182 | mov [start],21 |
||
2183 | mov [x0],12 |
||
2184 | mov [x1],17 |
||
2185 | mov [x2],20 |
||
2186 | mov [x3],26 |
||
2187 | jmp sortset ;sort by date |
||
2188 | |||
2189 | ;SORT VARILE |
||
2190 | start dd 0 |
||
2191 | x0 dd 0 |
||
2192 | x1 dd 0 |
||
2193 | x2 dd 0 |
||
2194 | x3 dd 0 |
||
2195 | |||
2196 | sortset: |
||
2197 | |||
2198 | ;STEP 1 CLEAR CONVINFO |
||
2199 | mov edi,convinfo |
||
2200 | mov al,255 |
||
2201 | mov ecx,4096*62 ;512 |
||
2202 | cld |
||
2203 | rep stosb |
||
2204 | |||
2205 | ;STEP 2 TEST ON HD OR PARTITION |
||
2206 | cmp [path],byte '/' |
||
2207 | je nstep |
||
2208 | mov ecx,61+62 |
||
2209 | loxhd: |
||
2210 | mov al,[hdimg+ecx] |
||
2211 | mov [convinfo+ecx],al |
||
2212 | dec ecx |
||
2213 | jns loxhd |
||
2214 | mov [listsize],0 |
||
2215 | ret |
||
2216 | nstep: |
||
2217 | cmp [path+3],byte '/' |
||
2218 | je nstep2 |
||
2219 | mov ecx,61+62 |
||
2220 | loxpt: |
||
2221 | mov al,[ptimg+ecx] |
||
2222 | mov [convinfo+ecx],al |
||
2223 | dec ecx |
||
2224 | jns loxpt |
||
2225 | mov [listsize],0 |
||
2226 | ret |
||
2227 | nstep2: |
||
2228 | |||
2229 | ;STEP 3 CLEAR OUTINFO |
||
2230 | mov edi,outinfo ;0x14000 ;0x20000 |
||
2231 | xor eax,eax |
||
2232 | mov ecx,4096*32 ;512 |
||
2233 | cld |
||
2234 | rep stosb |
||
2235 | |||
2236 | ;STEP 4 READ DATA FROM HD |
||
2237 | mov dword [farea],outinfo |
||
2238 | mov dword [readblock],0 |
||
2239 | |||
2240 | loorhd: |
||
2241 | mov eax,[readblock] |
||
2242 | mov [fileinfoblock+4],eax |
||
2243 | mov eax,58 |
||
2244 | mov ebx,fileinfoblock |
||
2245 | int 0x40 |
||
2246 | cmp eax,0 |
||
2247 | jne hd_err |
||
2248 | add dword [farea],512 |
||
2249 | inc dword [readblock] |
||
2250 | cmp dword [readblock],4096/16 |
||
2251 | jna loorhd |
||
2252 | |||
2253 | hd_err: |
||
2254 | mov ebx,dword [readblock] |
||
2255 | shl ebx,4 |
||
2256 | mov dword [blocksread],ebx ; for quick resorting |
||
2257 | |||
2258 | cmp eax,5 |
||
2259 | je end_of_dir |
||
2260 | |||
2261 | ; It's erorr's test is poor code |
||
2262 | |||
2263 | cmp eax,1 |
||
2264 | jne no_inv_part |
||
2265 | label 10,10,'Invalid partition or hd base',cl_Red+font_Big |
||
2266 | jmp end_of_dir |
||
2267 | no_inv_part: |
||
2268 | cmp eax,3 |
||
2269 | jne no_unk_fs |
||
2270 | label 10,10,'Unknow file system',cl_Red+font_Big |
||
2271 | jmp end_of_dir |
||
2272 | no_unk_fs: |
||
2273 | |||
2274 | end_of_dir: |
||
2275 | mov [dirlen],ebx |
||
2276 | |||
2277 | ; command succesful |
||
2278 | |||
2279 | mov esi,outinfo ;data_area+1024 |
||
2280 | ; mov edi,fileinfo+11 |
||
2281 | mov edx,0 ;4096 ;16 |
||
2282 | |||
2283 | newlineb: |
||
2284 | |||
2285 | mov edi,fileinfo+11 |
||
2286 | |||
2287 | pushad ; clear |
||
2288 | mov al,32 |
||
2289 | mov ecx,58 |
||
2290 | sub edi,11 |
||
2291 | cld |
||
2292 | rep stosb |
||
2293 | popad |
||
2294 | |||
2295 | mov cl,[esi] ; end of entries ? |
||
2296 | cmp cl,6 |
||
2297 | jnz noib0 |
||
2298 | |||
2299 | mov [edi+26],dword 'EOE ' |
||
2300 | add esi,32 |
||
2301 | ; add edi,62 |
||
2302 | jmp inf |
||
2303 | |||
2304 | noib0: |
||
2305 | |||
2306 | mov cl,[esi+0] |
||
2307 | cmp cl,0xe5 |
||
2308 | je yesdelfil |
||
2309 | |||
2310 | mov cl,[esi+11] ; long fat32 name ? |
||
2311 | cmp cl,0xf |
||
2312 | jnz noib1 |
||
2313 | |||
2314 | mov [edi+26],dword 'F32 ' |
||
2315 | add esi,32 |
||
2316 | ; add edi,62 |
||
2317 | jmp inf |
||
2318 | |||
2319 | noib1: |
||
2320 | |||
2321 | mov eax,'DAT ' ; data or .. ? |
||
2322 | |||
2323 | mov cl,[esi+0] ; deleted file |
||
2324 | cmp cl,0xe5 |
||
2325 | je yesdelfil |
||
2326 | cmp cl,0x0 |
||
2327 | je yesdelfil |
||
2328 | jmp nodelfil |
||
2329 | yesdelfil: |
||
2330 | mov eax,'DEL ' |
||
2331 | jmp ffile |
||
2332 | |||
2333 | nodelfil: |
||
2334 | |||
2335 | mov cl,[esi+11] ; folder |
||
2336 | and cl,0x10 |
||
2337 | jz ffile |
||
2338 | mov eax,'FOL ' |
||
2339 | mov [edi+26],eax |
||
2340 | jmp nosize |
||
2341 | ffile: |
||
2342 | |||
2343 | ; Asko patch for v79 |
||
2344 | mov cl,[esi+11] ; fold |
||
2345 | and cl,0xf |
||
2346 | cmp cl,0xf ; skip long filename |
||
2347 | jz novol |
||
2348 | test cl,0x8 ; is it fold label? |
||
2349 | jz novol ; no |
||
2350 | mov eax,'Fvol' |
||
2351 | mov [edi+26],eax |
||
2352 | jmp nosize |
||
2353 | novol: |
||
2354 | |||
2355 | mov [edi+26],eax |
||
2356 | |||
2357 | pusha ; size |
||
2358 | mov eax,[esi+28] |
||
2359 | mov esi,edi |
||
2360 | add esi,37 |
||
2361 | mov ebx,10 |
||
2362 | mov ecx,8 |
||
2363 | newnum: |
||
2364 | xor edx,edx |
||
2365 | div ebx |
||
2366 | add dl,48 |
||
2367 | mov [esi],dl |
||
2368 | test eax,eax |
||
2369 | jz zernum |
||
2370 | dec esi |
||
2371 | loop newnum |
||
2372 | zernum: |
||
2373 | popa |
||
2374 | nosize: |
||
2375 | |||
2376 | pusha ; date |
||
2377 | mov [edi+17],dword '. .' |
||
2378 | |||
2379 | movzx eax,word [esi+24] |
||
2380 | shr eax,9 ; year |
||
2381 | add eax,1980 |
||
2382 | mov ecx,4 |
||
2383 | newdel1: |
||
2384 | dec ecx |
||
2385 | xor edx,edx |
||
2386 | mov ebx,10 |
||
2387 | div ebx |
||
2388 | add edx,48 |
||
2389 | mov [edi+ecx+21],dl |
||
2390 | test ecx,ecx |
||
2391 | jnz newdel1 |
||
2392 | |||
2393 | movzx eax,word [esi+24] |
||
2394 | shr eax,5 ; month |
||
2395 | and eax,0x0f |
||
2396 | mov ecx,2 |
||
2397 | newdel2: |
||
2398 | dec ecx |
||
2399 | xor edx,edx |
||
2400 | mov ebx,10 |
||
2401 | div ebx |
||
2402 | add edx,48 |
||
2403 | mov [edi+ecx+18],dl |
||
2404 | test ecx,ecx |
||
2405 | jnz newdel2 |
||
2406 | |||
2407 | movzx eax,word [esi+24] |
||
2408 | and eax,0x1f ; day |
||
2409 | mov ecx,2 |
||
2410 | newdel3: |
||
2411 | dec ecx |
||
2412 | xor edx,edx |
||
2413 | mov ebx,10 |
||
2414 | div ebx |
||
2415 | add edx,48 |
||
2416 | mov [edi+ecx+15],dl |
||
2417 | test ecx,ecx |
||
2418 | jnz newdel3 |
||
2419 | |||
2420 | popa |
||
2421 | |||
2422 | |||
2423 | pusha ; number |
||
2424 | mov eax,edx |
||
2425 | sub eax,4096 |
||
2426 | neg eax |
||
2427 | |||
2428 | xor edx,edx |
||
2429 | mov ebx,10 |
||
2430 | div ebx |
||
2431 | add dl,48 |
||
2432 | mov [edi+43],dl ;0001 |
||
2433 | xor edx,edx |
||
2434 | div ebx |
||
2435 | add dl,48 |
||
2436 | mov [edi+42],dl ;0010 |
||
2437 | xor edx,edx |
||
2438 | div ebx |
||
2439 | add al,48 |
||
2440 | add dl,48 |
||
2441 | mov [edi+41],dl ;0100 |
||
2442 | mov [edi+40],byte 0 ;1000 |
||
2443 | popa |
||
2444 | |||
2445 | mov ecx,8 ; first 8 |
||
2446 | cld |
||
2447 | rep movsb |
||
2448 | mov [edi],byte '.' |
||
2449 | inc edi |
||
2450 | mov ecx,3 ; last 3 |
||
2451 | cld |
||
2452 | rep movsb |
||
2453 | |||
2454 | add esi,(32-11) |
||
2455 | ; add edi,(60-12+2) |
||
2456 | |||
2457 | inf: |
||
2458 | |||
2459 | pushad |
||
2460 | |||
2461 | ;STEP 5 Test on WRITE OR NOTWRITE |
||
2462 | mov edx,fileinfo+11 |
||
2463 | looo: |
||
2464 | |||
2465 | ; Delete del, eoe, f32 and another head-names |
||
2466 | cmp [viewmode],3 ;0-3 no outdel |
||
2467 | ja del_out |
||
2468 | cmp [edx+26],dword 'DEL ' |
||
2469 | je nextfl |
||
2470 | del_out: |
||
2471 | cmp [edx+26],dword 'DEL ' |
||
2472 | jne no_del |
||
2473 | cmp [edx],dword 0 ;431 ;435 ;484 +10% speed |
||
2474 | je nextfl |
||
2475 | no_del: |
||
2476 | cmp [edx+26],dword 'EOE ' |
||
2477 | je nextfl |
||
2478 | cmp [edx+26],dword 'F32 ' ;F32 not useles |
||
2479 | je nextfl |
||
2480 | cmp [edx],dword '. ' |
||
2481 | je nextfl |
||
2482 | cmp [edx],dword '.. ' |
||
2483 | je nextfl |
||
2484 | cmp [edx],dword 'FIRS' |
||
2485 | je nextfl |
||
2486 | |||
2487 | ; ---------_______-------_______ --------_________----------- |
||
2488 | ; SORT by name and del deletet files or f32 headers from list |
||
2489 | ; _________-------_______ --------_______---------___________ |
||
2490 | |||
2491 | ; STEP 6 UNIVERSAL SORT ALGORYTHM |
||
2492 | |||
2493 | xxx: |
||
2494 | mov esi,0 ;[tekfilename] ;0 |
||
2495 | mov ebx,[start] ; 0 |
||
2496 | |||
2497 | ; At first Fold after Dat and Del |
||
2498 | |||
2499 | ftestname: |
||
2500 | cmp byte [fileinfo+11+26],'F' |
||
2501 | je F |
||
2502 | cmp byte [fileinfo+11+26],'D' |
||
2503 | je D |
||
2504 | jmp add_element |
||
2505 | D: cmp byte [convinfo+esi+26],'D' |
||
2506 | je add_element |
||
2507 | cmp byte [convinfo+esi+26],'F' |
||
2508 | je skipfile |
||
2509 | jmp add_element |
||
2510 | F: cmp byte [convinfo+esi+26],'D' |
||
2511 | je writenow |
||
2512 | ; cmp byte [convinfo+esi+26],'F' |
||
2513 | ; je add_element |
||
2514 | ; jmp add_element |
||
2515 | |||
2516 | add_element: |
||
2517 | mov al,[fileinfo+ebx+11] |
||
2518 | cmp al,[convinfo+esi+ebx] |
||
2519 | je equal |
||
2520 | jb writenow |
||
2521 | skipfile: |
||
2522 | add esi,62 |
||
2523 | mov ebx,[start] ;0 |
||
2524 | jmp ftestname |
||
2525 | |||
2526 | equal: |
||
2527 | inc ebx |
||
2528 | cmp ebx,[x0] |
||
2529 | je writefile |
||
2530 | cmp ebx,[x1] |
||
2531 | je x1p |
||
2532 | cmp ebx,[x2] |
||
2533 | je x2p |
||
2534 | cmp ebx,[x3] |
||
2535 | jae x3p |
||
2536 | jmp add_element |
||
2537 | |||
2538 | x1p: |
||
2539 | mov ebx,18 |
||
2540 | jmp add_element |
||
2541 | x2p: |
||
2542 | mov ebx,15 |
||
2543 | jmp add_element |
||
2544 | x3p: |
||
2545 | mov ebx,0 |
||
2546 | jmp add_element |
||
2547 | |||
2548 | writenow: |
||
2549 | mov ecx,4096*62 |
||
2550 | sub ecx,esi |
||
2551 | ldloop: |
||
2552 | mov al,[convinfo+ecx+esi] |
||
2553 | mov [convinfo+ecx+esi+62],al |
||
2554 | dec ecx |
||
2555 | jns ldloop |
||
2556 | |||
2557 | |||
2558 | writefile: |
||
2559 | mov ecx,61 |
||
2560 | wfloop: |
||
2561 | mov al,[fileinfo+ecx+11] |
||
2562 | mov [convinfo+ecx+esi],al |
||
2563 | dec ecx |
||
2564 | jns wfloop |
||
2565 | |||
2566 | nextfile: |
||
2567 | |||
2568 | nextfl: |
||
2569 | ; popad |
||
2570 | ; pushad |
||
2571 | mov eax,edx |
||
2572 | shl eax,26 |
||
2573 | cmp eax,0 |
||
2574 | jne no_outcnt |
||
2575 | push edx |
||
2576 | drawfbox 294,25,(4*6),10,cl_White |
||
2577 | pop ebp |
||
2578 | outcount ebp,294,25,cl_Black,4*65536 |
||
2579 | no_outcnt: |
||
2580 | popad |
||
2581 | |||
2582 | inc edx |
||
2583 | cmp edx,4096 |
||
2584 | jnae newlineb |
||
2585 | |||
2586 | |||
2587 | ;STEP 8 GET SIZE OF RESORTING LIST |
||
2588 | mov ecx,0 |
||
2589 | mov edi,0 |
||
2590 | mov eax,[blocksread] |
||
2591 | mov ebx,62 |
||
2592 | mul ebx |
||
2593 | mov edx,eax |
||
2594 | loogs: |
||
2595 | mov eax,dword [convinfo+edi+26] |
||
2596 | cmp eax,dword 0xffffffff |
||
2597 | je endgs |
||
2598 | add edi,62 |
||
2599 | inc ecx |
||
2600 | cmp edi,edx ;4096*62 |
||
2601 | jnae loogs |
||
2602 | endgs: |
||
2603 | mov [listsize],ecx |
||
2604 | ret |
||
2605 | |||
2606 | ;****************************************************************************** |
||
2607 | |||
2608 | ; DATA AREA |
||
2609 | pmenu_draw dd 0 ;if poup menu is draw,update all window |
||
2610 | flick dd 0 ;anti flick on ? |
||
2611 | drawhf dd 0 ;draw file menu? |
||
2612 | drawhv dd 0 ;draw view menu? |
||
2613 | drawhi dd 0 ;draw info menu? |
||
2614 | browser dd 0 ;0-dialog, 1-browser |
||
2615 | cursor dd 0 ;cursor in prompt line |
||
2616 | focus dd 0 ;prompt edit or window? |
||
2617 | viewmode dd 0 ;folder sort & not del |
||
2618 | downstop dd 0 |
||
2619 | filecursor dd 0 |
||
2620 | mousex dd 0 |
||
2621 | mousey dd 0 |
||
2622 | blocksread dd 0 |
||
2623 | listsize dd 0 ;num of files in directory |
||
2624 | temp dd 0 |
||
2625 | readblock dd 1 |
||
2626 | dlg_type db 0 ;S-save O-open |
||
2627 | |||
2628 | ;01234567890123456789012345678901234567890123456789012345678912 |
||
2629 | hdimg db 'HD HARDDISK FOL ' |
||
2630 | db 'RD RAMDISK FOL ' |
||
2631 | |||
2632 | ptimg db '1 FIRST PARTITION FOL ' |
||
2633 | db '2 SECOND PARTITION FOL ' |
||
2634 | |||
2635 | modetext: |
||
2636 | ;0123456789012345 |
||
2637 | db 'SORT BY NAME 0' |
||
2638 | db 'SORT BY EXT. 1' |
||
2639 | db 'SORT BY SIZE 2' ;type sort |
||
2640 | db 'SORT BY DATE 3' |
||
2641 | db 'DEL SORT NAME 4' |
||
2642 | db 'DEL SORT EXT. 5' |
||
2643 | db 'DEL SORT SIZE 6' ;type sort |
||
2644 | db 'DEL SORT DATE 7' |
||
2645 | |||
2646 | dirlen dd 0x1 |
||
2647 | b_color dd 0x6677cc |
||
2648 | |||
2649 | ; //// Willow |
||
2650 | MRUfile: |
||
2651 | dd 0x0 |
||
2652 | dd 0x0 |
||
2653 | dd 0x1 |
||
2654 | dd path |
||
2655 | dd tempzone |
||
2656 | db '/RD/1/MRU.LST',0 |
||
2657 | ; //// Willow |
||
2658 | |||
2659 | ;Name of programs |
||
2660 | editor db 'TINYPAD ' |
||
2661 | bmpview db 'MV ' |
||
2662 | jpgview db 'JPEGVIEW ' |
||
2663 | gifview db 'GIFVIEW ' |
||
2664 | ac97wav db 'AC97WAV ' |
||
2665 | copyrfile db 'COPYR ' |
||
2666 | ; //// Willow |
||
2667 | pngview db '@RCHER ' |
||
2668 | ; //// Willow |
||
2669 | |||
2670 | fileinfo_start: |
||
2671 | dd 16 |
||
2672 | dd 0 |
||
2673 | dd 0 ;tempzone+1000; |
||
2674 | dd 0 |
||
2675 | dd tempzone ;0x10000 |
||
2676 | open_path: |
||
2677 | times 256 db 0 ;run app path |
||
2678 | |||
2679 | fileinfoblock: |
||
2680 | dd 0x0 ; read |
||
2681 | dd 0x0 ; first block |
||
2682 | dd 0x1 ; number of blocks to read |
||
2683 | farea: |
||
2684 | dd outinfo ; ret offset |
||
2685 | dd tempzone ; work size of sytemram |
||
2686 | path: |
||
2687 | times 256 db 0 ;path |
||
2688 | ;rb 256 |
||
2689 | but_file: |
||
2690 | file 'systr12.GIF' |
||
2691 | butimg: |
||
2692 | rb 400*16*3+8 ;buttons (left pice of picture) |
||
2693 | logoimg: |
||
2694 | rb 70*16*3+8 ;logo (right pice of picture) |
||
2695 | logoinfimg: |
||
2696 | rb 60*60*3+8 ;logoinfo (right pice of picture) |
||
2697 | upsb: |
||
2698 | rb 8*9*3+8 ;up scroll button |
||
2699 | dnsb: |
||
2700 | rb 8*9*3+8 ;down scroll button |
||
2701 | |||
2702 | ;ICONS RESERVE AREA |
||
2703 | hdico: |
||
2704 | rb 12*9*3+8 |
||
2705 | rdico: |
||
2706 | rb 12*9*3+8 |
||
2707 | folico: |
||
2708 | rb 12*9*3+8 |
||
2709 | datico: |
||
2710 | rb 12*9*3+8 |
||
2711 | delico: |
||
2712 | rb 12*9*3+8 |
||
2713 | imgico: |
||
2714 | rb 12*9*3+8 |
||
2715 | txtico: |
||
2716 | rb 12*9*3+8 |
||
2717 | asmincico: |
||
2718 | rb 12*9*3+8 |
||
2719 | execico: |
||
2720 | rb 12*9*3+8 |
||
2721 | |||
2722 | tempimg: ;reserve ram for images |
||
2723 | rb 400*100*3+8 ;for picture |
||
2724 | rb 8000 |
||
2725 | |||
2726 | gif_hash: |
||
2727 | rd 4096 |
||
2728 | tempzone: ;temp zone for 58 function |
||
2729 | rb 4000 |
||
2730 | |||
2731 | sourcepath rb 100 |
||
2732 | destpath rb 100 |
||
2733 | |||
2734 | MYPID: |
||
2735 | rd 8 |
||
2736 | |||
2737 | I_END: |
||
2738 | |||
2739 | param_area: |
||
2740 | rb 256 |
||
2741 | paramtest: |
||
2742 | rb 256 |
||
2743 | filedir: |
||
2744 | rb 256 |
||
2745 | |||
2746 | procinfo process_information |
||
2747 | sc system_colors |
||
2748 | |||
2749 | fileinfo: |
||
2750 | rb 200 ;4096*62+1024 |
||
2751 | |||
2752 | outinfo: |
||
2753 | rb 4096*34+1024 |
||
2754 | |||
2755 | convinfo: |
||
2756 | rb 4096*62+1024 |
||
2757 | |||
2758 | RAM_END: |