Subversion Repositories Kolibri OS

Rev

Rev 321 | Rev 485 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 321 Rev 474
Line 3... Line 3...
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, app_path
Line 9... Line 9...
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'
-
 
14
include 'memalloc.inc'
13
include 'kglobals.inc'
15
include 'dialogs.inc'
14
include 'dialogs.inc'
16
include 'viewer.inc'
15
include 'viewer.inc'
-
 
16
include 'tools.inc'
Line 17... Line 17...
17
include 'tools.inc'
17
include 'filetool.inc'
-
 
18
 
-
 
19
start:
-
 
20
        mov     edi, tolower_table
18
 
21
        push    'A'
-
 
22
        pop     ecx
-
 
23
        xor     eax, eax
-
 
24
@@:
-
 
25
        stosb
-
 
26
        inc     eax
-
 
27
        loop    @b
-
 
28
        add     al, 0x20
-
 
29
        mov     cl, 'Z'-'A'+1
-
 
30
@@:
-
 
31
        stosb
-
 
32
        inc     eax
-
 
33
        loop    @b
-
 
34
        sub     al, 0x20
-
 
35
        mov     cl, '€'-'Z'-1
-
 
36
@@:
-
 
37
        stosb
-
 
38
        inc     eax
-
 
39
        loop    @b
-
 
40
        add     al, 0x20
-
 
41
        mov     cl, ''-'€'
-
 
42
@@:
-
 
43
        stosb
-
 
44
        inc     eax
-
 
45
        loop    @b
-
 
46
        add     al, 0x30
-
 
47
        mov     cl, 'Ÿ'-''+1
-
 
48
@@:
-
 
49
        stosb
-
 
50
        inc     eax
-
 
51
        loop    @b
-
 
52
        sub     al, 0x50
-
 
53
        mov     cl, 256-'Ÿ'-1
-
 
54
@@:
-
 
55
        stosb
-
 
56
        inc     eax
-
 
57
        loop    @b
-
 
58
        mov     byte [edi-256+'ð'], 'ñ'
-
 
59
        push    68
-
 
60
        pop     eax
19
start:
61
        push    11
20
        mov     eax, mem
62
        pop     ebx
21
        call    mf_init
63
        int     0x40
22
        call    init_console
64
        call    init_console
23
        call    draw_window
65
        call    draw_window
24
        push    66
66
        push    66
25
        pop     eax
67
        pop     eax
26
        push    1
68
        push    1
27
        pop     ebx
69
        pop     ebx
28
        mov     ecx, ebx
-
 
29
        int     40h     ; set keyboard mode to scancodes
-
 
30
        mov     esi, def_left_dir
-
 
31
        mov     edi, panel1_dir
-
 
32
@@:
-
 
33
        lodsb
-
 
34
        stosb
-
 
35
        test    al, al
-
 
36
        jnz     @b
-
 
37
        mov     esi, def_right_dir
-
 
38
        mov     edi, panel2_dir
-
 
39
@@:
-
 
40
        lodsb
-
 
41
        stosb
-
 
42
        test    al, al
70
        mov     ecx, ebx
43
        jnz     @b
71
        int     40h     ; set keyboard mode to scancodes
44
        mov     eax, 200
72
        mov     eax, 200
45
        mov     [panel1_nfa], eax
73
        mov     [panel1_nfa], eax
46
        mov     [panel2_nfa], eax
-
 
47
        mov     eax, 200*4 + 32 + 200*304
74
        mov     [panel2_nfa], eax
48
        push    eax
75
        mov     ecx, 200*4 + 32 + 200*304
49
        call    mf_alloc
-
 
50
        mov     [panel1_files], eax
76
        call    pgalloc
51
        pop     eax
77
        mov     [panel1_files], eax
52
        call    mf_alloc
78
        call    pgalloc
53
        mov     [panel2_files], eax
79
        mov     [panel2_files], eax
54
        test    eax, eax
80
        test    eax, eax
55
        jz      exit
81
        jz      exit
56
        cmp     [panel1_files], eax
82
        cmp     [panel1_files], eax
57
        jz      exit
83
        jz      exit
-
 
84
        mov     [panel1_sortmode], 0    ; sort by name
-
 
85
        mov     [panel2_sortmode], 0
-
 
86
        push    2                       ; "á।­¨©" ä®à¬ â
-
 
87
        pop     eax
58
        mov     [panel1_sortmode], 0    ; sort by name
88
        mov     [panel1_colmode], eax
59
        mov     [panel2_sortmode], 0
89
        mov     [panel2_colmode], eax
60
        mov     [num_screens], 1
90
        mov     [num_screens], 1
61
        mov     eax, 8
91
        mov     ecx, 0x1000
62
        call    mf_alloc
92
        call    pgalloc
63
        mov     [screens], eax
93
        mov     [screens], eax
64
        test    eax, eax
94
        test    eax, eax
65
        jz      exit
95
        jz      exit
66
        mov     ecx, panels_vtable
96
        mov     ecx, panels_vtable
-
 
97
        mov     [eax], ecx
-
 
98
        mov     [active_screen_vtable], ecx
-
 
99
; load libini.obj and kfar.ini
-
 
100
        mov     eax, libini_name
-
 
101
        mov     esi, ini_import
-
 
102
        push    2
-
 
103
        pop     ebp     ; we use version 2 of libini
-
 
104
        call    load_dll_and_import
-
 
105
        test    eax, eax
-
 
106
        jnz     .noini
-
 
107
        mov     edi, app_path
-
 
108
        or      ecx, -1
-
 
109
        repnz   scasb
-
 
110
        mov     dword [edi-1], '.ini'
-
 
111
        mov     byte [edi+3], 0
-
 
112
        push    1
-
 
113
        push    dword aConfirmDelete
-
 
114
        push    dword aConfirmations
-
 
115
        push    dword app_path
-
 
116
        call    [ini.get_int]
-
 
117
        mov     [bConfirmDelete], al
-
 
118
        push    0
-
 
119
        push    dword aConfirmDeleteIncomplete
-
 
120
        push    dword aConfirmations
-
 
121
        push    dword app_path
-
 
122
        call    [ini.get_int]
-
 
123
        mov     [bConfirmDeleteIncomplete], al
-
 
124
        mov     ecx, 0x1000
-
 
125
        call    xpgalloc
-
 
126
        test    eax, eax
-
 
127
        jz      .skip_assoc
-
 
128
@@:
-
 
129
        mov     edx, eax
-
 
130
        push    edx ecx
-
 
131
        push    ecx
-
 
132
        push    edx
-
 
133
        push    dword aAssociations
-
 
134
        push    dword app_path
-
 
135
        call    [ini.query_sec]
-
 
136
        pop     ecx edx
-
 
137
        cmp     eax, ecx
-
 
138
        jbe     @f
-
 
139
        add     ecx, ecx
-
 
140
        call    xpgrealloc
-
 
141
        test    eax, eax
-
 
142
        jz      .skip_assoc
-
 
143
        jmp     @b
-
 
144
@@:
-
 
145
        cmp     ecx, 0x1000
-
 
146
        jbe     @f
-
 
147
        mov     ecx, eax
-
 
148
        call    xpgrealloc      ; must succeed, because we decrease size
-
 
149
        mov     edx, eax
-
 
150
@@:
-
 
151
        mov     [associations], edx
-
 
152
        xor     ebp, ebp
-
 
153
        xor     esi, esi
-
 
154
.skip_assoc:
-
 
155
        mov     edi, saved_file_name
-
 
156
        push    dword nullstr
-
 
157
        push    512
-
 
158
        push    edi
-
 
159
        push    dword aShortcut
-
 
160
        push    dword aFolderShortcuts
-
 
161
        push    dword app_path
-
 
162
        call    [ini.get_str]
-
 
163
        cmp     byte [edi], 0
-
 
164
        jz      .shortcut_cont
-
 
165
        or      ecx, -1
-
 
166
        xor     eax, eax
-
 
167
        repnz   scasb
-
 
168
        not     ecx
-
 
169
        cmp     ecx, 2
-
 
170
        jz      @f
-
 
171
        cmp     byte [edi-2], '/'
-
 
172
        jnz     @f
-
 
173
        mov     byte [edi-2], 0
-
 
174
        dec     ecx
-
 
175
@@:
-
 
176
        mov     al, [aShortcut.d]
-
 
177
        push    esi
-
 
178
        inc     esi
-
 
179
        mov     [FolderShortcuts+(eax-'0')*4], esi
-
 
180
        lea     esi, [esi+ecx-1]
-
 
181
        push    esi
-
 
182
        and     esi, 0xFFF
-
 
183
        cmp     esi, ecx
-
 
184
        pop     esi
-
 
185
        ja      .norealloc
-
 
186
        mov     edx, ebp
-
 
187
        mov     ecx, esi
-
 
188
        call    xpgrealloc
-
 
189
        test    eax, eax
-
 
190
        jnz     @f
-
 
191
        mov     edi, FolderShortcuts
-
 
192
        mov     ecx, 10
-
 
193
        rep     stosd
-
 
194
        jmp     .skip_shortcuts
-
 
195
@@:
-
 
196
        mov     ebp, eax
-
 
197
.norealloc:
-
 
198
        pop     edi
-
 
199
        add     edi, ebp
-
 
200
        mov     ecx, saved_file_name
-
 
201
@@:
-
 
202
        mov     al, [ecx]
-
 
203
        inc     ecx
-
 
204
        stosb
-
 
205
        test    al, al
-
 
206
        jnz     @b
-
 
207
.shortcut_cont:
-
 
208
        inc     [aShortcut.d]
-
 
209
        cmp     [aShortcut.d], '9'
-
 
210
        jbe     .skip_assoc
-
 
211
        mov     esi, FolderShortcuts
-
 
212
        mov     ecx, 10
-
 
213
        dec     ebp
-
 
214
.l3:
-
 
215
        lodsd
-
 
216
        test    eax, eax
-
 
217
        jz      @f
-
 
218
        add     [esi-4], ebp
-
 
219
@@:
-
 
220
        loop    .l3
-
 
221
.skip_shortcuts:
-
 
222
.noini:
-
 
223
        mov     esi, def_left_dir
-
 
224
        mov     edi, panel1_dir
-
 
225
@@:
-
 
226
        lodsb
-
 
227
        stosb
-
 
228
        test    al, al
-
 
229
        jnz     @b
-
 
230
        mov     esi, def_right_dir
-
 
231
        mov     edi, panel2_dir
-
 
232
@@:
-
 
233
        lodsb
-
 
234
        stosb
67
        mov     [eax], ecx
235
        test    al, al
68
        mov     [active_screen_vtable], ecx
236
        jnz     @b
69
        call    draw_keybar
237
        call    draw_keybar
70
        call    draw_cmdbar
238
        call    draw_cmdbar
-
 
239
        mov     [prev_dir], 0
71
        mov     [prev_dir], 0
240
        mov     ebp, panel1_data
72
        mov     ebp, panel1_data
241
        call    calc_colwidths
73
        call    read_folder
242
        call    read_folder
74
        call    draw_panel
243
        call    draw_panel
-
 
244
        mov     [bSilentFolderMode], 1
75
        mov     [bSilentFolderMode], 1
245
        mov     ebp, panel2_data
76
        mov     ebp, panel2_data
246
        call    calc_colwidths
77
        call    read_folder
247
        call    read_folder
78
        call    draw_panel
248
        call    draw_panel
79
event:
249
event:
Line 194... Line 364...
194
        imul    esi, font_height
364
        imul    esi, font_height
195
        add     esi, [skinh]
365
        add     esi, [skinh]
196
        add     esi, 5-1
366
        add     esi, 5-1
197
        int     40h
367
        int     40h
198
.resize_draw:
368
.resize_draw:
-
 
369
        mov     ecx, [MemForImage]
-
 
370
        call    pgfree
-
 
371
        and     [MemForImage], 0
199
        call    init_console
372
        call    init_console
200
;        call    draw_window
373
;        call    draw_window
201
        call    draw_keybar
374
        call    draw_keybar
202
        mov     ebp, [active_screen_data]
375
        mov     ebp, [active_screen_data]
203
        mov     eax, [active_screen_vtable]
376
        mov     eax, [active_screen_vtable]
Line 412... Line 585...
412
        cmp     al, 2
585
        cmp     al, 2
413
        setz    al
586
        setz    al
414
        ret
587
        ret
Line 415... Line 588...
415
 
588
 
-
 
589
new_screen:
-
 
590
; in: ecx=sizeof(screen data), edx->vtable
-
 
591
; out: ebp=pointer or NULL, eax!=0 if successful
416
new_screen:
592
; destroys ebx,ecx
417
        call    xmalloc
593
        call    xpgalloc
418
        test    eax, eax
594
        test    eax, eax
419
        jnz     @f
595
        jnz     @f
420
        ret
596
        ret
421
@@:
597
@@:
422
        mov     ebp, eax
-
 
423
        mov     ebx, [num_screens]
-
 
424
        inc     ebx
-
 
425
        shl     ebx, 3
598
        mov     ebp, eax
-
 
599
        mov     eax, [screens]
-
 
600
        mov     ecx, [num_screens]
-
 
601
        inc     ecx
-
 
602
        shl     ecx, 3
-
 
603
        test    ecx, 0xFFF
-
 
604
        jnz     .norealloc
-
 
605
        push    edx
426
        mov     eax, [screens]
606
        mov     edx, eax
-
 
607
        call    xpgrealloc
427
        call    xrealloc
608
        pop     edx
428
        test    eax, eax
609
        test    eax, eax
429
        jnz     @f
610
        jnz     @f
430
        mov     eax, ebp
611
        mov     ecx, ebp
431
        call    mf_free
612
        call    pgfree
432
        xor     eax, eax
613
        xor     eax, eax
433
        ret
614
        ret
434
@@:
615
@@:
-
 
616
        mov     [screens], eax
435
        mov     [screens], eax
617
.norealloc:
436
        inc     [num_screens]
618
        inc     [num_screens]
437
        mov     [eax+ebx-8], edx
619
        mov     [eax+ecx-8], edx
438
        mov     [eax+ebx-4], ebp
620
        mov     [eax+ecx-4], ebp
439
        mov     eax, [num_screens]
621
        mov     eax, [num_screens]
440
        dec     eax
622
        dec     eax
441
        mov     [active_screen], eax
623
        mov     [active_screen], eax
442
        mov     [active_screen_vtable], edx
624
        mov     [active_screen_vtable], edx
Line 463... Line 645...
463
        sub     ecx, [active_screen]
645
        sub     ecx, [active_screen]
464
        dec     ecx
646
        dec     ecx
465
        add     ecx, ecx
647
        add     ecx, ecx
466
        rep     movsd
648
        rep     movsd
467
        dec     [num_screens]
649
        dec     [num_screens]
468
        mov     ebx, [num_screens]
650
        mov     ecx, [num_screens]
469
        shl     ebx, 3
651
        shl     ecx, 3
-
 
652
        test    ecx, 0xFFF
-
 
653
        jnz     .norealloc
470
        mov     eax, [screens]
654
        mov     edx, [screens]
471
        call    mf_realloc      ; must succeed, because we decrease size
655
        call    pgrealloc               ; must succeed, because we decrease size
-
 
656
        mov     [screens], eax
-
 
657
.norealloc:
472
        pop     eax
658
        pop     ecx
473
        call    mf_free
659
        call    pgfree
474
        and     [active_screen], 0
660
        and     [active_screen], 0
Line 475... Line 661...
475
 
661
 
476
change_screen:
662
change_screen:
477
        pusha
663
        pusha
Line 489... Line 675...
489
F12:
675
F12:
490
        mov     eax, [cur_width]
676
        mov     eax, [cur_width]
491
        add     eax, 8
677
        add     eax, 8
492
        mov     esi, eax
678
        mov     esi, eax
493
        mul     [num_screens]
679
        mul     [num_screens]
-
 
680
        mov     ecx, eax
494
        call    xmalloc
681
        call    xpgalloc
495
        test    eax, eax
682
        test    eax, eax
496
        jnz     @f
683
        jnz     @f
497
        ret
684
        ret
498
@@:
685
@@:
499
        mov     ebx, eax
686
        mov     ebx, eax
Line 551... Line 738...
551
        jb      .next
738
        jb      .next
552
        mov     eax, [active_screen]
739
        mov     eax, [active_screen]
553
        mul     esi
740
        mul     esi
554
        add     eax, ebx
741
        add     eax, ebx
555
        push    1
742
        push    1
556
        push    aScreens
743
        push    dword aScreens
557
        push    eax
744
        push    eax
558
        call    menu
745
        call    menu
559
        cmp     eax, -1
746
        cmp     eax, -1
560
        jz      @f
747
        jz      @f
561
        sub     eax, ebx
748
        sub     eax, ebx
562
        div     esi
749
        div     esi
563
        mov     [active_screen], eax
750
        mov     [active_screen], eax
564
@@:
751
@@:
565
        mov     eax, ebx
752
        mov     ecx, ebx
566
        call    mf_free
753
        call    pgfree
567
        jmp     change_screen
754
        jmp     change_screen
Line 568... Line 755...
568
 
755
 
569
panels_OnKey:
756
panels_OnKey:
570
        mov     ebp, [active_panel]
757
        mov     ebp, [active_panel]
Line 585... Line 772...
585
        mov     [ebp + panel1_start - panel1_data], ecx
772
        mov     [ebp + panel1_start - panel1_data], ecx
586
.done_redraw:
773
.done_redraw:
587
;        call    draw_panel
774
;        call    draw_panel
588
;        ret
775
;        ret
589
        jmp     draw_panel
776
        jmp     draw_panel
-
 
777
.insert:
-
 
778
        lea     eax, [ecx*4]
-
 
779
        add     eax, [ebp + panel1_files - panel1_data]
-
 
780
        mov     eax, [eax]
-
 
781
        cmp     word [eax+40], '..'
-
 
782
        jnz     @f
-
 
783
        cmp     byte [eax+42], 0
-
 
784
        jz      .insert.down
-
 
785
@@:
-
 
786
        xor     byte [eax+303], 1
-
 
787
        mov     edx, [eax+32]
-
 
788
        test    byte [eax+303], 1
-
 
789
        mov     eax, [eax+36]
-
 
790
        jnz     .insert.increase
-
 
791
        sub     dword [ebp + panel1_selected_size - panel1_data], edx
-
 
792
        sbb     dword [ebp + panel1_selected_size+4 - panel1_data], eax
-
 
793
        dec     [ebp + panel1_selected_num - panel1_data]
-
 
794
        jmp     .insert.down
-
 
795
.insert.increase:
-
 
796
        add     dword [ebp + panel1_selected_size - panel1_data], edx
-
 
797
        adc     dword [ebp + panel1_selected_size+4 - panel1_data], eax
-
 
798
        inc     [ebp + panel1_selected_num - panel1_data]
-
 
799
.insert.down:
-
 
800
        inc     ecx
-
 
801
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
-
 
802
        jae     .done_redraw
-
 
803
        jmp     @f
590
.down:
804
.down:
591
        inc     ecx
805
        inc     ecx
592
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
806
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
593
        jae     .ret
807
        jae     .ret
-
 
808
@@:
594
        mov     [ebp + panel1_index - panel1_data], ecx
809
        mov     [ebp + panel1_index - panel1_data], ecx
595
        cmp     ecx, ebx
810
        cmp     ecx, ebx
596
        jb      .done_redraw
811
        jb      .done_redraw
597
        sub     ecx, [ebp + panel1_colst - panel1_data]
812
        sub     ecx, [ebp + panel1_colst - panel1_data]
598
        inc     ecx
813
        inc     ecx
599
        mov     [ebp + panel1_start - panel1_data], ecx
814
        mov     [ebp + panel1_start - panel1_data], ecx
600
        jmp     .done_redraw
815
        jmp     .done_redraw
601
.left:
816
.left:
-
 
817
        test    ecx, ecx
602
        jecxz   .ret
818
        jnz     @f
-
 
819
        ret
-
 
820
@@:
603
        sub     ecx, [ebp + panel1_colsz - panel1_data]
821
        mov     eax, [ebp + panel1_colsz - panel1_data]
-
 
822
        sub     ecx, eax
604
        jae     @f
823
        jae     @f
605
        xor     ecx, ecx
824
        xor     ecx, ecx
606
@@:
825
@@:
607
        mov     [ebp + panel1_index - panel1_data], ecx
826
        mov     [ebp + panel1_index - panel1_data], ecx
-
 
827
.finalize_left:
608
        cmp     ecx, edx
828
        cmp     ecx, edx
609
        jae     .done_redraw
829
        jae     .done_redraw
610
        sub     edx, [ebp + panel1_colsz - panel1_data]
830
        sub     edx, eax
611
        jae     @f
831
        jae     @f
612
        xor     edx, edx
832
        xor     edx, edx
613
@@:
833
@@:
614
        mov     [ebp + panel1_start - panel1_data], edx
834
        mov     [ebp + panel1_start - panel1_data], edx
615
        jmp     .done_redraw
835
        jmp     .done_redraw
-
 
836
.pgup:
-
 
837
        mov     eax, [ebp + panel1_colst - panel1_data]
-
 
838
        dec     eax
-
 
839
        jnz     @f
-
 
840
        inc     eax
-
 
841
@@:
-
 
842
        test    ecx, ecx
-
 
843
        jnz     @f
-
 
844
        ret
-
 
845
@@:
-
 
846
        sub     ecx, eax
-
 
847
        jae     @f
-
 
848
        xor     ecx, ecx
-
 
849
@@:
-
 
850
        mov     [ebp + panel1_index - panel1_data], ecx
-
 
851
        dec     ecx
-
 
852
        jmp     .finalize_left
616
.right:
853
.right:
617
        add     ecx, [ebp + panel1_colsz - panel1_data]
854
        mov     eax, [ebp + panel1_colsz - panel1_data]
-
 
855
        add     ecx, eax
618
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
856
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
619
        jb      @f
857
        jb      @f
620
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
858
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
621
        dec     ecx
859
        dec     ecx
622
@@:
860
@@:
623
        mov     [ebp + panel1_index - panel1_data], ecx
861
        mov     [ebp + panel1_index - panel1_data], ecx
-
 
862
.finalize_right:
624
        cmp     ecx, ebx
863
        cmp     ecx, ebx
625
        jb      .done_redraw
864
        jb      .done_redraw
626
        add     ebx, [ebp + panel1_colsz - panel1_data]
865
        add     ebx, eax
627
        cmp     ebx, [ebp + panel1_numfiles - panel1_data]
866
        cmp     ebx, [ebp + panel1_numfiles - panel1_data]
628
        jbe     @f
867
        jbe     @f
629
        mov     ebx, [ebp + panel1_numfiles - panel1_data]
868
        mov     ebx, [ebp + panel1_numfiles - panel1_data]
630
@@:
869
@@:
631
        sub     ebx, [ebp + panel1_colst - panel1_data]
870
        sub     ebx, [ebp + panel1_colst - panel1_data]
632
        jae     @f
871
        jae     @f
633
        xor     ebx, ebx
872
        xor     ebx, ebx
634
@@:
873
@@:
635
        mov     [ebp + panel1_start - panel1_data], ebx
874
        mov     [ebp + panel1_start - panel1_data], ebx
636
        jmp     .done_redraw
875
        jmp     .done_redraw
-
 
876
.pgdn:
-
 
877
        mov     eax, [ebp + panel1_colst - panel1_data]
-
 
878
        dec     eax
-
 
879
        jnz     @f
-
 
880
        inc     eax
-
 
881
@@:
-
 
882
        add     ecx, eax
-
 
883
        cmp     ecx, [ebp + panel1_numfiles - panel1_data]
-
 
884
        jb      @f
-
 
885
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
-
 
886
        dec     ecx
-
 
887
@@:
-
 
888
        mov     [ebp + panel1_index - panel1_data], ecx
-
 
889
        inc     ecx
-
 
890
        jmp     .finalize_right
637
.tab:
891
.tab:
638
        xor     [active_panel], panel1_data xor panel2_data
892
        xor     [active_panel], panel1_data xor panel2_data
639
        call    draw_cmdbar
893
        call    draw_cmdbar
640
        call    draw_panel
894
        call    draw_panel
641
        mov     ebp, [active_panel]
895
        mov     ebp, [active_panel]
Line 659... Line 913...
659
        call    get_curfile_folder_entry
913
        call    get_curfile_folder_entry
660
        test    byte [ecx], 10h
914
        test    byte [ecx], 10h
661
        jnz     .enter_folder
915
        jnz     .enter_folder
662
        call    find_extension
916
        call    find_extension
663
        jc      .run_app
917
        jc      .run_app
664
        jnz     .run_app
-
 
665
.run_association:
918
.run_association:
-
 
919
        cmp     byte [edi], 0
-
 
920
        jz      .l1
-
 
921
        cmp     byte [edi], ';'
-
 
922
        jnz     @f
-
 
923
.l1:
-
 
924
        ret
-
 
925
@@:
666
        mov     eax, [edi+4]
926
        mov     esi, edi
-
 
927
@@:
-
 
928
        lodsb
-
 
929
        test    al, al
-
 
930
        jz      @f
-
 
931
        cmp     al, ';'
-
 
932
        jnz     @b
-
 
933
        dec     esi
-
 
934
        mov     byte [esi], 0
-
 
935
        mov     [restore_semicolon], esi
-
 
936
@@:
667
.run_association2:
937
.run_association2:
668
        mov     [execparams], execdata
938
        mov     [execparams], execdata
669
        mov     [execptr], eax
939
        mov     [execptr], edi
670
        jmp     .dorun
940
        jmp     .dorun
671
.run_app:
941
.run_app:
672
        mov     [execptr], execdata
942
        mov     [execptr], execdata
673
        and     [execparams], 0
943
        and     [execparams], 0
674
.dorun:
944
.dorun:
Line 697... Line 967...
697
; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile
967
; 1) fasm command line convention is different : fasm infile,outfile[,path] rather than tinypad infile
698
; 2) fasm will probably create new file in directory, so we want to reload panel data
968
; 2) fasm will probably create new file in directory, so we want to reload panel data
699
        xor     edx, edx
969
        xor     edx, edx
700
        cmp     [execparams], edx
970
        cmp     [execparams], edx
701
        jz      .nofasm
971
        jz      .nofasm
-
 
972
        mov     esi, [execptr]
-
 
973
@@:
-
 
974
        lodsb
-
 
975
        test    al, al
-
 
976
        jnz     @b
-
 
977
        mov     eax, [esi-5]
-
 
978
        or      eax, 0x20202020
702
        cmp     [execptr], fasm
979
        cmp     eax, 'fasm'
703
        jnz     .nofasm
980
        jnz     .nofasm
704
        cmp     edi, execdata+(execdataend-execdata)/2
981
        cmp     edi, execdata+(execdataend-execdata)/2
705
        ja      .bigfilename
982
        ja      .bigfilename
706
        mov     esi, execdata
983
        mov     esi, execdata
707
@@:
984
@@:
Line 747... Line 1024...
747
        ja      .bigcmdline
1024
        ja      .bigcmdline
748
.cmdlinelenok:
1025
.cmdlinelenok:
749
        push    70
1026
        push    70
750
        pop     eax
1027
        pop     eax
751
        int     40h
1028
        int     40h
-
 
1029
        xor     esi, esi
-
 
1030
        xchg    esi, [restore_semicolon]
-
 
1031
        test    esi, esi
-
 
1032
        jz      @f
-
 
1033
        mov     byte [esi], ';'
-
 
1034
@@:
752
        neg     eax
1035
        neg     eax
753
        js      @f
1036
        js      @f
754
        push    aContinue
1037
        push    dword aContinue
755
        mov     esi, esp
1038
        mov     esi, esp
756
        call    get_error_msg
1039
        call    get_error_msg
757
        push    eax
1040
        push    eax
758
        push    aRunError
1041
        push    dword aRunError
759
        mov     eax, esp
1042
        mov     eax, esp
760
        push    esi
1043
        push    esi
761
        push    1
1044
        push    1
762
        push    eax
1045
        push    eax
763
        push    2
1046
        push    2
764
        push    -1
1047
        push    -1
765
        push    -1
1048
        push    -1
766
        push    aError
1049
        push    dword aError
767
        call    SayErr
1050
        call    SayErr
768
        add     esp, 3*4
1051
        add     esp, 3*4
769
        ret
1052
        ret
770
@@:
1053
@@:
771
        test    edx, edx
1054
        test    edx, edx
Line 782... Line 1065...
782
        pop     esi
1065
        pop     esi
783
.bigfilename2:
1066
.bigfilename2:
784
        pop     esi
1067
        pop     esi
785
.bigfilename:
1068
.bigfilename:
786
        mov     eax, aFileNameTooBig
1069
        mov     eax, aFileNameTooBig
-
 
1070
.l2:
-
 
1071
        xor     esi, esi
-
 
1072
        xchg    esi, [restore_semicolon]
-
 
1073
        test    esi, esi
-
 
1074
        jz      @f
-
 
1075
        mov     byte [esi], ';'
787
@@:
1076
@@:
788
        push    aContinue
1077
        push    dword aContinue
789
        mov     esi, esp
1078
        mov     esi, esp
790
        push    eax
1079
        push    eax
791
        mov     eax, esp
1080
        mov     eax, esp
792
        push    esi
1081
        push    esi
793
        push    1
1082
        push    1
794
        push    eax
1083
        push    eax
795
        push    1
1084
        push    1
796
        push    -1
1085
        push    -1
797
        push    -1
1086
        push    -1
798
        push    aError
1087
        push    dword aError
799
        call    SayErr
1088
        call    SayErr
800
        add     esp, 2*4
1089
        add     esp, 2*4
801
        ret
1090
        ret
802
.bigcmdline:
1091
.bigcmdline:
803
        mov     eax, aCmdLineTooBig
1092
        mov     eax, aCmdLineTooBig
804
        jmp     @b
1093
        jmp     .l2
805
.bigfoldername2:
1094
.bigfoldername2:
806
        mov     byte [ecx], 0
1095
        mov     byte [ecx], 0
807
.bigfoldername:
1096
.bigfoldername:
808
        mov     eax, aFolderNameTooBig
1097
        mov     eax, aFolderNameTooBig
809
        jmp     @b
1098
        jmp     .l2
810
.copytoself:
1099
.copytoself:
811
        mov     eax, aCannotCopyToSelf
1100
        mov     eax, aCannotCopyToSelf
812
        jmp     @b
1101
        jmp     .l2
813
.enter_folder:
1102
.enter_folder:
814
        lea     esi, [ecx+40]
1103
        lea     esi, [ecx+40]
815
        cmp     word [esi], '..'
1104
        cmp     word [esi], '..'
816
        jnz     @f
1105
        jnz     @f
817
        cmp     byte [esi+2], 0
1106
        cmp     byte [esi+2], 0
Line 938... Line 1227...
938
        mov     ebx, dirinfo
1227
        mov     ebx, dirinfo
939
        mov     [ebx+dirinfo.size-dirinfo], 1
1228
        mov     [ebx+dirinfo.size-dirinfo], 1
940
        mov     [ebx+dirinfo.dirdata-dirinfo], driveinfo
1229
        mov     [ebx+dirinfo.dirdata-dirinfo], driveinfo
941
        mov     [ebx+dirinfo.name-dirinfo], tmpname
1230
        mov     [ebx+dirinfo.name-dirinfo], tmpname
942
        mov     byte [tmpname], '/'
1231
        mov     byte [tmpname], '/'
-
 
1232
        xor     edx, edx
943
        xor     ecx, ecx
1233
        xor     ecx, ecx
944
.drive_loop_e:
1234
.drive_loop_e:
945
        mov     byte [tmpname+1], 0
1235
        mov     byte [tmpname+1], 0
946
        push    70
1236
        push    70
947
        pop     eax
1237
        pop     eax
Line 963... Line 1253...
963
        pop     eax
1253
        pop     eax
964
        int     40h
1254
        int     40h
965
        mov     ebx, dirinfo
1255
        mov     ebx, dirinfo
966
        test    eax, eax
1256
        test    eax, eax
967
        jnz     .drive_loop_i_done
1257
        jnz     .drive_loop_i_done
968
        mov     eax, 32+8
1258
        add     ecx, 32+8
-
 
1259
        push    ecx
-
 
1260
        and     ecx, 0xFFF
-
 
1261
        cmp     ecx, 32+8
-
 
1262
        pop     ecx
-
 
1263
        ja      @f
969
        call    xmalloc
1264
        call    xpgrealloc
-
 
1265
        mov     edx, eax
970
        test    eax, eax
1266
        test    eax, eax
971
        jz      .drive_loop_i_done
1267
        jnz     @f
972
        jecxz   @f
1268
        pop     eax
973
        mov     [ecx], eax
1269
        ret
974
@@:
1270
@@:
975
        and     dword [eax], 0
-
 
976
        mov     [eax+4], ecx
-
 
977
        mov     ecx, eax
-
 
978
        lea     edi, [eax+8]
1271
        lea     edi, [edx+ecx-32]
979
        mov     esi, tmpname
1272
        mov     esi, tmpname
980
@@:
1273
@@:
981
        lodsb
1274
        lodsb
982
        test    al, al
1275
        test    al, al
983
        jz      @f
1276
        jz      @f
Line 998... Line 1291...
998
        pop     [ebx+dirinfo.first-dirinfo]
1291
        pop     [ebx+dirinfo.first-dirinfo]
999
        inc     [ebx+dirinfo.first-dirinfo]
1292
        inc     [ebx+dirinfo.first-dirinfo]
1000
        jmp     .drive_loop_e
1293
        jmp     .drive_loop_e
1001
.drive_loop_e_done:
1294
.drive_loop_e_done:
1002
        and     [ebx+dirinfo.first-dirinfo], 0
1295
        and     [ebx+dirinfo.first-dirinfo], 0
-
 
1296
        mov     edi, edx
-
 
1297
        xor     esi, esi
-
 
1298
        add     ecx, edx
-
 
1299
@@:
-
 
1300
        and     dword [edi], 0
-
 
1301
        mov     dword [edi+4], esi
-
 
1302
        mov     esi, edi
-
 
1303
        add     edi, 32+8
-
 
1304
        cmp     edi, ecx
-
 
1305
        jae     @f
-
 
1306
        mov     [esi], edi
-
 
1307
        jmp     @b
-
 
1308
@@:
-
 
1309
        mov     ecx, edx
1003
        lea     edi, [ebp + panel1_dir - panel1_data]
1310
        lea     edi, [ebp + panel1_dir - panel1_data]
1004
.find_cur_drive_loop:
1311
.find_cur_drive_loop:
1005
        push    edi
1312
        push    edi
1006
        lea     esi, [ecx+8]
1313
        lea     esi, [ecx+8]
1007
@@:
1314
@@:
Line 1011... Line 1318...
1011
        call    match_symbol
1318
        call    match_symbol
1012
        jnz     @f
1319
        jnz     @f
1013
        inc     edi
1320
        inc     edi
1014
        jmp     @b
1321
        jmp     @b
1015
@@:
1322
@@:
1016
        cmp     dword [ecx+4], 0
1323
        cmp     dword [ecx], 0
1017
        jz      @f
1324
        jz      @f
1018
        pop     edi
1325
        pop     edi
1019
        mov     ecx, [ecx+4]
1326
        mov     ecx, [ecx]
1020
        jmp     .find_cur_drive_loop
1327
        jmp     .find_cur_drive_loop
1021
@@:
1328
@@:
-
 
1329
        mov     ecx, edx
1022
.cur_drive_found:
1330
.cur_drive_found:
1023
        pop     edi
1331
        pop     edi
1024
        push    1
1332
        push    1
1025
        push    aDrive
1333
        push    aDrive
1026
        push    ecx
1334
        push    ecx
Line 1047... Line 1355...
1047
@@:
1355
@@:
1048
        lodsb
1356
        lodsb
1049
        stosb
1357
        stosb
1050
        test    al, al
1358
        test    al, al
1051
        jnz     @b
1359
        jnz     @b
1052
@@:
-
 
1053
        cmp     dword [ecx+4], 0
-
 
1054
        jz      @f
-
 
1055
        mov     ecx, [ecx+4]
-
 
1056
        jmp     @b
-
 
1057
@@:
-
 
1058
        mov     eax, ecx
1360
        mov     ecx, edx
1059
        mov     ecx, [ecx]
-
 
1060
        call    mf_free
1361
        call    pgfree
1061
        test    ecx, ecx
-
 
1062
        jnz     @b
-
 
1063
        call    read_folder
1362
        call    read_folder
1064
        jmp     .done_redraw
1363
        jmp     .done_redraw
1065
.shift_f5:
1364
.shift_f5:
1066
        call    get_curfile_folder_entry
1365
        call    get_curfile_folder_entry
1067
        lea     esi, [ecx+40]
1366
        lea     esi, [ecx+40]
Line 1315... Line 1614...
1315
        test    eax, eax
1614
        test    eax, eax
1316
        jz      .copyreadok
1615
        jz      .copyreadok
1317
        cmp     eax, 6
1616
        cmp     eax, 6
1318
        jz      .copyreadok
1617
        jz      .copyreadok
1319
        push    esi
1618
        push    esi
1320
        push    aCannotReadFile
1619
        push    dword aCannotReadFile
1321
        call    get_error_msg
1620
        call    get_error_msg
1322
        push    eax
1621
        push    eax
1323
        mov     eax, esp
1622
        mov     eax, esp
1324
        push    RetryOrCancelBtn
1623
        push    dword RetryOrCancelBtn
1325
        push    2
1624
        push    2
1326
        push    eax
1625
        push    eax
1327
        push    3
1626
        push    3
1328
        push    -1
1627
        push    -1
1329
        push    -1
1628
        push    -1
1330
        push    aError
1629
        push    dword aError
1331
        call    SayErr
1630
        call    SayErr
1332
        add     esp, 3*4
1631
        add     esp, 3*4
1333
        test    eax, eax
1632
        test    eax, eax
1334
        jz      .copyloop
1633
        jz      .copyloop
1335
        jmp     .copyfailed
1634
        jmp     .copyfailed
Line 1345... Line 1644...
1345
        pop     eax
1644
        pop     eax
1346
        int     0x40
1645
        int     0x40
1347
        test    eax, eax
1646
        test    eax, eax
1348
        jz      .copywriteok
1647
        jz      .copywriteok
1349
        push    edi
1648
        push    edi
1350
        push    aCannotWriteFile
1649
        push    dword aCannotWriteFile
1351
        call    get_error_msg
1650
        call    get_error_msg
1352
        push    eax
1651
        push    eax
1353
        mov     eax, esp
1652
        mov     eax, esp
1354
        push    RetryOrCancelBtn
1653
        push    dword RetryOrCancelBtn
1355
        push    2
1654
        push    2
1356
        push    eax
1655
        push    eax
1357
        push    3
1656
        push    3
1358
        push    -1
1657
        push    -1
1359
        push    -1
1658
        push    -1
1360
        push    aError
1659
        push    dword aError
1361
        call    SayErr
1660
        call    SayErr
1362
        add     esp, 3*4
1661
        add     esp, 3*4
1363
        test    eax, eax
1662
        test    eax, eax
1364
        jz      .copywrite
1663
        jz      .copywrite
1365
        jmp     .copyfailed
1664
        jmp     .copyfailed
Line 1379... Line 1678...
1379
.copyfailed:
1678
.copyfailed:
1380
        cmp     [bConfirmDeleteIncomplete], 0
1679
        cmp     [bConfirmDeleteIncomplete], 0
1381
        jz      @f
1680
        jz      @f
1382
        cmp     [writeinfo.code], 2
1681
        cmp     [writeinfo.code], 2
1383
        jz      .copydone
1682
        jz      .copydone
1384
        push    aIncompleteFile
1683
        push    dword aIncompleteFile
1385
        mov     eax, esp
1684
        mov     eax, esp
1386
        push    DeleteOrKeepBtn
1685
        push    dword DeleteOrKeepBtn
1387
        push    2
1686
        push    2
1388
        push    eax
1687
        push    eax
1389
        push    1
1688
        push    1
1390
        push    -1
1689
        push    -1
1391
        push    -1
1690
        push    -1
1392
        push    aCopyCaption
1691
        push    dword aCopyCaption
1393
        call    SayErr
1692
        call    SayErr
1394
        add     esp, 4
1693
        add     esp, 4
1395
        test    eax, eax
1694
        test    eax, eax
1396
        jnz     .copydone
1695
        jnz     .copydone
1397
@@:
1696
@@:
Line 1407... Line 1706...
1407
 
1706
 
1408
.f3:
1707
.f3:
1409
        call    view_file
1708
        call    view_file
1410
.ret2:
1709
.ret2:
-
 
1710
        ret
-
 
1711
.f8_has_selected:
-
 
1712
        mov     edi, saved_file_name+511
-
 
1713
        mov     byte [edi], 0
-
 
1714
        mov     eax, [ebp + panel1_selected_num - panel1_data]
-
 
1715
if lang eq ru
-
 
1716
        cmp     eax, 1
-
 
1717
        jz      @f
-
 
1718
        dec     edi
-
 
1719
        mov     byte [edi], ' '
-
 
1720
        cmp     eax, 4
-
 
1721
        jbe     @f
-
 
1722
        dec     edi
-
 
1723
        mov     word [edi], '®¢'
-
 
1724
@@:
-
 
1725
        mov     dword [edi-4], '¬¥­â'
-
 
1726
        mov     dword [edi-8], ' í«¥'
-
 
1727
        sub     edi, 8
-
 
1728
else
-
 
1729
        cmp     eax, 1
-
 
1730
        jz      @f
-
 
1731
        dec     edi
-
 
1732
        mov     byte [edi], 's'
-
 
1733
@@:
-
 
1734
        mov     dword [edi-4], 'item'
-
 
1735
        mov     byte [edi-5], ' '
-
 
1736
        sub     edi, 5
-
 
1737
end if
-
 
1738
        xor     edx, edx
-
 
1739
        push    10
-
 
1740
        pop     ecx
-
 
1741
@@:
-
 
1742
        div     ecx
-
 
1743
        add     dl, '0'
-
 
1744
        dec     edi
-
 
1745
        mov     [edi], dl
-
 
1746
        xor     edx, edx
-
 
1747
        test    eax, eax
-
 
1748
        jnz     @b
-
 
1749
        push    edi
-
 
1750
        push    aConfirmDeleteText
-
 
1751
        mov     eax, esp
-
 
1752
        push    DeleteOrCancelBtn
-
 
1753
        push    2
-
 
1754
        push    eax
-
 
1755
        push    2
-
 
1756
        push    -1
-
 
1757
        push    -1
-
 
1758
        push    aDeleteCaption
-
 
1759
        call    Message
-
 
1760
        add     esp, 8
-
 
1761
        test    eax, eax
-
 
1762
        jnz     .ret2
-
 
1763
        mov     [del_bSkipAll], 0
-
 
1764
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
-
 
1765
        jecxz   .ret2
-
 
1766
        mov     esi, [ebp + panel1_files - panel1_data]
-
 
1767
.f8_loop:
-
 
1768
        lodsd
-
 
1769
        test    byte [eax+303], 1
-
 
1770
        jz      @f
-
 
1771
        call    delete_file
-
 
1772
        ja      .f8_multiple_cancel
-
 
1773
@@:
-
 
1774
        loop    .f8_loop
-
 
1775
.f8_multiple_cancel:
1411
        ret
1776
        jmp     .ctrl_r
-
 
1777
.f8:
-
 
1778
        cmp     [ebp + panel1_selected_num - panel1_data], 0
1412
.f8:
1779
        jnz     .f8_has_selected
1413
        call    get_curfile_folder_entry
1780
        call    get_curfile_folder_entry
1414
        cmp     [bConfirmDelete], 0
1781
        cmp     [bConfirmDelete], 0
1415
        jz      .f8_allowed
1782
        jz      .f8_allowed
-
 
1783
        lea     eax, [ecx+40]
1416
        mov     ebx, f8_confirm_dlgdata
1784
        push    eax
1417
        mov     esi, aConfirmDeleteText
1785
        mov     esi, aConfirmDeleteText
-
 
1786
        mov     edi, aConfirmDeleteTextBuf
1418
        mov     edi, aConfirmDeleteTextBuf
1787
        push    edi
1419
@@:
1788
@@:
1420
        lodsb
1789
        lodsb
1421
        stosb
1790
        stosb
1422
        test    al, al
1791
        test    al, al
Line 1429... Line 1798...
1429
@@:
1798
@@:
1430
        lodsb
1799
        lodsb
1431
        stosb
1800
        stosb
1432
        test    al, al
1801
        test    al, al
1433
        jnz     @b
1802
        jnz     @b
1434
        lea     esi, [ecx+40]
-
 
1435
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.name], esi
-
 
1436
        or      eax, -1
-
 
1437
@@:
-
 
1438
        inc     eax
-
 
1439
        cmp     byte [eax+esi], 0
-
 
1440
        jnz     @b
-
 
1441
        sub     edi, aConfirmDeleteTextBuf+1
-
 
1442
        cmp     eax, edi
-
 
1443
        jae     @f
-
 
1444
        mov     eax, edi
-
 
1445
@@:
-
 
1446
        inc     eax
-
 
1447
        inc     eax
-
 
1448
        mov     edx, [cur_width]
-
 
1449
        sub     edx, 8
-
 
1450
        cmp     eax, edx
-
 
1451
        jbe     @f
-
 
1452
        mov     eax, edx
-
 
1453
@@:
-
 
1454
        mov     [ebx + dlgtemplate.width], eax
-
 
1455
        dec     eax
-
 
1456
        dec     eax
-
 
1457
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width2], eax
-
 
1458
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.width3], eax
-
 
1459
        shr     eax, 1
-
 
1460
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x2], eax
-
 
1461
        sub     eax, aDeleteLength-1
-
 
1462
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.del_x1], eax
-
 
1463
        add     eax, aDeleteLength
-
 
1464
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x1], eax
-
 
1465
        add     eax, aCancelLength - 1
-
 
1466
        mov     [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.cnl_x2], eax
-
 
1467
        or      byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags1], 4
-
 
1468
        and     byte [ebx - f8_confirm_dlgdata + f8_confirm_dlgdata.flags2], not 4
-
 
1469
        push    ebx
-
 
1470
        call    DialogBox
-
 
1471
        cmp     eax, f8_confirm_dlgdata.del_btn
-
 
1472
        jnz     .ret2
-
 
1473
.f8_allowed:
-
 
1474
        lea     esi, [ebp + panel1_dir - panel1_data]
-
 
1475
        mov     edi, execdata
-
 
1476
@@:
-
 
1477
        lodsb
-
 
1478
        test    al, al
-
 
1479
        jz      @f
-
 
1480
        stosb
-
 
1481
        jmp     @b
-
 
1482
@@:
-
 
1483
        lea     esi, [ecx+40]
-
 
1484
        mov     al, '/'
-
 
1485
        stosb
-
 
1486
@@:
-
 
1487
        lodsb
-
 
1488
        cmp     edi, execdataend
-
 
1489
        jae     .bigfilename
-
 
1490
        stosb
-
 
1491
        test    al, al
-
 
1492
        jnz     @b
-
 
1493
.retrydel:
-
 
1494
        push    70
-
 
1495
        pop     eax
-
 
1496
        mov     ebx, delinfo
-
 
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
1803
        mov     eax, esp
1510
        push    RetryOrCancelBtn
1804
        push    DeleteOrCancelBtn
1511
        push    2
1805
        push    2
1512
        push    eax
1806
        push    eax
1513
        push    3
1807
        push    2
1514
        push    -1
1808
        push    -1
1515
        push    -1
1809
        push    -1
1516
        push    aError
1810
        push    aDeleteCaption
1517
        call    SayErr
1811
        call    Message
1518
        add     esp, 3*4
1812
        add     esp, 8
1519
        test    eax, eax
1813
        test    eax, eax
1520
        jz      .retrydel
1814
        jz      .f8_allowed
-
 
1815
        ret
-
 
1816
.f8_allowed:
-
 
1817
        mov     [del_bSkipAll], 0
-
 
1818
        mov     eax, ecx
-
 
1819
        call    delete_file
1521
.ctrl_r:
1820
.ctrl_r:
1522
; Rescan panel
1821
; Rescan panel
1523
;       call    read_folder
1822
;       call    read_folder
1524
;       jmp     .done_redraw
1823
;       jmp     .done_redraw
1525
        mov     eax, [ebp + panel1_index - panel1_data]
1824
        mov     eax, [ebp + panel1_index - panel1_data]
Line 1587... Line 1886...
1587
.menuret:
1886
.menuret:
1588
        ret
1887
        ret
1589
@@:
1888
@@:
1590
        call    find_extension
1889
        call    find_extension
1591
        jc      .menuret
1890
        jc      .menuret
1592
        jnz     .menuret
-
 
1593
; known extension
1891
; known extension
-
 
1892
@@:
1594
        mov     ebx, [edi+8]
1893
        cmp     byte [edi], 0
-
 
1894
        jz      .menuret
-
 
1895
        cmp     byte [edi], ';'
-
 
1896
        jz      @f
-
 
1897
        inc     edi
-
 
1898
        jmp     @b
-
 
1899
@@:
-
 
1900
        inc     edi
-
 
1901
@@:
-
 
1902
        inc     edi
-
 
1903
        cmp     byte [edi-1], ' '
-
 
1904
        jz      @b
-
 
1905
        cmp     byte [edi-1], 9
-
 
1906
        jz      @b
1595
        test    ebx, ebx
1907
        dec     edi
-
 
1908
        cmp     byte [edi], 0
1596
        jz      .menuret
1909
        jz      .menuret
1597
        mov     ecx, esi
1910
        mov     ecx, esi
1598
@@:
1911
@@:
1599
        inc     ecx
1912
        inc     ecx
1600
        cmp     byte [ecx-1], 0
1913
        cmp     byte [ecx-1], 0
Line 1603... Line 1916...
1603
        cmp     ecx, 15
1916
        cmp     ecx, 15
1604
        jb      @f
1917
        jb      @f
1605
        mov     cl, 15
1918
        mov     cl, 15
1606
@@:
1919
@@:
1607
        xor     edx, edx
1920
        xor     edx, edx
-
 
1921
        xor     ebp, ebp
-
 
1922
        push    edx
1608
.menucreateloop:
1923
.menucreateloop:
1609
        mov     eax, [ebx]
1924
        mov     eax, edi
1610
        test    eax, eax
1925
        xor     ebx, ebx
1611
        jz      .menucreated
-
 
1612
@@:
1926
@@:
-
 
1927
        cmp     byte [edi], ','
-
 
1928
        jz      @f
-
 
1929
        cmp     byte [edi], bl
-
 
1930
        jz      @f
-
 
1931
        inc     edi
-
 
1932
        jmp     @b
-
 
1933
@@:
-
 
1934
        xchg    bl, [edi]
-
 
1935
        pushad
-
 
1936
        push    nullstr
-
 
1937
        push    1024
-
 
1938
        push    saved_file_name
-
 
1939
        push    eax
-
 
1940
        push    aMenu
-
 
1941
        push    app_path
-
 
1942
        call    [ini.get_str]
-
 
1943
        popad
-
 
1944
        mov     [edi], bl
-
 
1945
        mov     eax, saved_file_name
-
 
1946
@@:
-
 
1947
        cmp     byte [eax], 0
-
 
1948
        jz      .menucreatecont
-
 
1949
        cmp     byte [eax], ','
-
 
1950
        jz      @f
1613
        inc     eax
1951
        inc     eax
-
 
1952
        jmp     @b
-
 
1953
@@:
1614
        cmp     byte [eax-1], 0
1954
        mov     byte [eax], 0
1615
        jnz     @b
1955
        push    eax
1616
        sub     eax, [ebx]
1956
        sub     eax, saved_file_name-1
1617
        cmp     eax, ecx
1957
        cmp     eax, ecx
1618
        ja      @f
1958
        ja      @f
1619
        mov     eax, ecx
1959
        mov     eax, ecx
1620
@@:
1960
@@:
-
 
1961
        xchg    eax, [esp]
-
 
1962
        inc     eax
-
 
1963
        push    eax
-
 
1964
@@:
-
 
1965
        inc     eax
-
 
1966
        cmp     byte [eax-1], 0
-
 
1967
        jnz     @b
-
 
1968
        sub     eax, [esp]
-
 
1969
        add     [esp+4], eax
-
 
1970
        pop     eax eax
1621
        add     eax, 12
1971
        add     eax, 8
-
 
1972
        add     ebp, eax
-
 
1973
        push    ebp
-
 
1974
        and     ebp, 0xFFF
-
 
1975
        cmp     ebp, eax
-
 
1976
        pop     ebp
-
 
1977
        ja      @f
-
 
1978
        push    eax
-
 
1979
        xchg    edx, [esp+4]
-
 
1980
        push    ecx
-
 
1981
        mov     ecx, ebp
1622
        call    xmalloc
1982
        call    xpgrealloc
-
 
1983
        pop     ecx
-
 
1984
        pop     edx
-
 
1985
        xchg    edx, [esp]
1623
        test    eax, eax
1986
        test    eax, eax
-
 
1987
        xchg    eax, [esp]
1624
        jz      .menucreated
1988
        jz      .menucreated
-
 
1989
@@:
-
 
1990
        neg     eax
1625
        add     eax, 4
1991
        add     eax, ebp
-
 
1992
        add     eax, [esp]
-
 
1993
        and     dword [eax], 0
-
 
1994
        and     dword [eax+4], 0
1626
        test    edx, edx
1995
        test    edx, edx
1627
        jz      @f
1996
        jz      @f
-
 
1997
        sub     eax, [esp]
1628
        mov     [edx], eax
1998
        mov     [edx], eax
-
 
1999
        add     eax, [esp]
1629
@@:
2000
        sub     edx, [esp]
1630
        mov     [eax+4], edx
2001
        mov     [eax+4], edx
-
 
2002
@@:
1631
        mov     edx, eax
2003
        mov     edx, eax
1632
        push    esi
2004
        push    esi edi
1633
        mov     esi, [ebx+4]
2005
        mov     esi, saved_file_name
1634
        mov     [eax-4], esi
-
 
1635
        mov     esi, [ebx]
-
 
1636
        lea     edi, [eax+8]
2006
        lea     edi, [eax+8]
1637
@@:
2007
@@:
1638
        lodsb
2008
        lodsb
1639
        stosb
2009
        stosb
1640
        test    al, al
2010
        test    al, al
1641
        jnz     @b
2011
        jnz     @b
1642
        sub     esi, [ebx]
2012
        push    esi
-
 
2013
        sub     esi, saved_file_name
1643
        sub     esi, ecx
2014
        sub     esi, ecx
1644
        jae     .menunoadd
2015
        jae     .menunoadd
1645
        neg     esi
2016
        neg     esi
1646
@@:
2017
@@:
1647
        mov     byte [edi-1], ' '
2018
        mov     byte [edi-1], ' '
1648
        stosb
2019
        stosb
1649
        dec     esi
2020
        dec     esi
1650
        jnz     @b
2021
        jnz     @b
1651
.menunoadd:
2022
.menunoadd:
1652
        pop     esi
2023
        pop     esi
-
 
2024
@@:
-
 
2025
        lodsb
-
 
2026
        stosb
-
 
2027
        test    al, al
-
 
2028
        jnz     @b
-
 
2029
        pop     edi esi
-
 
2030
.menucreatecont:
1653
        add     ebx, 8
2031
        inc     edi
-
 
2032
        cmp     byte [edi-1], ','
1654
        jmp     .menucreateloop
2033
        jz      .menucreateloop
1655
.menucreated:
2034
.menucreated:
1656
        test    edx, edx
2035
        test    edx, edx
1657
        jz      .menuret
2036
        jz      .menuret_free
1658
        and     dword [edx], 0
2037
        and     dword [edx], 0
-
 
2038
        pop     edx
-
 
2039
        mov     ecx, edx
-
 
2040
        add     [ecx], edx
1659
@@:
2041
@@:
-
 
2042
        mov     ecx, [ecx]
1660
        cmp     dword [edx+4], 0
2043
        cmp     dword [ecx], 0
1661
        jz      @f
2044
        jz      @f
1662
        mov     edx, [edx+4]
2045
        add     [ecx], edx
-
 
2046
        add     [ecx+4], edx
1663
        jmp     @b
2047
        jmp     @b
1664
@@:
2048
@@:
-
 
2049
        add     [ecx+4], edx
-
 
2050
        push    edx
1665
        push    1
2051
        push    1
1666
        push    esi
2052
        push    esi
1667
        push    edx
2053
        push    edx
1668
        call    menu
2054
        call    menu
1669
        cmp     eax, -1
2055
        cmp     eax, -1
1670
        jz      .menuret
2056
        jz      .menuret_free
1671
        push    dword [eax-4]
-
 
1672
@@:
-
 
1673
        test    edx, edx
-
 
1674
        jz      @f
-
 
1675
        lea     eax, [edx-4]
2057
        lea     edi, [eax+8]
1676
        mov     edx, [edx]
-
 
1677
        call    mf_free
-
 
1678
        jmp     @b
-
 
1679
@@:
2058
@@:
1680
        pop     eax
2059
        inc     edi
-
 
2060
        cmp     byte [edi-1], 0
-
 
2061
        jnz     @b
-
 
2062
        mov     ebp, [active_panel]
1681
        call    get_curfile_folder_entry
2063
        call    get_curfile_folder_entry
1682
        jmp     .run_association2
2064
        call    .run_association2
-
 
2065
.menuret_free:
-
 
2066
        pop     ecx
-
 
2067
        jmp     pgfree
1683
.f7:
2068
.f7:
1684
        mov     dword [CopyDestEditBuf], CopyDestEditBuf.length
2069
        mov     dword [CopyDestEditBuf], CopyDestEditBuf.length
1685
        and     dword [CopyDestEditBuf+4], 0
2070
        and     dword [CopyDestEditBuf+4], 0
1686
        and     dword [CopyDestEditBuf+8], 0
2071
        and     dword [CopyDestEditBuf+8], 0
1687
        mov     byte [CopyDestEditBuf+12], 0
2072
        mov     byte [CopyDestEditBuf+12], 0
Line 1756... Line 2141...
1756
        pop     eax
2141
        pop     eax
1757
        mov     ebx, mkdirinfo
2142
        mov     ebx, mkdirinfo
1758
        int     0x40
2143
        int     0x40
1759
        test    eax, eax
2144
        test    eax, eax
1760
        jz      @f
2145
        jz      @f
1761
        push    CopyDestEditBuf+12
2146
        push    dword CopyDestEditBuf+12
1762
        push    aCannotMakeFolder
2147
        push    dword aCannotMakeFolder
1763
        call    get_error_msg
2148
        call    get_error_msg
1764
        push    eax
2149
        push    eax
1765
        mov     eax, esp
2150
        mov     eax, esp
1766
        push    RetryOrCancelBtn
2151
        push    dword RetryOrCancelBtn
1767
        push    2
2152
        push    2
1768
        push    eax
2153
        push    eax
1769
        push    3
2154
        push    3
1770
        push    -1
2155
        push    -1
1771
        push    -1
2156
        push    -1
1772
        push    aError
2157
        push    dword aError
1773
        call    SayErr
2158
        call    SayErr
1774
        add     esp, 3*4
2159
        add     esp, 3*4
1775
        test    eax, eax
2160
        test    eax, eax
1776
        jz      .mkdir_retry
2161
        jz      .mkdir_retry
1777
@@:
2162
@@:
1778
        jmp     .copydone
2163
        jmp     .copydone
-
 
2164
.change_mode:
-
 
2165
        dec     eax
-
 
2166
        mov     [ebp + panel1_colmode - panel1_data], eax
-
 
2167
        call    calc_colwidths
-
 
2168
        jmp     draw_panel
-
 
2169
.quick_jump:
-
 
2170
        dec     eax
-
 
2171
        cmp     al, 10
-
 
2172
        jnz     @f
-
 
2173
        xor     eax, eax
-
 
2174
@@:
-
 
2175
        mov     eax, [FolderShortcuts+eax*4]
-
 
2176
        test    eax, eax
-
 
2177
        jnz     @f
-
 
2178
        ret
-
 
2179
@@:
-
 
2180
        lea     esi, [ebp + panel1_dir - panel1_data]
-
 
2181
        push    eax esi
-
 
2182
        mov     edi, prev_dir
-
 
2183
@@:
-
 
2184
        lodsb
-
 
2185
        stosb
-
 
2186
        test    al, al
-
 
2187
        jnz     @b
-
 
2188
        pop     edi esi
-
 
2189
@@:
-
 
2190
        lodsb
-
 
2191
        stosb
-
 
2192
        test    al, al
-
 
2193
        jnz     @b
-
 
2194
        jmp     .reread
-
 
2195
.greyplus:
-
 
2196
        push    0
-
 
2197
        mov     ecx, aSelect
-
 
2198
        jmp     @f
-
 
2199
.greyminus:
-
 
2200
        push    1
-
 
2201
        mov     ecx, aDeselect
-
 
2202
@@:
-
 
2203
        mov     eax, mark_dlgdata
-
 
2204
        mov     [eax+mark_dlgdata.title-mark_dlgdata], ecx
-
 
2205
        mov     [eax+mark_dlgdata.flags-mark_dlgdata], 0xC
-
 
2206
        mov     edi, enter_string_buf+12
-
 
2207
        mov     dword [edi-12], 512
-
 
2208
        mov     dword [edi-8], 1
-
 
2209
        and     dword [edi-4], 0
-
 
2210
        mov     word [edi], '*'
-
 
2211
        push    eax
-
 
2212
        call    DialogBox
-
 
2213
        inc     eax
-
 
2214
        jnz     @f
-
 
2215
.noselect:
-
 
2216
        pop     eax
-
 
2217
        ret
-
 
2218
@@:
-
 
2219
        xor     eax, eax
-
 
2220
        mov     esi, edi
-
 
2221
@@:
-
 
2222
        lodsb
-
 
2223
        mov     al, [tolower_table+eax]
-
 
2224
        mov     [esi-1], al
-
 
2225
        test    al, al
-
 
2226
        jnz     @b
-
 
2227
@@:
-
 
2228
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
-
 
2229
        mov     ebx, [ebp + panel1_files - panel1_data]
-
 
2230
        jecxz   .noselect
-
 
2231
        mov     eax, [ebx]
-
 
2232
        cmp     word [eax+40], '..'
-
 
2233
        jnz     .selectloop
-
 
2234
        cmp     byte [eax+42], 0
-
 
2235
        jnz     .selectloop
-
 
2236
        dec     ecx
-
 
2237
        jz      .noselect
-
 
2238
        add     ebx, 4
-
 
2239
.selectloop:
-
 
2240
        xor     eax, eax
-
 
2241
        mov     esi, [ebx]
-
 
2242
        add     esi, 40
-
 
2243
        mov     edx, lower_file_name-1
-
 
2244
@@:
-
 
2245
        lodsb
-
 
2246
        inc     edx
-
 
2247
        mov     al, [tolower_table+eax]
-
 
2248
        mov     [edx], al
-
 
2249
        test    al, al
-
 
2250
        jnz     @b
-
 
2251
        mov     esi, lower_file_name
-
 
2252
        call    match_mask_rev_lowercase
-
 
2253
        jc      @f
-
 
2254
        mov     esi, [ebx]
-
 
2255
        mov     eax, [esi+32]
-
 
2256
        cmp     byte [esp], 0
-
 
2257
        jz      .doselect
-
 
2258
        test    byte [esi+303], 1
-
 
2259
        jz      @f
-
 
2260
        and     byte [esi+303], not 1
-
 
2261
        sub     dword [ebp + panel1_selected_size - panel1_data], eax
-
 
2262
        mov     eax, [esi+36]
-
 
2263
        sbb     dword [ebp + panel1_selected_size+4 - panel1_data], eax
-
 
2264
        dec     dword [ebp + panel1_selected_num - panel1_data]
-
 
2265
        jmp     @f
-
 
2266
.doselect:
-
 
2267
        test    byte [esi+303], 1
-
 
2268
        jnz     @f
-
 
2269
        or      byte [esi+303], 1
-
 
2270
        add     dword [ebp + panel1_selected_size - panel1_data], eax
-
 
2271
        mov     eax, [esi+36]
-
 
2272
        adc     dword [ebp + panel1_selected_size+4 - panel1_data], eax
-
 
2273
        inc     dword [ebp + panel1_selected_num - panel1_data]
-
 
2274
@@:
-
 
2275
        add     ebx, 4
-
 
2276
        dec     ecx
-
 
2277
        jnz     .selectloop
-
 
2278
        pop     eax
-
 
2279
        jmp     .done_redraw
Line 1779... Line 2280...
1779
 
2280
 
1780
panels_OnRedraw:
2281
panels_OnRedraw:
1781
        call    draw_cmdbar
2282
        call    draw_cmdbar
-
 
2283
        mov     ebp, panel1_data
1782
        mov     ebp, panel1_data
2284
        call    calc_colwidths
1783
        call    draw_panel
2285
        call    draw_panel
-
 
2286
        mov     ebp, panel2_data
1784
        mov     ebp, panel2_data
2287
        call    calc_colwidths
1785
        call    draw_panel
2288
        call    draw_panel
Line 1786... Line 2289...
1786
        ret
2289
        ret
1787
 
2290
 
1788
init_console:
2291
init_console:
1789
        mov     eax, [console_data_ptr]
2292
        mov     ecx, [console_data_ptr]
1790
        call    mf_free
2293
        call    pgfree
1791
        mov     eax, [cur_width]
2294
        mov     eax, [cur_width]
1792
        mul     [cur_height]
2295
        mul     [cur_height]
1793
        mov     ecx, eax
2296
        mov     ecx, eax
1794
        add     eax, eax
2297
        push    ecx
-
 
2298
        shl     ecx, 2
1795
        add     eax, eax
2299
        call    pgalloc
1796
        call    mf_alloc
2300
        pop     ecx
1797
        test    eax, eax
2301
        test    eax, eax
1798
        jz      exit
2302
        jz      exit
1799
        mov     [console_data_ptr], eax
2303
        mov     [console_data_ptr], eax
Line 1961... Line 2465...
1961
        sub     cx, 5-1
2465
        sub     cx, 5-1
1962
        int     0x40
2466
        int     0x40
1963
@@:
2467
@@:
1964
        cmp     [fill_height], 0
2468
        cmp     [fill_height], 0
1965
        jz      @f
2469
        jz      @f
1966
        mov     al, 13
-
 
1967
        xor     edx, edx
2470
        xor     edx, edx
1968
        mov     ebx, 50000h
2471
        mov     ebx, 50000h
1969
        mov     bx, word [wnd_width]
2472
        mov     bx, word [wnd_width]
1970
        sub     ebx, 9
2473
        sub     ebx, 9
1971
        mov     ecx, [wnd_height]
2474
        mov     ecx, [wnd_height]
Line 1975... Line 2478...
1975
        mov     cx, word [fill_height]
2478
        mov     cx, word [fill_height]
1976
        int     0x40
2479
        int     0x40
1977
@@:
2480
@@:
1978
;        xor     ecx, ecx
2481
;        xor     ecx, ecx
1979
;        call    draw_image
2482
;        call    draw_image
1980
        and     [min_x], 0
2483
        mov     al, 65
-
 
2484
        mov     ebx, [MemForImage]
1981
        and     [min_y], 0
2485
        test    ebx, ebx
-
 
2486
        jz      @f
1982
        mov     eax, [cur_width]
2487
        mov     ecx, [cur_width]
-
 
2488
        imul    ecx, font_width*10000h
-
 
2489
        mov     cx, word [cur_height]
1983
        dec     eax
2490
        imul    cx, font_height
1984
        mov     [max_x], eax
2491
        mov     edx, [skinh]
1985
        mov     eax, [cur_height]
2492
        add     edx, 5*10000h
1986
        dec     eax
2493
        mov     esi, 8
-
 
2494
        mov     edi, console_colors
1987
        mov     [max_y], eax
2495
        xor     ebp, ebp
1988
        call    draw_image.force
2496
        int     0x40
-
 
2497
@@:
1989
        mov     al, 12
2498
        mov     al, 12
1990
        push    2
2499
        push    2
1991
        pop     ebx
2500
        pop     ebx
1992
        int     40h
2501
        int     40h
1993
        ret
2502
        ret
Line 2010... Line 2519...
2010
        pop     esi
2519
        pop     esi
2011
        int     40h
2520
        int     40h
2012
        ret
2521
        ret
Line 2013... Line 2522...
2013
 
2522
 
-
 
2523
draw_image:
-
 
2524
        mov     [bMemForImageValidData], byte 1
-
 
2525
        cmp     [MemForImage], 0
2014
draw_image:
2526
        jnz     .allocated
-
 
2527
; allocate memory for image
-
 
2528
        mov     ecx, [cur_width]
-
 
2529
        imul    ecx, [cur_height]
-
 
2530
        imul    ecx, font_width*font_height
-
 
2531
        call    pgalloc
-
 
2532
        test    eax, eax
-
 
2533
        jz      draw_image.nomem
-
 
2534
        mov     [MemForImage], eax
-
 
2535
        mov     [bMemForImageValidData], byte 0
2015
; determine draw rectangle
2536
.allocated:
2016
        and     [max_x], 0
2537
        and     [max_x], 0
-
 
2538
        or      [min_x], -1
2017
        or      [min_x], -1
2539
        and     [max_y], 0
-
 
2540
        or      [min_y], -1
-
 
2541
        mov     eax, [cursor_y]
-
 
2542
        mul     [cur_width]
-
 
2543
        add     eax, [cursor_x]
-
 
2544
        add     eax, eax
-
 
2545
        add     eax, [console_data_ptr]
-
 
2546
        xchg    [cur_cursor_pos], eax
-
 
2547
        mov     [old_cursor_pos], eax
2018
        or      [min_y], -1
2548
        mov     edi, [MemForImage]
2019
        mov     esi, [console_data_ptr]
2549
        mov     esi, [console_data_ptr]
-
 
2550
        mov     ecx, [cur_height]
2020
        xor     eax, eax
2551
.lh:
2021
        xor     edx, edx
2552
        push    ecx
2022
        mov     ecx, [cur_width]
-
 
2023
        imul    ecx, [cur_height]
2553
        mov     ecx, [cur_width]
2024
.m1:
-
 
2025
        mov     bx, [esi]
-
 
2026
        cmp     bx, [esi+ecx*2]
-
 
2027
        jz      .m2
-
 
2028
        cmp     eax, [min_x]
-
 
2029
        ja      @f
-
 
2030
        mov     [min_x], eax
-
 
2031
@@:
-
 
2032
        cmp     eax, [max_x]
-
 
2033
        jb      @f
-
 
2034
        mov     [max_x], eax
-
 
2035
@@:
-
 
2036
        cmp     edx, [min_y]
-
 
2037
        jae     @f
-
 
2038
        mov     [min_y], edx
-
 
2039
@@:
-
 
2040
        mov     [max_y], edx
-
 
2041
.m2:
-
 
2042
        add     esi, 2
2554
.lw:
2043
        inc     eax
2555
        push    ecx
2044
        cmp     eax, [cur_width]
-
 
2045
        jb      .m1
-
 
2046
        xor     eax, eax
-
 
2047
        inc     edx
2556
        mov     eax, [cur_width]
2048
        cmp     edx, [cur_height]
-
 
2049
        jb      .m1
2557
        imul    eax, [cur_height]
2050
        mov     eax, [cursor_x]
2558
        mov     ebx, [esi]
2051
        cmp     eax, -1
2559
        cmp     [bMemForImageValidData], 0
2052
        jz      .m3
2560
        jz      @f
2053
        cmp     eax, [min_x]
2561
        cmp     esi, [cur_cursor_pos]
2054
        ja      @f
-
 
2055
        mov     [min_x], eax
-
 
2056
@@:
2562
        jz      @f
2057
        cmp     eax, [max_x]
2563
        cmp     esi, [old_cursor_pos]
2058
        jb      @f
-
 
2059
        mov     [max_x], eax
-
 
2060
@@:
-
 
2061
        mov     edx, [cursor_y]
2564
        jz      @f
2062
        cmp     edx, [min_y]
2565
        cmp     bx, [eax*2+esi]
2063
        ja      @f
-
 
2064
        mov     [min_y], edx
-
 
2065
@@:
2566
        jnz     @f
2066
        cmp     edx, [max_y]
2567
        inc     esi
2067
        jb      @f
2568
        inc     esi
2068
        mov     [max_y], edx
2569
        jmp     .skip_symbol
2069
@@:
-
 
2070
.m3:
-
 
2071
        xchg    eax, [old_cursor_x]
-
 
2072
        xchg    edx, [old_cursor_y]
2570
@@:
2073
        cmp     eax, -1
-
 
2074
        jz      .m4
2571
        mov     [eax*2+esi], bx
2075
        cmp     eax, [min_x]
2572
        cmp     ecx, [min_x]
2076
        ja      @f
2573
        ja      @f
2077
        mov     [min_x], eax
2574
        mov     [min_x], ecx
2078
@@:
2575
@@:
2079
        cmp     eax, [max_x]
2576
        cmp     ecx, [max_x]
2080
        jb      @f
2577
        jb      @f
2081
        mov     [max_x], eax
2578
        mov     [max_x], ecx
2082
@@:
2579
@@:
2083
        cmp     edx, [min_y]
-
 
2084
        ja      @f
2580
        mov     eax, [esp+4]
2085
        mov     [min_y], edx
-
 
2086
@@:
2581
        mov     [min_y], eax
2087
        cmp     edx, [max_y]
2582
        cmp     eax, [max_y]
2088
        jb      @f
2583
        jb      @f
2089
        mov     [max_y], edx
2584
        mov     [max_y], eax
2090
@@:
-
 
2091
.m4:
-
 
2092
        cmp     [min_y], -1
-
 
2093
        jz      .nodraw
-
 
2094
.force:
-
 
2095
; allocate memory for image
-
 
2096
        mov     ecx, [max_x]
-
 
2097
        sub     ecx, [min_x]
-
 
2098
        inc     ecx
-
 
2099
        mov     [used_width], ecx
-
 
2100
        mov     edx, [max_y]
-
 
2101
        sub     edx, [min_y]
-
 
2102
        inc     edx
-
 
2103
        mov     [used_height], edx
-
 
2104
        imul    ecx, edx
-
 
2105
        imul    ecx, font_width*font_height
-
 
2106
        add     ecx, [heapend]
-
 
2107
        push    64
-
 
2108
        pop     eax
-
 
2109
        push    1
-
 
2110
        pop     ebx
-
 
2111
        int     0x40
-
 
2112
        test    eax, eax
-
 
2113
        jnz     draw_image.nomem
-
 
2114
        mov     edi, [heapend]
-
 
2115
        mov     esi, [console_data_ptr]
-
 
2116
        mov     eax, [min_y]
-
 
2117
        imul    eax, [cur_width]
-
 
2118
        add     eax, [min_x]
-
 
2119
        lea     esi, [esi+eax*2]
-
 
2120
        mov     ecx, [used_height]
-
 
2121
.lh:
-
 
2122
        push    ecx esi
-
 
2123
        mov     ecx, [used_width]
-
 
2124
.lw:
-
 
2125
        push    ecx
-
 
2126
        mov     ebx, [esi]
-
 
2127
        mov     eax, [cur_width]
-
 
2128
        imul    eax, [cur_height]
-
 
2129
        mov     [eax*2+esi], bx
-
 
2130
        movzx   eax, bl
2585
@@:
2131
        push    edi
2586
        push    edi
-
 
2587
        xor     eax, eax
-
 
2588
        mov     al, [esi+1]
2132
        movzx   ebx, bh
2589
        and     al, 0xF
-
 
2590
        mov     ebx, eax
2133
        mov     ebp, ebx
2591
        mov     al, [esi+1]
2134
        shr     ebp, 4
2592
        shr     al, 4
2135
        and     ebx, 0xF
2593
        mov     ebp, eax
-
 
2594
        sub     ebx, ebp
2136
        sub     ebx, ebp
2595
        lodsb
2137
        add     esi, 2
2596
        inc     esi
2138
if font_width > 8
2597
if font_width > 8
2139
        lea     edx, [eax+eax+font]
2598
        lea     edx, [eax+eax+font]
2140
else
2599
else
2141
        lea     edx, [eax+font]
2600
        lea     edx, [eax+font]
2142
end if
-
 
2143
        mov     ecx, font_height
2601
end if
2144
.sh:
-
 
2145
        push    ecx edx edi
2602
.sh:
2146
        xor     ecx, ecx
2603
        mov     ecx, [edx]
2147
        mov     edx, [edx]
-
 
2148
.sw:
2604
repeat font_width
2149
        shr     edx, 1
2605
        shr     ecx, 1
2150
        sbb     eax, eax
2606
        sbb     eax, eax
2151
        and     eax, ebx
2607
        and     eax, ebx
2152
        add     eax, ebp
2608
        add     eax, ebp
-
 
2609
        mov     [edi+%-1], al
2153
        mov     [edi], al
2610
end repeat
-
 
2611
        mov     eax, [cur_width]
2154
        add     ecx, 1
2612
;        imul    eax, font_width
-
 
2613
;        add     edi, eax
2155
        add     edi, 1
2614
if font_width = 6
-
 
2615
        lea     eax, [eax*2+eax]
-
 
2616
        lea     edi, [edi+eax*2]
2156
        cmp     ecx, font_width
2617
else if font_width = 7
2157
        jb      .sw
2618
        lea     edi, [edi+eax*8]
-
 
2619
        sub     edi, eax
2158
        pop     edi edx ecx
2620
else if font_width = 8
-
 
2621
        lea     edi, [edi+eax*8]
2159
        mov     eax, [used_width]
2622
else if font_width = 9
2160
        imul    eax, font_width
2623
        lea     edi, [edi+eax*8]
-
 
2624
        add     edi, eax
-
 
2625
else if font_width = 10
-
 
2626
        lea     eax, [eax*4+eax]
-
 
2627
        lea     edi, [edi+eax*2]
-
 
2628
else
-
 
2629
Unknown font_width value!
2161
        add     edi, eax
2630
end if
2162
if font_width > 8
2631
if font_width > 8
-
 
2632
        add     edx, 256*2
2163
        add     edx, 256*2
2633
        cmp     edx, font+256*2*font_height
2164
else
2634
else
-
 
2635
        add     edx, 256
2165
        add     edx, 256
2636
        cmp     edx, font+256*font_height
2166
end if
2637
end if
2167
        loop    .sh
2638
        jb      .sh
2168
        pop     edi
2639
        pop     edi
2169
.skip_symbol:
2640
.skip_symbol:
2170
        pop     ecx
2641
        pop     ecx
2171
        add     edi, font_width
2642
        add     edi, font_width
2172
        dec     ecx
2643
        dec     ecx
2173
        jnz     .lw
2644
        jnz     .lw
2174
        mov     eax, [used_width]
2645
        mov     eax, [cur_width]
2175
        imul    eax, (font_height-1)*font_width
2646
        imul    eax, (font_height-1)*font_width
2176
        add     edi, eax
2647
        add     edi, eax
2177
        pop     esi ecx
-
 
2178
        add     esi, [cur_width]
-
 
2179
        add     esi, [cur_width]
2648
        pop     ecx
2180
        dec     ecx
2649
        dec     ecx
2181
        jnz     .lh
2650
        jnz     .lh
2182
; cursor
2651
; cursor
2183
        mov     eax, [cursor_y]
2652
        mov     eax, [cursor_y]
2184
        inc     eax
2653
        inc     eax
2185
        jz      .nocursor
-
 
2186
        sub     eax, [min_y]
2654
        jz      .nocursor
2187
        mul     [used_width]
2655
        mul     [cur_width]
2188
        imul    eax, font_height*font_width
2656
        imul    eax, font_height*font_width
2189
        mov     edx, [cursor_x]
-
 
2190
        sub     edx, [min_x]
2657
        mov     edx, [cursor_x]
2191
        inc     edx
2658
        inc     edx
2192
        imul    edx, font_width
2659
        imul    edx, font_width
2193
        add     eax, edx
2660
        add     eax, edx
2194
        add     eax, [heapend]
2661
        add     eax, [MemForImage]
2195
        mov     edx, [used_width]
2662
        mov     edx, [cur_width]
2196
        imul    edx, font_width
2663
        imul    edx, font_width
2197
        neg     edx
2664
        neg     edx
2198
        mov     ecx, (font_height*15+50)/100
2665
        mov     ecx, (font_height*15+50)/100
2199
.cursor_loop:
2666
.cursor_loop:
Line 2208... Line 2675...
2208
        loop    @b
2675
        loop    @b
2209
        pop     eax
2676
        pop     eax
2210
        pop     ecx
2677
        pop     ecx
2211
        loop    .cursor_loop
2678
        loop    .cursor_loop
2212
.nocursor:
2679
.nocursor:
-
 
2680
        cmp     [min_y], -1
-
 
2681
        jz      .nodraw
2213
        mov     ecx, [used_width]
2682
        mov     ecx, [cur_width]
2214
        imul    ecx, font_width*65536
2683
        mov     ebx, [cur_height]
-
 
2684
        mov     eax, ebx
-
 
2685
        sub     ebx, [max_y]
2215
        mov     cx, word [used_height]
2686
        sub     eax, [min_y]
-
 
2687
        sub     eax, ebx
-
 
2688
        inc     eax
2216
        imul    cx, font_height
2689
        imul    ebp, eax, font_height
-
 
2690
        mov     edx, ecx
2217
        mov     edx, [min_x]
2691
        sub     edx, [max_x]
2218
        imul    edx, font_width
2692
        imul    edx, font_width
2219
        add     edx, 5
2693
        mov     eax, edx
2220
        shl     edx, 16
2694
        shl     edx, 16
-
 
2695
        imul    dx, bx, font_height
-
 
2696
        imul    ebx, [cur_width]
2221
        mov     dx, word [min_y]
2697
        mov     ecx, [max_x]
-
 
2698
        sub     ecx, [min_x]
-
 
2699
        inc     ecx
-
 
2700
        imul    ecx, font_width*10000h
-
 
2701
        add     ecx, ebp
2222
        imul    dx, font_height
2702
        imul    ebx, font_width*font_height
-
 
2703
        add     ebx, [MemForImage]
-
 
2704
        add     ebx, eax
2223
        add     edx, [skinh]
2705
        add     edx, [skinh]
-
 
2706
        add     edx, 5*10000h
-
 
2707
        imul    esi, [cur_width], font_width
-
 
2708
        mov     ebp, ecx
-
 
2709
        shr     ebp, 16
-
 
2710
        sub     esi, ebp
-
 
2711
        mov     ebp, esi
2224
        push    65
2712
        push    65
2225
        pop     eax
2713
        pop     eax
2226
        mov     ebx, [heapend]
2714
        mov     edi, console_colors
2227
        push    8
2715
        push    8
2228
        pop     esi
2716
        pop     esi
2229
        mov     edi, console_colors
-
 
2230
        xor     ebp, ebp
-
 
2231
        int     0x40
2717
        int     40h
2232
        push    64
-
 
2233
        pop     eax
-
 
2234
        push    1
-
 
2235
        pop     ebx
-
 
2236
        mov     ecx, [heapend]
-
 
2237
        int     0x40
-
 
2238
.nodraw:
2718
.nodraw:
2239
        ret
2719
        ret
Line 2240... Line 2720...
2240
 
2720
 
2241
get_console_ptr:
2721
get_console_ptr:
Line 2417... Line 2897...
2417
        rep     stosw
2897
        rep     stosw
2418
        mov     al, 0xBC
2898
        mov     al, 0xBC
2419
        stosw
2899
        stosw
2420
        ret
2900
        ret
Line -... Line 2901...
-
 
2901
 
-
 
2902
calc_colwidths:
-
 
2903
; in: ebp->panel data
-
 
2904
        imul    esi, [ebp + panel1_colmode - panel1_data], PanelMode.size
-
 
2905
        add     esi, colmodes
-
 
2906
        lodsd
-
 
2907
        mov     ecx, eax
-
 
2908
        lea     edx, [ecx-1]
-
 
2909
        xor     ebx, ebx
-
 
2910
        add     esi, PanelMode.ColumnWidths-4
-
 
2911
        push    ecx esi
-
 
2912
        xor     eax, eax
-
 
2913
.loop:
-
 
2914
        lodsb
-
 
2915
        add     edx, eax
-
 
2916
        cmp     al, 1
-
 
2917
        adc     ebx, 0
-
 
2918
        loop    .loop
-
 
2919
        pop     esi ecx
-
 
2920
        lea     edi, [ebp + panel1_colwidths - panel1_data]
-
 
2921
        test    ebx, ebx
-
 
2922
        jz      .loop2
-
 
2923
        mov     eax, [ebp + panel1_width - panel1_data]
-
 
2924
        dec     eax
-
 
2925
        dec     eax
-
 
2926
        sub     eax, edx
-
 
2927
        jae     @f
-
 
2928
        xor     eax, eax
-
 
2929
@@:
-
 
2930
        xor     edx, edx
-
 
2931
        div     ebx
-
 
2932
        test    eax, eax
-
 
2933
        jnz     @f
-
 
2934
        xor     edx, edx
-
 
2935
        inc     eax
-
 
2936
@@:
-
 
2937
        push    eax
-
 
2938
.loop2:
-
 
2939
        movzx   eax, byte [esi]
-
 
2940
        inc     esi
-
 
2941
        test    eax, eax
-
 
2942
        jnz     @f
-
 
2943
        pop     eax
-
 
2944
        push    eax
-
 
2945
        dec     ebx
-
 
2946
        cmp     ebx, edx
-
 
2947
        jae     @f
-
 
2948
        inc     eax
-
 
2949
@@:
-
 
2950
        stosd
-
 
2951
        loop    .loop2
-
 
2952
        pop     eax
-
 
2953
        and     dword [edi], 0
-
 
2954
        ret
2421
 
2955
 
2422
draw_panel:
2956
draw_panel:
2423
        mov     eax, [ebp + panel1_left - panel1_data]
2957
        mov     eax, [ebp + panel1_left - panel1_data]
2424
        mov     edx, [ebp + panel1_top - panel1_data]
2958
        mov     edx, [ebp + panel1_top - panel1_data]
2425
        call    get_console_ptr
2959
        call    get_console_ptr
Line 2440... Line 2974...
2440
        mov     al, 0xC4
2974
        mov     al, 0xC4
2441
        lea     ecx, [ebx-2]
2975
        lea     ecx, [ebx-2]
2442
        rep     stosw
2976
        rep     stosw
2443
        mov     al, 0xB6
2977
        mov     al, 0xB6
2444
        stosw
2978
        stosw
-
 
2979
 
2445
        mov     eax, [ebp + panel1_width - panel1_data]
2980
        imul    esi, [ebp + panel1_colmode - panel1_data], PanelMode.size
2446
        sub     eax, 3
2981
        add     esi, colmodes
2447
        shr     eax, 1
2982
        lodsd
2448
        mov     [column_width], eax
2983
        mov     ecx, eax        ; number of columns
-
 
2984
        lea     ebx, [ebp + panel1_colwidths - panel1_data]
2449
        mov     eax, [ebp + panel1_left - panel1_data]
2985
        mov     eax, [ebp + panel1_left - panel1_data]
2450
        inc     eax
2986
        inc     eax
2451
        mov     [column_left], eax
2987
        mov     [column_left], eax
-
 
2988
        mov     eax, [ebp + panel1_top - panel1_data]
-
 
2989
        inc     eax
-
 
2990
        mov     [column_top], eax
-
 
2991
        mov     eax, [ebp + panel1_height - panel1_data]
-
 
2992
        sub     eax, 4
-
 
2993
        mov     [column_height], eax
-
 
2994
        dec     eax
-
 
2995
        mov     [ebp + panel1_colsz - panel1_data], eax
-
 
2996
        and     [ebp + panel1_colst - panel1_data], 0
-
 
2997
        mov     eax, [ebp + panel1_start - panel1_data]
-
 
2998
        mov     [column_index], eax
-
 
2999
        mov     [last_column_index], eax
-
 
3000
.columns_loop:
-
 
3001
        push    ecx
-
 
3002
        mov     eax, [ebx]
-
 
3003
        add     ebx, 4
-
 
3004
        mov     [column_width], eax
-
 
3005
        cmp     ecx, 1
-
 
3006
        jz      .skip_right_border
2452
        add     eax, [column_width]
3007
        add     eax, [column_left]
2453
        mov     edx, [ebp + panel1_top - panel1_data]
3008
        mov     edx, [ebp + panel1_top - panel1_data]
2454
        inc     edx
-
 
2455
        mov     [column_top], edx
-
 
2456
        dec     edx
-
 
2457
        call    get_console_ptr
3009
        call    get_console_ptr
2458
        mov     ah, [panel_border_color]
3010
        mov     ah, [panel_header_color]
2459
        mov     al, 0xD1
3011
        mov     al, 0xD1
2460
        mov     [edi], ax
3012
        mov     [edi], ax
2461
        add     edi, [cur_width]
3013
        add     edi, [cur_width]
2462
        add     edi, [cur_width]
3014
        add     edi, [cur_width]
2463
        mov     ecx, [ebp + panel1_height - panel1_data]
-
 
2464
        sub     ecx, 4
-
 
2465
        mov     [column_height], ecx
3015
        mov     ecx, [column_height]
2466
        mov     al, 0xB3
3016
        mov     al, 0xB3
2467
@@:
3017
@@:
2468
        mov     [edi], ax
3018
        mov     [edi], ax
2469
        add     edi, [cur_width]
3019
        add     edi, [cur_width]
2470
        add     edi, [cur_width]
3020
        add     edi, [cur_width]
2471
        loop    @b
3021
        loop    @b
2472
        mov     al, 0xC1
3022
        mov     al, 0xC1
2473
        stosw
3023
        stosw
-
 
3024
.skip_right_border:
2474
        mov     eax, [column_height]
3025
        mov     eax, [column_left]
2475
        dec     eax
3026
        mov     edx, [column_top]
2476
        mov     [ebp + panel1_colsz - panel1_data], eax
3027
        call    get_console_ptr
-
 
3028
; § £®«®¢®ª á⮫¡æ 
-
 
3029
        push    edi
2477
        add     eax, eax
3030
        mov     edx, [esi]
2478
        mov     [ebp + panel1_colst - panel1_data], eax
3031
        and     edx, 0xF
2479
        mov     eax, [ebp + panel1_start - panel1_data]
3032
        mov     edx, [column_headers+edx*4]
2480
        mov     [column_index], eax
3033
        movzx   ecx, byte [edx]
2481
        call    draw_column
3034
        inc     edx
2482
        mov     eax, [ebp + panel1_width - panel1_data]
3035
        cmp     ecx, [column_width]
2483
        sub     eax, 3
3036
        jb      @f
2484
        mov     ecx, [column_width]
3037
        mov     ecx, [column_width]
-
 
3038
@@:
-
 
3039
        push    ecx
-
 
3040
        sub     ecx, [column_width]
-
 
3041
        neg     ecx
2485
        sub     eax, ecx
3042
        shr     ecx, 1
-
 
3043
        mov     al, ' '
-
 
3044
        mov     ah, [column_header_color]
-
 
3045
        rep     stosw
-
 
3046
        pop     ecx
-
 
3047
        jecxz   .skipcopyhdr
-
 
3048
        push    ecx
-
 
3049
@@:
-
 
3050
        mov     al, [edx]
-
 
3051
        inc     edx
-
 
3052
        stosw
-
 
3053
        loop    @b
-
 
3054
        pop     ecx
-
 
3055
.skipcopyhdr:
2486
        mov     [column_width], eax
3056
        sub     ecx, [column_width]
-
 
3057
        neg     ecx
2487
        inc     ecx
3058
        inc     ecx
-
 
3059
        shr     ecx, 1
-
 
3060
        mov     al, ' '
-
 
3061
        rep     stosw
-
 
3062
        pop     edi
-
 
3063
        add     edi, [cur_width]
-
 
3064
        add     edi, [cur_width]
-
 
3065
; á ¬ á⮫¡¥æ
-
 
3066
        mov     eax, [esi]
-
 
3067
        and     eax, 0xF
-
 
3068
        push    ebx esi
-
 
3069
        call    dword [draw_column_proc+eax*4]
-
 
3070
        pop     esi ebx
-
 
3071
        inc     esi
-
 
3072
        mov     eax, [column_width]
-
 
3073
        inc     eax
2488
        add     [column_left], ecx
3074
        add     [column_left], eax
-
 
3075
        pop     ecx
-
 
3076
        dec     ecx
2489
        call    draw_column
3077
        jnz     .columns_loop
2490
; ‡ £®«®¢®ª ¯ ­¥«¨ (⥪ãé ï ¯ ¯ª )
3078
; ‡ £®«®¢®ª ¯ ­¥«¨ (⥪ãé ï ¯ ¯ª )
2491
        lea     esi, [ebp + panel1_dir - panel1_data]
3079
        lea     esi, [ebp + panel1_dir - panel1_data]
2492
        mov     edi, cur_header
3080
        mov     edi, cur_header
2493
        mov     ecx, [ebp + panel1_width - panel1_data]
3081
        mov     ecx, [ebp + panel1_width - panel1_data]
2494
        sub     ecx, 7
3082
        sub     ecx, 7
Line 2553... Line 3141...
2553
        inc     eax
3141
        inc     eax
2554
        call    get_console_ptr
3142
        call    get_console_ptr
2555
        movzx   eax, [ebp + panel1_sortmode - panel1_data]
3143
        movzx   eax, [ebp + panel1_sortmode - panel1_data]
2556
        mov     al, [compare_names+eax]
3144
        mov     al, [compare_names+eax]
2557
        stosb
3145
        stosb
-
 
3146
        mov     eax, [ebp + panel1_selected_num - panel1_data]
-
 
3147
        test    eax, eax
-
 
3148
        jz      .skip_selected_info
-
 
3149
; ˆ­ä®à¬ æ¨ï ® ¢ë¤¥«¥­­ëå ä ©« å
-
 
3150
        push    dword [ebp + panel1_selected_size+4 - panel1_data]
-
 
3151
        push    dword [ebp + panel1_selected_size - panel1_data]
-
 
3152
        call    fill_total_info
-
 
3153
        mov     eax, [ebp + panel1_width - panel1_data]
-
 
3154
        sub     eax, 2
-
 
3155
        cmp     ecx, eax
-
 
3156
        jbe     @f
-
 
3157
        mov     ecx, eax
-
 
3158
        mov     edi, saved_file_name+512
-
 
3159
        sub     edi, eax
-
 
3160
        mov     byte [edi], '.'
-
 
3161
        mov     word [edi+1], '..'
-
 
3162
@@:
-
 
3163
        mov     esi, edi
-
 
3164
        sub     eax, ecx
-
 
3165
        shr     eax, 1
-
 
3166
        inc     eax
-
 
3167
        add     eax, [ebp + panel1_left - panel1_data]
-
 
3168
        mov     edx, [ebp + panel1_top - panel1_data]
-
 
3169
        add     edx, [ebp + panel1_height - panel1_data]
-
 
3170
        sub     edx, 3
-
 
3171
        call    get_console_ptr
-
 
3172
        mov     ah, [panel_numselected_color]
-
 
3173
@@:
-
 
3174
        lodsb
-
 
3175
        stosw
-
 
3176
        loop    @b
-
 
3177
.skip_selected_info:
-
 
3178
; ˆ­ä®à¬ æ¨ï ®¡ ®¡é¥¬ ç¨á«¥ ¨ à §¬¥à¥ ä ©«®¢ ¯ ­¥«¨
-
 
3179
        mov     eax, [ebp + panel1_total_num - panel1_data]
-
 
3180
        push    dword [ebp + panel1_total_size+4 - panel1_data]
-
 
3181
        push    dword [ebp + panel1_total_size - panel1_data]
-
 
3182
        call    fill_total_info
-
 
3183
        mov     eax, [ebp + panel1_width - panel1_data]
-
 
3184
        sub     eax, 2
-
 
3185
        cmp     ecx, eax
-
 
3186
        jbe     @f
-
 
3187
        mov     ecx, eax
-
 
3188
        mov     byte [edi+ecx-3], '.'
-
 
3189
        mov     word [edi+ecx-2], '..'
-
 
3190
@@:
-
 
3191
        sub     eax, ecx
-
 
3192
        shr     eax, 1
-
 
3193
        inc     eax
-
 
3194
        add     eax, [ebp + panel1_left - panel1_data]
-
 
3195
        add     edx, [ebp + panel1_top - panel1_data]
-
 
3196
        add     edx, [ebp + panel1_height - panel1_data]
-
 
3197
        dec     edx
-
 
3198
        mov     esi, edi
-
 
3199
        call    get_console_ptr
-
 
3200
        mov     ah, [panel_number_color]
-
 
3201
@@:
-
 
3202
        lodsb
-
 
3203
        stosw
-
 
3204
        loop    @b
2558
        cmp     [ebp + panel1_numfiles - panel1_data], 0
3205
        cmp     [ebp + panel1_numfiles - panel1_data], 0
2559
        jz      .skip_curinfo
3206
        jz      .skip_curinfo
2560
; ˆ­ä®à¬ æ¨ï ® ¢ë¡à ­­®¬ ä ©«¥
3207
; ˆ­ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥
2561
        mov     ebx, [ebp + panel1_index - panel1_data]
3208
        mov     ebx, [ebp + panel1_index - panel1_data]
2562
        mov     eax, [ebp + panel1_files - panel1_data]
3209
        mov     eax, [ebp + panel1_files - panel1_data]
2563
        mov     ebx, [eax+ebx*4]
3210
        mov     ebx, [eax+ebx*4]
2564
        mov     eax, [ebp + panel1_left - panel1_data]
3211
        mov     eax, [ebp + panel1_left - panel1_data]
2565
        add     eax, [ebp + panel1_width - panel1_data]
3212
        add     eax, [ebp + panel1_width - panel1_data]
Line 2570... Line 3217...
2570
        dec     edx
3217
        dec     edx
2571
        call    get_console_ptr
3218
        call    get_console_ptr
2572
        mov     ecx, [ebp + panel1_width - panel1_data]
3219
        mov     ecx, [ebp + panel1_width - panel1_data]
2573
        dec     ecx
3220
        dec     ecx
2574
        dec     ecx
3221
        dec     ecx
-
 
3222
        cmp     [ebp + panel1_colmode - panel1_data], 3
-
 
3223
        jz      .show_curname
2575
; ‚à¥¬ï ¬®¤¨ä¨ª æ¨¨
3224
; ‚à¥¬ï ¬®¤¨ä¨ª æ¨¨
2576
        sub     edi, 5*2
3225
        sub     edi, 5*2
2577
        sub     ecx, 6
3226
        sub     ecx, 6
2578
        mov     al, [ebx+24+2]
3227
        mov     al, [ebx+24+2]
2579
        aam
3228
        aam
Line 2700... Line 3349...
2700
        dec     ecx
3349
        dec     ecx
2701
        test    edx, edx
3350
        test    edx, edx
2702
        jnz     .size_num
3351
        jnz     .size_num
2703
.size_done:
3352
.size_done:
2704
        cld
3353
        cld
-
 
3354
.show_curname:
2705
; ˆ¬ï
3355
; ˆ¬ï
2706
        sub     edi, ecx
3356
        sub     edi, ecx
2707
        sub     edi, ecx
3357
        sub     edi, ecx
2708
        lea     esi, [ebx+40]
3358
        lea     esi, [ebx+40]
2709
@@:
3359
@@:
Line 2733... Line 3383...
2733
        rep     stosw
3383
        rep     stosw
2734
.skip_curinfo:
3384
.skip_curinfo:
2735
        call    draw_image
3385
        call    draw_image
2736
        ret
3386
        ret
Line 2737... Line 3387...
2737
 
3387
 
2738
draw_column:
3388
fill_total_info:
2739
        mov     eax, [column_left]
-
 
2740
        mov     edx, [column_top]
-
 
2741
        call    get_console_ptr
-
 
2742
; § £®«®¢®ª á⮫¡æ 
-
 
2743
        push    edi
-
 
2744
        mov     ah, [column_header_color]
3389
        mov     edi, saved_file_name+511
2745
        mov     al, ' '
-
 
2746
        mov     ecx, [column_width]
-
 
2747
if lang eq ru
-
 
2748
        sub     ecx, 3
-
 
2749
else
-
 
2750
        sub     ecx, 4
-
 
2751
end if
-
 
2752
        shr     ecx, 1
-
 
2753
        rep     stosw
3390
        mov     byte [edi], ' '
2754
if lang eq ru
3391
if lang eq ru
2755
        mov     al, 'ˆ'
3392
        mov     byte [edi-1], '¥'
2756
        stosw
3393
        dec     edi
2757
        mov     al, '¬'
3394
        cmp     eax, 1
2758
        stosw
3395
        jz      @f
2759
        mov     al, 'ï'
3396
        mov     word [edi-1], ' å'
-
 
3397
        dec     edi
-
 
3398
@@:
-
 
3399
        mov     dword [edi-4], 'ä ©«'
-
 
3400
        mov     byte [edi-5], ' '
2760
        stosw
3401
        sub     edi, 5
2761
else
3402
else
2762
        mov     al, 'N'
3403
        cmp     eax, 1
2763
        stosw
3404
        jz      @f
2764
        mov     al, 'a'
3405
        dec     edi
-
 
3406
        mov     byte [edi], 's'
2765
        stosw
3407
@@:
2766
        mov     al, 'm'
-
 
2767
        stosw
3408
        mov     dword [edi-4], 'file'
2768
        mov     al, 'e'
3409
        mov     byte [edi-5], ' '
2769
        stosw
3410
        sub     edi, 5
-
 
3411
end if
-
 
3412
        xor     edx, edx
-
 
3413
        push    10
-
 
3414
        pop     ecx
-
 
3415
@@:
-
 
3416
        div     ecx
2770
end if
3417
        dec     edi
-
 
3418
        add     dl, '0'
2771
        mov     al, ' '
3419
        mov     [edi], dl
-
 
3420
        xor     edx, edx
-
 
3421
        test    eax, eax
2772
        mov     ecx, [column_width]
3422
        jnz     @b
-
 
3423
if lang eq ru
-
 
3424
        mov     dword [edi-4], 'â ¢ '
2773
if lang eq ru
3425
        mov     dword [edi-8], ' ¡ ©'
2774
        sub     ecx, 2
3426
        sub     edi, 8
-
 
3427
else
-
 
3428
        mov     dword [edi-4], ' in '
-
 
3429
        mov     dword [edi-8], 'ytes'
2775
else
3430
        mov     word [edi-10], ' b'
2776
        sub     ecx, 3
3431
        sub     edi, 10
-
 
3432
end if
-
 
3433
        lea     esi, [edi-3]
-
 
3434
        mov     edx, [esp+8]
-
 
3435
        mov     eax, [esp+4]
-
 
3436
.selsizel:
-
 
3437
        push    edx
-
 
3438
        mov     ebx, edx
-
 
3439
        xor     edx, edx
-
 
3440
        add     ebx, ebx
-
 
3441
        adc     edx, edx
-
 
3442
        push    ebx
-
 
3443
        push    edx
-
 
3444
        add     ebx, ebx
-
 
3445
        adc     edx, edx
-
 
3446
        add     ebx, [esp+4]
-
 
3447
        adc     edx, [esp]
-
 
3448
        add     esp, 8
2777
end if
3449
        add     eax, ebx
-
 
3450
        adc     edx, 0
-
 
3451
        div     ecx
-
 
3452
        dec     edi
-
 
3453
        cmp     edi, esi
-
 
3454
        jae     @f
2778
        shr     ecx, 1
3455
        mov     byte [edi], ','
-
 
3456
        dec     edi
-
 
3457
        sub     esi, 4
2779
        rep     stosw
3458
@@:
-
 
3459
        pop     ebx
-
 
3460
        add     dl, '0'
-
 
3461
        mov     byte [edi], dl
-
 
3462
        xchg    eax, ebx
-
 
3463
        mul     [muldiv10]
-
 
3464
        add     eax, ebx
-
 
3465
        adc     edx, 0
-
 
3466
        mov     ebx, eax
-
 
3467
        or      ebx, edx
-
 
3468
        jnz     .selsizel
-
 
3469
        dec     edi
-
 
3470
        mov     byte [edi], ' '
-
 
3471
        mov     ecx, saved_file_name+512
-
 
3472
        sub     ecx, edi
-
 
3473
        ret     8
-
 
3474
 
-
 
3475
get_file_color:
2780
        pop     edi
3476
        mov     ah, [esi + 6]
-
 
3477
        cmp     ebp, [active_panel]
-
 
3478
        jnz     @f
-
 
3479
        cmp     ecx, [ebp + panel1_index - panel1_data]
-
 
3480
        jnz     @f
-
 
3481
        mov     ah, [esi + 7]
-
 
3482
@@:
-
 
3483
        test    byte [esi + 303], 1
-
 
3484
        jnz     @f
2781
        add     edi, [cur_width]
3485
        mov     ah, [esi + 4]
-
 
3486
        cmp     ebp, [active_panel]
-
 
3487
        jnz     @f
-
 
3488
        cmp     ecx, [ebp + panel1_index - panel1_data]
-
 
3489
        jnz     @f
-
 
3490
        mov     ah, [esi + 5]
2782
        add     edi, [cur_width]
3491
@@:
-
 
3492
        ret
-
 
3493
 
-
 
3494
draw_name_column:
-
 
3495
        mov     eax, [column_index]
2783
; ä ©«ë
3496
        mov     [last_column_index], eax
2784
        mov     edx, [ebp + panel1_numfiles - panel1_data]
3497
        mov     edx, [ebp + panel1_numfiles - panel1_data]
2785
        mov     ecx, [column_height]
3498
        mov     ecx, [column_height]
2786
        dec     ecx
3499
        dec     ecx
2787
.l:
3500
.l:
2788
        cmp     [column_index], edx
3501
        cmp     [column_index], edx
2789
        jae     .ret
3502
        jae     .ret
2790
        push    ecx
-
 
2791
        mov     esi, [column_index]
-
 
2792
        mov     ecx, [ebp + panel1_files - panel1_data]
-
 
2793
        mov     esi, [ecx+esi*4]
-
 
2794
        add     esi, 40
-
 
2795
        mov     ah, [esi - 40 + 5]
-
 
2796
        cmp     ebp, [active_panel]
-
 
2797
        jnz     @f
3503
        push    ecx
2798
        mov     ecx, [column_index]
3504
        mov     ecx, [column_index]
2799
        cmp     ecx, [ebp + panel1_index - panel1_data]
3505
        mov     esi, [ebp + panel1_files - panel1_data]
2800
        jnz     @f
3506
        mov     esi, [esi+ecx*4]
-
 
3507
        mov     ebx, [esi]
2801
        mov     ah, [esi - 40 + 6]
3508
        call    get_file_color
2802
@@:
3509
        add     esi, 40
2803
        mov     ecx, [column_width]
3510
        mov     ecx, [column_width]
2804
        push    edi
3511
        push    edi
2805
@@:
3512
@@:
2806
        lodsb
3513
        lodsb
2807
        test    al, al
3514
        test    al, al
2808
        jz      @f
3515
        jz      @f
2809
        stosw
3516
        stosw
-
 
3517
        loop    @b
2810
        loop    @b
3518
        lodsb
2811
        cmp     byte [esi], 0
3519
        test    al, al
2812
        jz      @f
3520
        jz      @f
-
 
3521
        mov     byte [edi], '}'
-
 
3522
        jmp     .continue
-
 
3523
@@:
-
 
3524
        test    bl, 10h
-
 
3525
        jnz     .noalignext
-
 
3526
        mov     ebx, [ebp + panel1_colmode - panel1_data]
-
 
3527
; sizeof(PanelMode) = 40
-
 
3528
        lea     ebx, [ebx+ebx*4]
-
 
3529
        cmp     [colmodes+ebx*8+PanelMode.bAlignExtensions], 0
-
 
3530
        jz      .noalignext
-
 
3531
        push    ecx
-
 
3532
        sub     ecx, [column_width]
-
 
3533
        neg     ecx
-
 
3534
        jz      .noalignext2
-
 
3535
        dec     esi
-
 
3536
@@:
-
 
3537
        dec     esi
-
 
3538
        cmp     byte [esi], '.'
-
 
3539
        loopnz  @b
-
 
3540
        jnz     .noalignext2
-
 
3541
        inc     esi
-
 
3542
        sub     ecx, [column_width]
-
 
3543
        neg     ecx
-
 
3544
        sub     ecx, [esp]
-
 
3545
        sub     edi, ecx
-
 
3546
        sub     edi, ecx
-
 
3547
        dec     ecx
-
 
3548
        mov     ebx, [esp+4]
-
 
3549
        cmp     ecx, 3
-
 
3550
        ja      @f
-
 
3551
        mov     cl, 3
-
 
3552
@@:
-
 
3553
        sub     ecx, [column_width]
-
 
3554
        sub     ebx, edi
-
 
3555
        sar     ebx, 1
-
 
3556
        sub     ebx, ecx
-
 
3557
        pop     ecx
-
 
3558
        inc     ecx
-
 
3559
        push    0
-
 
3560
        cmp     ecx, ebx
-
 
3561
        jbe     @f
-
 
3562
        sub     ecx, ebx
-
 
3563
        mov     [esp], ecx
2813
        mov     byte [edi], '}'
3564
        mov     ecx, ebx
2814
@@:
3565
@@:
2815
        mov     al, ' '
3566
        mov     al, ' '
-
 
3567
        rep     stosw
-
 
3568
@@:
-
 
3569
        lodsb
-
 
3570
        test    al, al
-
 
3571
        jz      .noalignext2
-
 
3572
        stosw
-
 
3573
        jmp     @b
-
 
3574
.noalignext2:
-
 
3575
        pop     ecx
-
 
3576
.noalignext:
-
 
3577
        mov     al, ' '
-
 
3578
        rep     stosw
2816
        rep     stosw
3579
.continue:
2817
        pop     edi
3580
        pop     edi
2818
        add     edi, [cur_width]
3581
        add     edi, [cur_width]
2819
        add     edi, [cur_width]
3582
        add     edi, [cur_width]
2820
        inc     [column_index]
3583
        inc     [column_index]
2821
        pop     ecx
3584
        pop     ecx
2822
        dec     ecx
3585
        dec     ecx
2823
        jnz     .l
3586
        jnz     .l
-
 
3587
.ret:
-
 
3588
        mov     eax, [ebp + panel1_colsz - panel1_data]
2824
.ret:
3589
        add     [ebp + panel1_colst - panel1_data], eax
2825
        cmp     ebp, panel1_data
3590
        cmp     ebp, panel1_data
2826
        jnz     .ret2
3591
        jnz     .ret2
2827
; —¨á«® íªà ­®¢
3592
; —¨á«® íªà ­®¢
2828
        mov     eax, [num_screens]
3593
        mov     eax, [num_screens]
Line 2853... Line 3618...
2853
@@:
3618
@@:
2854
        mov     al, ']'
3619
        mov     al, ']'
2855
        mov     ah, [panel_nscreens_color]
3620
        mov     ah, [panel_nscreens_color]
2856
        stosw
3621
        stosw
2857
.ret2:
3622
.ret2:
-
 
3623
draw_empty_column:
-
 
3624
        ret
-
 
3625
 
-
 
3626
draw_size_column:
-
 
3627
        add     edi, [column_width]
-
 
3628
        add     edi, [column_width]
-
 
3629
        dec     edi
-
 
3630
        dec     edi
-
 
3631
        std
-
 
3632
        mov     ecx, [column_height]
-
 
3633
        dec     ecx
-
 
3634
        push    [last_column_index]
-
 
3635
.l:
-
 
3636
        mov     edx, [ebp + panel1_numfiles - panel1_data]
-
 
3637
        cmp     [last_column_index], edx
-
 
3638
        jae     .ret
-
 
3639
        push    ecx
-
 
3640
        push    edi
-
 
3641
        mov     ecx, [last_column_index]
-
 
3642
        mov     esi, [ebp + panel1_files - panel1_data]
-
 
3643
        mov     esi, [esi+ecx*4]
-
 
3644
        call    get_file_color
-
 
3645
        mov     ecx, [column_width]
-
 
3646
@@:
-
 
3647
        mov     ebx, eax
-
 
3648
        cmp     word [esi+40], '..'
-
 
3649
        jnz     .nodotdot
-
 
3650
        cmp     byte [esi+42], 0
-
 
3651
        jnz     .nodotdot
-
 
3652
if lang eq ru
-
 
3653
        mov     al, 'å'
-
 
3654
        stosw
-
 
3655
        mov     al, 'à'
-
 
3656
        stosw
-
 
3657
        mov     al, '¥'
-
 
3658
        stosw
-
 
3659
        mov     al, '¢'
-
 
3660
        stosw
-
 
3661
        mov     al, '‚'
-
 
3662
        stosw
-
 
3663
        sub     ecx, 5
-
 
3664
else
-
 
3665
        mov     al, ' '
-
 
3666
        stosw
-
 
3667
        stosw
-
 
3668
        mov     al, 'p'
-
 
3669
        stosw
-
 
3670
        mov     al, 'U'
-
 
3671
        stosw
-
 
3672
        sub     ecx, 4
-
 
3673
end if
-
 
3674
        jmp     .size_written
-
 
3675
.nodotdot:
-
 
3676
        test    byte [esi], 10h
-
 
3677
        jz      .nofolder
-
 
3678
if lang eq ru
-
 
3679
        mov     al, ' '
-
 
3680
        stosw
-
 
3681
        mov     al, 'ª'
-
 
3682
        stosw
-
 
3683
        mov     al, '¯'
-
 
3684
        stosw
-
 
3685
        mov     al, ' '
-
 
3686
        stosw
-
 
3687
        mov     al, ''
-
 
3688
        stosw
-
 
3689
        sub     ecx, 5
-
 
3690
else
-
 
3691
        mov     al, 'r'
-
 
3692
        stosw
-
 
3693
        mov     al, 'e'
-
 
3694
        stosw
-
 
3695
        mov     al, 'd'
-
 
3696
        stosw
-
 
3697
        mov     al, 'l'
-
 
3698
        stosw
-
 
3699
        mov     al, 'o'
-
 
3700
        stosw
-
 
3701
        mov     al, 'F'
-
 
3702
        stosw
-
 
3703
        sub     ecx, 6
-
 
3704
end if
-
 
3705
        jmp     .size_written
-
 
3706
.nofolder:
-
 
3707
        mov     eax, [esi+32]
-
 
3708
        mov     edx, [esi+36]
-
 
3709
        test    edx, edx
-
 
3710
        jz      .less_4G
-
 
3711
        cmp     edx, 10000/4*1024
-
 
3712
        jb      .giga
-
 
3713
        mov     al, 'T'
-
 
3714
        shr     edx, 10
-
 
3715
        jmp     .write_letter
-
 
3716
.giga:
-
 
3717
        mov     al, 'G'
-
 
3718
        shl     edx, 2
-
 
3719
        jmp     .write_letter
-
 
3720
.less_4G:
-
 
3721
        mov     edx, eax
-
 
3722
        cmp     eax, 1000000
-
 
3723
        jb      .byte
-
 
3724
        cmp     eax, 10000*1024
-
 
3725
        jb      .kilo
-
 
3726
        mov     al, 'M'
-
 
3727
        shr     edx, 20
-
 
3728
        jmp     .write_letter
-
 
3729
.kilo:
-
 
3730
        mov     al, 'K'
-
 
3731
        shr     edx, 10
-
 
3732
.write_letter:
-
 
3733
        mov     ah, bh
-
 
3734
        stosw
-
 
3735
        mov     al, ' '
-
 
3736
        stosw
-
 
3737
        dec     ecx
-
 
3738
        dec     ecx
-
 
3739
.byte:
-
 
3740
        xchg    eax, edx
-
 
3741
        xor     edx, edx
-
 
3742
        div     [_10d]
-
 
3743
        xchg    eax, edx
-
 
3744
        add     al, '0'
-
 
3745
        mov     ah, bh
-
 
3746
        stosw
-
 
3747
        dec     ecx
-
 
3748
        test    edx, edx
-
 
3749
        jnz     .byte
-
 
3750
.size_written:
-
 
3751
        mov     eax, ebx
-
 
3752
        test    ecx, ecx
-
 
3753
        jle     @f
-
 
3754
        mov     al, ' '
-
 
3755
        rep     stosw
-
 
3756
@@:
-
 
3757
        mov     byte [edi+1], ah
-
 
3758
        pop     edi
-
 
3759
        add     edi, [cur_width]
-
 
3760
        add     edi, [cur_width]
-
 
3761
        inc     [last_column_index]
-
 
3762
        pop     ecx
-
 
3763
        dec     ecx
-
 
3764
        jnz     .l
-
 
3765
.ret:
-
 
3766
        pop     [last_column_index]
-
 
3767
        cld
-
 
3768
        ret
-
 
3769
 
-
 
3770
draw_date_column:
-
 
3771
        mov     ecx, [column_height]
-
 
3772
        dec     ecx
-
 
3773
        push    [last_column_index]
-
 
3774
.l:
-
 
3775
        mov     edx, [ebp + panel1_numfiles - panel1_data]
-
 
3776
        cmp     [last_column_index], edx
-
 
3777
        jae     .ret
-
 
3778
        push    ecx
-
 
3779
        push    edi
-
 
3780
        mov     ecx, [last_column_index]
-
 
3781
        mov     esi, [ebp + panel1_files - panel1_data]
-
 
3782
        mov     esi, [esi+ecx*4]
-
 
3783
        call    get_file_color
-
 
3784
        mov     bh, ah
-
 
3785
        mov     byte [edi-1], bh
-
 
3786
        mov     al, [esi+28]
-
 
3787
        aam
-
 
3788
        add     eax, '00'
-
 
3789
        push    eax
-
 
3790
        mov     al, ah
-
 
3791
        mov     ah, bh
-
 
3792
        stosw
-
 
3793
        pop     eax
-
 
3794
        mov     ah, bh
-
 
3795
        stosw
-
 
3796
        mov     al, '.'
-
 
3797
        stosw
-
 
3798
        mov     al, [esi+29]
-
 
3799
        aam
-
 
3800
        add     eax, '00'
-
 
3801
        push    eax
-
 
3802
        mov     al, ah
-
 
3803
        mov     ah, bh
-
 
3804
        stosw
-
 
3805
        pop     eax
-
 
3806
        mov     ah, bh
-
 
3807
        stosw
-
 
3808
        mov     al, '.'
-
 
3809
        stosw
-
 
3810
        movzx   eax, word [esi+30]
-
 
3811
        xor     edx, edx
-
 
3812
        div     [_10d]
-
 
3813
        xchg    eax, edx
-
 
3814
        add     al, '0'
-
 
3815
        mov     ah, bh
-
 
3816
        mov     [edi+2], ax
-
 
3817
        xchg    eax, edx
-
 
3818
        xor     edx, edx
-
 
3819
        div     [_10d]
-
 
3820
        xchg    eax, edx
-
 
3821
        add     al, '0'
-
 
3822
        mov     ah, bh
-
 
3823
        stosw
-
 
3824
        pop     edi
-
 
3825
        add     edi, [cur_width]
-
 
3826
        add     edi, [cur_width]
-
 
3827
        inc     [last_column_index]
-
 
3828
        pop     ecx
-
 
3829
        dec     ecx
-
 
3830
        jnz     .l
-
 
3831
.ret:
-
 
3832
        pop     [last_column_index]
-
 
3833
        cld
-
 
3834
        ret
-
 
3835
 
-
 
3836
draw_time_column:
-
 
3837
        mov     ecx, [column_height]
-
 
3838
        dec     ecx
-
 
3839
        push    [last_column_index]
-
 
3840
.l:
-
 
3841
        mov     edx, [ebp + panel1_numfiles - panel1_data]
-
 
3842
        cmp     [last_column_index], edx
-
 
3843
        jae     .ret
-
 
3844
        push    ecx
-
 
3845
        push    edi
-
 
3846
        mov     ecx, [last_column_index]
-
 
3847
        mov     esi, [ebp + panel1_files - panel1_data]
-
 
3848
        mov     esi, [esi+ecx*4]
-
 
3849
        call    get_file_color
-
 
3850
        mov     bh, ah
-
 
3851
        mov     byte [edi-1], bh
-
 
3852
        mov     al, [esi+26]
-
 
3853
        aam
-
 
3854
        add     eax, '00'
-
 
3855
        push    eax
-
 
3856
        mov     al, ah
-
 
3857
        mov     ah, bh
-
 
3858
        stosw
-
 
3859
        pop     eax
-
 
3860
        mov     ah, bh
-
 
3861
        stosw
-
 
3862
        mov     al, ':'
-
 
3863
        stosw
-
 
3864
        mov     al, [esi+25]
-
 
3865
        aam
-
 
3866
        add     eax, '00'
-
 
3867
        push    eax
-
 
3868
        mov     al, ah
-
 
3869
        mov     ah, bh
-
 
3870
        stosw
-
 
3871
        pop     eax
-
 
3872
        mov     ah, bh
-
 
3873
        stosw
-
 
3874
        pop     edi
-
 
3875
        add     edi, [cur_width]
-
 
3876
        add     edi, [cur_width]
-
 
3877
        inc     [last_column_index]
-
 
3878
        pop     ecx
-
 
3879
        dec     ecx
-
 
3880
        jnz     .l
-
 
3881
.ret:
-
 
3882
        pop     [last_column_index]
-
 
3883
        cld
2858
        ret
3884
        ret
Line 2859... Line 3885...
2859
 
3885
 
2860
;insert_last_dot:
3886
;insert_last_dot:
2861
;        push    eax esi
3887
;        push    eax esi
Line 2897... Line 3923...
2897
        shl     eax, 2
3923
        shl     eax, 2
2898
        add     eax, [ebp + panel1_files - panel1_data]
3924
        add     eax, [ebp + panel1_files - panel1_data]
2899
        mov     [dirinfo.dirdata], eax
3925
        mov     [dirinfo.dirdata], eax
2900
        lea     eax, [ebp + panel1_dir - panel1_data]
3926
        lea     eax, [ebp + panel1_dir - panel1_data]
2901
        mov     [dirinfo.name], eax
3927
        mov     [dirinfo.name], eax
-
 
3928
        xor     eax, eax
-
 
3929
        mov     [ebp + panel1_total_num - panel1_data], eax
-
 
3930
        mov     dword [ebp + panel1_total_size - panel1_data], eax
-
 
3931
        mov     dword [ebp + panel1_total_size+4 - panel1_data], eax
-
 
3932
        mov     [ebp + panel1_selected_num - panel1_data], eax
-
 
3933
        mov     dword [ebp + panel1_selected_size - panel1_data], eax
-
 
3934
        mov     dword [ebp + panel1_selected_size+4 - panel1_data], eax
2902
.retry:
3935
.retry:
2903
        push    70
3936
        push    70
2904
        pop     eax
3937
        pop     eax
2905
        mov     ebx, dirinfo
3938
        mov     ebx, dirinfo
2906
        int     40h
3939
        int     40h
Line 2909... Line 3942...
2909
        cmp     eax, 6
3942
        cmp     eax, 6
2910
        jz      .ok
3943
        jz      .ok
2911
; Failed to read folder, notify user
3944
; Failed to read folder, notify user
2912
        cmp     [bSilentFolderMode], 0
3945
        cmp     [bSilentFolderMode], 0
2913
        jnz     .dont_notify
3946
        jnz     .dont_notify
2914
        push    aContinue
3947
        push    dword aContinue
2915
        push    aRetry
3948
        push    dword aRetry
2916
        mov     edx, esp
3949
        mov     edx, esp
2917
        call    get_error_msg
3950
        call    get_error_msg
2918
        push    [dirinfo.name]
3951
        push    [dirinfo.name]
2919
        push    aCannotReadFolder
3952
        push    dword aCannotReadFolder
2920
        push    eax
3953
        push    eax
2921
        mov     eax, esp
3954
        mov     eax, esp
2922
        push    edx
3955
        push    edx
2923
        push    2
3956
        push    2
2924
        push    eax
3957
        push    eax
2925
        push    3
3958
        push    3
2926
        push    -1
3959
        push    -1
2927
        push    -1
3960
        push    -1
2928
        push    aError
3961
        push    dword aError
2929
        call    SayErr
3962
        call    SayErr
2930
        add     esp, 5*4
3963
        add     esp, 5*4
2931
        test    eax, eax
3964
        test    eax, eax
2932
        jz      .retry
3965
        jz      .retry
2933
.dont_notify:
3966
.dont_notify:
Line 2982... Line 4015...
2982
        ret
4015
        ret
2983
.ok:
4016
.ok:
2984
        mov     eax, [dirinfo.dirdata]
4017
        mov     eax, [dirinfo.dirdata]
2985
        cmp     [eax+8], ebx
4018
        cmp     [eax+8], ebx
2986
        jz      .readdone
4019
        jz      .readdone
2987
        push    eax
4020
        push    dword [eax+8]
2988
        mov     eax, [ebp + panel1_files - panel1_data]
4021
        mov     ecx, [ebp + panel1_files - panel1_data]
2989
        call    mf_free
4022
        call    pgfree
2990
        pop     eax
4023
        pop     ecx
2991
        mov     eax, [eax+8]
-
 
2992
        add     eax, 0xF
4024
        add     ecx, 0xF
2993
        and     eax, not 0xF
4025
        and     ecx, not 0xF
2994
        push    eax
4026
        push    ecx
2995
        imul    eax, 4+304
4027
        imul    ecx, 4+304
2996
        add     eax, 32
4028
        add     ecx, 32
2997
        call    xmalloc
4029
        call    xpgalloc
2998
        test    eax, eax
4030
        test    eax, eax
2999
        jnz     .succ1
4031
        jnz     .succ1
3000
        pop     eax
4032
        pop     eax
3001
        jmp     .readdone
4033
        jmp     .readdone
3002
.succ1:
4034
.succ1:
Line 3019... Line 4051...
3019
.ptrinit:
4051
.ptrinit:
3020
        cmp     word [eax+40], '.'
4052
        cmp     word [eax+40], '.'
3021
        jz      .loopcont
4053
        jz      .loopcont
3022
        test    byte [eax], 8
4054
        test    byte [eax], 8
3023
        jnz     .loopcont
4055
        jnz     .loopcont
-
 
4056
        mov     byte [eax+303], 0
3024
        test    edx, edx
4057
        test    edx, edx
3025
        jnz     .nodotdot
4058
        jnz     .nodotdot
3026
        cmp     word [eax+40], '..'
4059
        cmp     word [eax+40], '..'
3027
        jnz     .nodotdot
4060
        jnz     .nodotdot
3028
        cmp     byte [eax+42], 0
4061
        cmp     byte [eax+42], 0
Line 3041... Line 4074...
3041
        pop     edi
4074
        pop     edi
3042
        scasd
4075
        scasd
3043
        jmp     .dotdot
4076
        jmp     .dotdot
3044
.nodotdot:
4077
.nodotdot:
3045
        stosd
4078
        stosd
-
 
4079
        xor     ebx, ebx
-
 
4080
        test    byte [eax], 10h
-
 
4081
        setz    bl
-
 
4082
        add     [ebp + panel1_total_num - panel1_data], ebx
-
 
4083
        mov     ebx, dword [eax+32]
-
 
4084
        add     dword [ebp + panel1_total_size - panel1_data], ebx
-
 
4085
        mov     ebx, dword [eax+36]
-
 
4086
        adc     dword [ebp + panel1_total_size+4 - panel1_data], ebx
3046
.dotdot:
4087
.dotdot:
3047
; ¯®¤á¢¥âª 
4088
; ¯®¤á¢¥âª 
3048
;        call    insert_last_dot
4089
;        call    insert_last_dot
3049
        pushad
4090
        pushad
3050
        mov     ebp, eax
4091
        mov     ebp, eax
3051
        lea     esi, [ebp+40]
4092
        lea     esi, [ebp+40]
3052
        mov     edi, lower_file_name
4093
        mov     edi, lower_file_name
3053
        mov     edx, edi
4094
        mov     edx, edi
-
 
4095
        xor     eax, eax
3054
@@:
4096
@@:
3055
        lodsb
4097
        lodsb
3056
        call    tolower
4098
        mov     al, [tolower_table+eax]
3057
        stosb
4099
        stosb
3058
        test    al, al
4100
        test    al, al
3059
        jnz     @b
4101
        jnz     @b
3060
        mov     esi, edx
4102
        mov     esi, edx
3061
        lea     edx, [edi-1]
4103
        lea     edx, [edi-1]
Line 3073... Line 4115...
3073
        mov     ah, [ebx + highlight.NormalColor]
4115
        mov     ah, [ebx + highlight.NormalColor]
3074
        test    ah, ah
4116
        test    ah, ah
3075
        jnz     @f
4117
        jnz     @f
3076
        mov     ah, [panel_normal_color]
4118
        mov     ah, [panel_normal_color]
3077
@@:
4119
@@:
3078
        mov     [ebp+5], ah
4120
        mov     [ebp+4], ah
3079
        mov     ah, [ebx + highlight.CursorColor]
4121
        mov     ah, [ebx + highlight.CursorColor]
3080
        test    ah, ah
4122
        test    ah, ah
3081
        jnz     @f
4123
        jnz     @f
3082
        mov     ah, [panel_cursor_color]
4124
        mov     ah, [panel_cursor_color]
3083
@@:
4125
@@:
-
 
4126
        mov     [ebp+5], ah
-
 
4127
        mov     ah, [ebx + highlight.SelectedColor]
-
 
4128
        test    ah, ah
-
 
4129
        jnz     @f
-
 
4130
        mov     ah, [panel_selected_color]
-
 
4131
@@:
3084
        mov     [ebp+6], ah
4132
        mov     [ebp+6], ah
-
 
4133
        mov     ah, [ebx + highlight.SelectedCursorColor]
-
 
4134
        test    ah, ah
-
 
4135
        jnz     @f
-
 
4136
        mov     ah, [panel_selected_cursor_color]
-
 
4137
@@:
-
 
4138
        mov     [ebp+7], ah
3085
        jmp     .doname
4139
        jmp     .doname
3086
.highlight_test_failed:
4140
.highlight_test_failed:
3087
        inc     ecx
4141
        inc     ecx
3088
        cmp     ecx, [highlight_num_groups]
4142
        cmp     ecx, [highlight_num_groups]
3089
        jb      .highlight_test_loop
4143
        jb      .highlight_test_loop
3090
.nohighlight:
4144
.nohighlight:
3091
        mov     ah, [panel_normal_color]
4145
        mov     ah, [panel_normal_color]
3092
        mov     [ebp+5], ah
4146
        mov     [ebp+4], ah
3093
        mov     ah, [panel_cursor_color]
4147
        mov     ah, [panel_cursor_color]
-
 
4148
        mov     [ebp+5], ah
-
 
4149
        mov     ah, [panel_selected_color]
3094
        mov     [ebp+6], ah
4150
        mov     [ebp+6], ah
-
 
4151
        mov     ah, [panel_selected_cursor_color]
-
 
4152
        mov     [ebp+7], ah
3095
.doname:
4153
.doname:
3096
;        call    delete_last_dot
4154
;        call    delete_last_dot
3097
        popad
4155
        popad
3098
.loopcont:
4156
.loopcont:
3099
        add     eax, 304
4157
        add     eax, 304
Line 3110... Line 4168...
3110
        mov     ebx, [compare_fns + eax*4]
4168
        mov     ebx, [compare_fns + eax*4]
3111
        mov     edx, [ebp + panel1_files - panel1_data]
4169
        mov     edx, [ebp + panel1_files - panel1_data]
3112
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
4170
        mov     ecx, [ebp + panel1_numfiles - panel1_data]
3113
        jecxz   .skip
4171
        jecxz   .skip
3114
        mov     eax, [edx]
4172
        mov     eax, [edx]
3115
        cmp     word [eax], '..'
4173
        cmp     word [eax+40], '..'
3116
        jnz     .nodotdot
4174
        jnz     .nodotdot
3117
        cmp     byte [eax+2], 0
4175
        cmp     byte [eax+42], 0
3118
        jnz     .nodotdot
4176
        jnz     .nodotdot
3119
        dec     ecx
4177
        dec     ecx
3120
        add     edx, 4
4178
        add     edx, 4
3121
.nodotdot:
4179
.nodotdot:
3122
        call    sort
4180
        call    sort
Line 3867... Line 4925...
3867
@@:
4925
@@:
3868
        pop     edi
4926
        pop     edi
3869
        jmp     .done_succ
4927
        jmp     .done_succ
3870
end if
4928
end if
Line 3871... Line 4929...
3871
 
4929
 
3872
tolower:
4930
;tolower:
3873
        cmp     al, 'A'
4931
;        push    ecx
3874
        jb      @f
4932
;        movzx   ecx, al
3875
        cmp     al, 'Z'
4933
;        mov     al, [tolower_table+ecx]
3876
        ja      @f
-
 
3877
        add     al, ' '
4934
;        pop     ecx
Line 3878... Line 4935...
3878
@@:     ret
4935
;        ret
3879
 
4936
 
3880
match_symbol:
4937
match_symbol:
3881
; in: al,[edi]=symbols
4938
; in: al,[edi]=symbols
3882
; out: flags as 'cmp al,[edi]'
4939
; out: flags as 'cmp al,[edi]'
3883
        push    eax
4940
        push    eax ecx
3884
        call    tolower
-
 
3885
        mov     ah, [edi]
4941
        movzx   ecx, al
3886
        xchg    al, ah
4942
        mov     al, [tolower_table+ecx]
3887
        call    tolower
4943
        movzx   ecx, byte [edi]
3888
        cmp     ah, al
4944
        cmp     al, [tolower_table+ecx]
Line 3889... Line 4945...
3889
        pop     eax
4945
        pop     ecx eax
3890
        ret
4946
        ret
3891
 
4947
 
Line 3901... Line 4957...
3901
        lodsb
4957
        lodsb
3902
        test    al, al
4958
        test    al, al
3903
        jz      @f
4959
        jz      @f
3904
        cmp     al, ','
4960
        cmp     al, ','
3905
        jz      @f
4961
        jz      @f
-
 
4962
        cmp     al, ';'
-
 
4963
        jz      @f
3906
        cmp     al, '|'
4964
        cmp     al, '|'
3907
        jnz     @b
4965
        jnz     @b
3908
@@:
4966
@@:
3909
        dec     esi
4967
        dec     esi
3910
        mov     [esi], byte 0
4968
        mov     [esi], byte 0
Line 3912... Line 4970...
3912
        mov     [esi], al
4970
        mov     [esi], al
3913
        inc     esi
4971
        inc     esi
3914
        jnc     .found
4972
        jnc     .found
3915
        cmp     al, ','
4973
        cmp     al, ','
3916
        jz      .main_cycle
4974
        jz      .main_cycle
-
 
4975
        cmp     al, ';'
-
 
4976
        jz      .main_cycle
3917
.done_fail:
4977
.done_fail:
3918
        stc
4978
        stc
3919
        popa
4979
        popa
3920
        ret
4980
        ret
3921
.found:
4981
.found:
Line 3934... Line 4994...
3934
@@:
4994
@@:
3935
        lodsb
4995
        lodsb
3936
        test    al, al
4996
        test    al, al
3937
        jz      @f
4997
        jz      @f
3938
        cmp     al, ','
4998
        cmp     al, ','
-
 
4999
        jz      @f
-
 
5000
        cmp     al, ';'
3939
        jnz     @b
5001
        jnz     @b
3940
@@:
5002
@@:
3941
        dec     esi
5003
        dec     esi
3942
        mov     byte [esi], 0
5004
        mov     byte [esi], 0
3943
        call    match_single_mask_rev_lowercase
5005
        call    match_single_mask_rev_lowercase
Line 4077... Line 5139...
4077
        pop     esi
5139
        pop     esi
4078
        stc
5140
        stc
4079
        ret
5141
        ret
4080
.found_ext:
5142
.found_ext:
4081
        inc     esi
5143
        inc     esi
4082
        mov     edi, associations
5144
        mov     edi, [associations]
4083
@@:
5145
.find_loop:
4084
        push    esi edi
5146
        push    esi edi
4085
        mov     edi, [edi]
-
 
4086
        call    strcmpi
5147
        call    strcmpi
4087
        pop     edi esi
5148
        pop     edi esi
4088
        jz      @f
5149
        pushf
4089
        add     edi, 12
-
 
4090
        cmp     edi, associations_end
-
 
4091
        jb      @b
5150
@@:
4092
; unknown extension
-
 
4093
        inc     edi
5151
        inc     edi
-
 
5152
        cmp     byte [edi-1], 0
-
 
5153
        jnz     @b
-
 
5154
        popf
-
 
5155
        jz      .found
4094
@@:
5156
@@:
-
 
5157
        inc     edi
-
 
5158
        cmp     byte [edi-1], 0
-
 
5159
        jnz     @b
-
 
5160
        cmp     byte [edi], 0
-
 
5161
        jnz     .find_loop
-
 
5162
; unknown extension
-
 
5163
        stc
-
 
5164
.found:
4095
        pop     esi
5165
        pop     esi
4096
        ret
5166
        ret
Line 4097... Line 5167...
4097
 
5167
 
Line 4098... Line 5168...
4098
header  db      'Kolibri Far 0.21',0
5168
header  db      'Kolibri Far 0.32',0
4099
 
5169
 
Line 4100... Line 5170...
4100
nomem_draw      db      'No memory for redraw.',0
5170
nomem_draw      db      'No memory for redraw.',0
Line 4119... Line 5189...
4119
.size = $-aUp
5189
.size = $-aUp
4120
aDrive          db      'Drive',0
5190
aDrive          db      'Drive',0
4121
aScreens        db      'Screens',0
5191
aScreens        db      'Screens',0
4122
end if
5192
end if
Line -... Line 5193...
-
 
5193
 
4123
 
5194
align 4
4124
_10d dd 10
5195
_10d dd 10
-
 
5196
_100d dd 100
4125
_100d dd 100
5197
muldiv10 dd 429496729
4126
_10 db 10
5198
_10 db 10
Line 4127... Line 5199...
4127
_100 db 100
5199
_100 db 100
Line 4479... Line 5551...
4479
max_height = 256
5551
max_height = 256
4480
console_data_ptr dd     0
5552
console_data_ptr dd     0
Line 4481... Line 5553...
4481
 
5553
 
4482
cursor_x        dd      -1
5554
cursor_x        dd      -1
4483
cursor_y        dd      -1
5555
cursor_y        dd      -1
4484
old_cursor_x    dd      -1
5556
cur_cursor_pos  dd      -1
Line 4485... Line 5557...
4485
old_cursor_y    dd      -1
5557
old_cursor_pos  dd      -1
Line -... Line 5558...
-
 
5558
 
-
 
5559
active_panel    dd      panel1_data
4486
 
5560
 
4487
active_panel    dd      panel1_data
5561
associations    dd      0
4488
 
5562
 
4489
console_colors  dd      0x000000, 0x000080, 0x008000, 0x008080
5563
console_colors  dd      0x000000, 0x000080, 0x008000, 0x008080
Line 4553... Line 5627...
4553
        dd      error32msg
5627
        dd      error32msg
Line 4554... Line 5628...
4554
 
5628
 
4555
encodings:
5629
encodings:
4556
.cp866 = 0
5630
.cp866 = 0
-
 
5631
.cp1251 = 1
-
 
5632
.koi8r = 2
Line 4557... Line 5633...
4557
.cp1251 = 1
5633
.unicode = 3
4558
 
5634
 
4559
.names:
5635
.names:
-
 
5636
        db      'cp866   '
-
 
5637
        db      'cp1251  '
Line 4560... Line 5638...
4560
        db      'cp866   '
5638
        db      'koi8-r  '
4561
        db      'cp1251  '
5639
        db      'Unicode '
4562
 
5640
 
4563
.tables:
5641
.tables:
Line 4568... Line 5646...
4568
        db      0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F
5646
        db      0x3F,0x27,0x27,0x22,0x22,0x07,0x2D,0x2D,0x3F,0x54,0x3F,0x3E,0x3F,0x3F,0x3F,0x3F
4569
        db      0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4
5647
        db      0xFF,0xF6,0xF7,0x3F,0xFD,0x3F,0xB3,0x15,0xF0,0x63,0xF2,0x3C,0xBF,0x2D,0x52,0xF4
4570
        db      0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5
5648
        db      0xF8,0x2B,0x49,0x69,0x3F,0xE7,0x14,0xFA,0xF1,0xFC,0xF3,0x3E,0x3F,0x3F,0x3F,0xF5
4571
        times 0x30 db %-1+0x80
5649
        times 0x30 db %-1+0x80
4572
        times 0x10 db %-1+0xE0
5650
        times 0x10 db %-1+0xE0
-
 
5651
; koi8-r
-
 
5652
        db      0xC4,0xB3,0xDA,0xBF,0xC0,0xD9,0xC3,0xB4,0xC2,0xC1,0xC5,0xDF,0xDC,0xDB,0xDD,0xDE
-
 
5653
        db      0xB0,0xB1,0xB2,0xF4,0xFE,0xF9,0xFB,0xF7,0xF3,0xF2,0xFF,0xF5,0xF8,0xFD,0xFA,0xF6
-
 
5654
        db      0xCD,0xBA,0xD5,0xF1,0xD6,0xC9,0xB8,0xB7,0xBB,0xD4,0xD3,0xC8,0xBE,0xBD,0xBC,0xC6
-
 
5655
        db      0xC7,0xCC,0xB5,0xF0,0xB6,0xB9,0xD1,0xD2,0xCB,0xCF,0xD0,0xCA,0xD8,0xD7,0xCE,0xFC
-
 
5656
        db      0xEE,0xA0,0xA1,0xE6,0xA4,0xA5,0xE4,0xA3,0xE5,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE
-
 
5657
        db      0xAF,0xEF,0xE0,0xE1,0xE2,0xE3,0xA6,0xA2,0xEC,0xEB,0xA7,0xE8,0xED,0xE9,0xE7,0xEA
-
 
5658
        db      0x9E,0x80,0x81,0x96,0x84,0x85,0x94,0x83,0x95,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E
-
 
5659
        db      0x8F,0x9F,0x90,0x91,0x92,0x93,0x86,0x82,0x9C,0x9B,0x87,0x98,0x9D,0x99,0x97,0x9A
-
 
5660
 
-
 
5661
.menu:
-
 
5662
        db      .cp866
-
 
5663
.menu.1:
-
 
5664
        dd      .menu.2
-
 
5665
        dd      0
-
 
5666
if lang eq ru
-
 
5667
        db      '&DOS ⥪áâ (cp866)',0
-
 
5668
else
-
 
5669
        db      '&DOS text (cp866)',0
-
 
5670
end if
-
 
5671
        db      .cp1251
-
 
5672
.menu.2:
-
 
5673
        dd      .menu.3
-
 
5674
        dd      .menu.1
-
 
5675
if lang eq ru
-
 
5676
        db      '&Windows ⥪áâ (cp1251)',0
-
 
5677
else
-
 
5678
        db      '&Windows text (cp1251)',0
-
 
5679
end if
-
 
5680
        db      .koi8r
-
 
5681
.menu.3:
-
 
5682
        dd      .menu.4
-
 
5683
        dd      .menu.2
-
 
5684
if lang eq ru
-
 
5685
        db      '&Linux ⥪áâ (koi8-r)',0
-
 
5686
else
-
 
5687
        db      '&Linux text (koi8-r)',0
-
 
5688
end if
-
 
5689
        db      .unicode
-
 
5690
.menu.4:
-
 
5691
        dd      0
-
 
5692
        dd      .menu.3
-
 
5693
        db      '&Unicode',0
Line 4573... Line 5694...
4573
 
5694
 
4574
active_screen   dd      0
5695
active_screen   dd      0
Line 4575... Line 5696...
4575
tabsize         dd      8
5696
tabsize         dd      8
Line 4606... Line 5727...
4606
        dd      panels_OnKey.down
5727
        dd      panels_OnKey.down
4607
        dw      0x4B, 0
5728
        dw      0x4B, 0
4608
        dd      panels_OnKey.left
5729
        dd      panels_OnKey.left
4609
        dw      0x4D, 0
5730
        dw      0x4D, 0
4610
        dd      panels_OnKey.right
5731
        dd      panels_OnKey.right
-
 
5732
        dw      0x51, 0
-
 
5733
        dd      panels_OnKey.pgdn
-
 
5734
        dw      0x49, 0
-
 
5735
        dd      panels_OnKey.pgup
4611
        dw      0xF, 0
5736
        dw      0xF, 0
4612
        dd      panels_OnKey.tab
5737
        dd      panels_OnKey.tab
4613
        dw      0x47, 0
5738
        dw      0x47, 0
4614
        dd      panels_OnKey.home
5739
        dd      panels_OnKey.home
4615
        dw      0x4F, 0
5740
        dw      0x4F, 0
Line 4642... Line 5767...
4642
        dd      panels_OnKey.alt_f12
5767
        dd      panels_OnKey.alt_f12
4643
        dw      0x58, 0
5768
        dw      0x58, 0
4644
        dd      F12
5769
        dd      F12
4645
        dw      0x13, 0x10
5770
        dw      0x13, 0x10
4646
        dd      panels_OnKey.ctrl_r
5771
        dd      panels_OnKey.ctrl_r
-
 
5772
        dw      2, 0x30
-
 
5773
        dd      panels_OnKey.change_mode
-
 
5774
        dw      3, 0x30
-
 
5775
        dd      panels_OnKey.change_mode
-
 
5776
        dw      4, 0x30
-
 
5777
        dd      panels_OnKey.change_mode
-
 
5778
        dw      5, 0x30
-
 
5779
        dd      panels_OnKey.change_mode
-
 
5780
repeat 10
-
 
5781
        dw      %+1, 0x40
-
 
5782
        dd      panels_OnKey.quick_jump
-
 
5783
end repeat
-
 
5784
        dw      0x52, 0
-
 
5785
        dd      panels_OnKey.insert
-
 
5786
        dw      0x4E, 0
-
 
5787
        dd      panels_OnKey.greyplus
-
 
5788
        dw      0x4A, 0
-
 
5789
        dd      panels_OnKey.greyminus
4647
        db      0
5790
        db      0
Line 4648... Line 5791...
4648
 
5791
 
4649
viewer_ctrlkeys:
5792
viewer_ctrlkeys:
4650
        dw      1, 0
5793
        dw      1, 0
Line 4677... Line 5820...
4677
        dd      viewer_OnKey.exit
5820
        dd      viewer_OnKey.exit
4678
        dw      0x3E, 0
5821
        dw      0x3E, 0
4679
        dd      viewer_OnKey.f4
5822
        dd      viewer_OnKey.f4
4680
        dw      0x42, 0
5823
        dw      0x42, 0
4681
        dd      viewer_OnKey.f8
5824
        dd      viewer_OnKey.f8
-
 
5825
        dw      0x42, 1
-
 
5826
        dd      viewer_OnKey.shift_f8
4682
        dw      0x44, 0
5827
        dw      0x44, 0
4683
        dd      viewer_OnKey.exit
5828
        dd      viewer_OnKey.exit
4684
        dw      0x47, 0
5829
        dw      0x47, 0
4685
        dd      viewer_OnKey.home
5830
        dd      viewer_OnKey.home
4686
        dw      0x4F, 0
5831
        dw      0x4F, 0
Line 4751... Line 5896...
4751
 
5896
 
Line 4752... Line 5897...
4752
; ‡¤¥áì ­ ç¨­ îâáï ª®­ä¨£ãà æ¨®­­ë¥ ¤ ­­ë¥ - ¢ ⥪ã饩 ॠ«¨§ æ¨¨ ®­¨ § è¨âë ¢ ¡¨­ à­¨ª
5897
; ‡¤¥áì ­ ç¨­ îâáï ª®­ä¨£ãà æ¨®­­ë¥ ¤ ­­ë¥ - ¢ ⥪ã饩 ॠ«¨§ æ¨¨ ®­¨ § è¨âë ¢ ¡¨­ à­¨ª
4753
 
5898
 
-
 
5899
;  ­¥«ì
4754
;  ­¥«ì
5900
panel_normal_color      db      1Bh
4755
panel_normal_color      db      1Bh
5901
panel_selected_color    db      1Eh
-
 
5902
panel_border_color      db      1Bh
4756
panel_border_color      db      1Bh
5903
panel_cursor_color      db      30h
4757
panel_cursor_color      db      30h
5904
panel_selected_cursor_color db  3Eh
4758
panel_header_color      db      1Bh
5905
panel_header_color      db      1Bh
-
 
5906
panel_active_header_color db    30h
-
 
5907
column_header_color     db      1Eh
4759
panel_active_header_color db    30h
5908
panel_number_color      db      1Bh
4760
column_header_color     db      1Eh
5909
panel_numselected_color db      3Eh
4761
panel_nscreens_color    db      0Bh
5910
panel_nscreens_color    db      0Bh
4762
; „¨ «®£¨
5911
; „¨ «®£¨
4763
dialog_colors:
5912
dialog_colors:
Line 4812... Line 5961...
4812
                dd      highlight_group9
5961
                dd      highlight_group9
Line 4813... Line 5962...
4813
 
5962
 
4814
; ”®à¬ â ®¯¨á ­¨ï £àã¯¯ë ¯®¤á¢¥âª¨:
5963
; ”®à¬ â ®¯¨á ­¨ï £àã¯¯ë ¯®¤á¢¥âª¨:
4815
virtual at 0
5964
virtual at 0
-
 
5965
highlight:
4816
highlight:
5966
        .IncludeAttributes      db ?
4817
        .NormalColor            db ?
5967
        .NormalColor            db ?
4818
        .CursorColor            db ?
5968
        .CursorColor            db ?
-
 
5969
        .SelectedColor          db ?
4819
        .IncludeAttributes      db ?
5970
        .SelectedCursorColor    db ?
4820
        .Mask:                  ; ASCIIZ-string
5971
        .Mask:                  ; ASCIIZ-string
Line 4821... Line 5972...
4821
end virtual
5972
end virtual
4822
 
5973
 
4823
; all highlight masks must be in lowercase!
-
 
4824
highlight_group0:
-
 
4825
        db      13h
5974
; all highlight masks must be in lowercase!
-
 
5975
highlight_group0:
4826
        db      38h
5976
        db      2
4827
        db      2
5977
        db      13h, 38h, 0, 0
4828
        db      '*',0
-
 
4829
highlight_group1:
-
 
4830
        db      13h
5978
        db      '*',0
-
 
5979
highlight_group1:
4831
        db      38h
5980
        db      4
4832
        db      4
5981
        db      13h, 38h, 0, 0
4833
        db      '*',0
-
 
4834
highlight_group2:
-
 
4835
        db      1Fh
5982
        db      '*',0
-
 
5983
highlight_group2:
4836
        db      3Fh
5984
        db      10h
4837
        db      10h
5985
        db      1Fh, 3Fh, 0, 0
4838
        db      '*|..',0
-
 
4839
highlight_group3:
-
 
4840
        db      0
5986
        db      '*|..',0
-
 
5987
highlight_group3:
4841
        db      0
5988
        db      10h
4842
        db      10h
5989
        db      0, 0, 0, 0
4843
        db      '..',0
-
 
4844
highlight_group4:
-
 
4845
        db      1Ah
5990
        db      '..',0
-
 
5991
highlight_group4:
4846
        db      3Ah
5992
        db      0
4847
        db      0
5993
        db      1Ah, 3Ah, 0, 0
4848
        db      '*.exe,*.com,*.bat,*.cmd',0
-
 
4849
highlight_group5:
-
 
4850
        db      1Ah
5994
        db      '*.exe,*.com,*.bat,*.cmd',0
-
 
5995
highlight_group5:
4851
        db      3Ah
5996
        db      0
4852
        db      0
5997
        db      1Ah, 3Ah, 0, 0
4853
        db      '*|*.*',0
-
 
4854
highlight_group6:
-
 
4855
        db      1Dh
5998
        db      '*|*.*',0
-
 
5999
highlight_group6:
4856
        db      3Dh
6000
        db      0
4857
        db      0
6001
        db      1Dh, 3Dh, 0, 0
4858
        db      '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],'
6002
        db      '*.rar,*.zip,*.[zj],*.[bg7]z,*.[bg]zip,*.tar,*.t[ag]z,*.ar[cj],*.r[0-9][0-9],'
4859
        db      '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],'
6003
        db      '*.a[0-9][0-9],*.bz2,*.cab,*.msi,*.jar,*.lha,*.lzh,*.ha,*.ac[bei],*.pa[ck],'
4860
        db      '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,'
6004
        db      '*.rk,*.cpio,*.rpm,*.zoo,*.hqx,*.sit,*.ice,*.uc2,*.ain,*.imp,*.777,*.ufa,*.boa,'
4861
        db      '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0
-
 
4862
highlight_group7:
-
 
4863
        db      16h
6005
        db      '*.bs[2a],*.sea,*.hpk,*.ddi,*.x2,*.rkv,*.[lw]sz,*.h[ay]p,*.lim,*.sqz,*.chz',0
-
 
6006
highlight_group7:
4864
        db      36h
6007
        db      0
4865
        db      0
6008
        db      16h, 36h, 0, 0
4866
        db      '*.bak,*.tmp',0
-
 
4867
highlight_group8:
-
 
4868
        db      17h
6009
        db      '*.bak,*.tmp',0
-
 
6010
highlight_group8:
4869
        db      37h
6011
        db      0
4870
        db      0
6012
        db      17h, 37h, 0, 0
4871
        db      '*.asm,*.inc',0
-
 
4872
highlight_group9:
-
 
4873
        db      1Fh
6013
        db      '*.asm,*.inc',0
-
 
6014
highlight_group9:
4874
        db      3Fh
6015
        db      10h
Line 4875... Line -...
4875
        db      10h
-
 
4876
        db      '*',0
-
 
4877
 
-
 
4878
associations:
-
 
4879
        dd      aAsm, tinypad, AsmMenu
-
 
4880
        dd      aInc, tinypad, 0
-
 
4881
        dd      aTxt, tinypad, 0
-
 
4882
        dd      aJpg, jpegview, 0
-
 
4883
        dd      aJpeg, jpegview, 0
-
 
4884
        dd      aGif, gifview, GifMenu
-
 
4885
        dd      aWav, ac97, 0
-
 
4886
        dd      aMp3, ac97, 0
-
 
4887
        dd      aMid, midamp, 0
-
 
4888
        dd      aBmp, mv, BmpMenu
-
 
4889
        dd      aPng, archer, 0
-
 
4890
        dd      aRtf, rtfread, 0
-
 
4891
        dd      a3ds, view3ds, 0
-
 
4892
        dd      aLif, life2, 0
-
 
4893
associations_end:
-
 
4894
 
-
 
4895
aAsm db 'asm',0
-
 
4896
aInc db 'inc',0
-
 
4897
aTxt db 'txt',0
-
 
4898
tinypad db '/rd/1/TinyPad',0
-
 
4899
 
-
 
4900
aJpg db 'jpg',0
-
 
4901
aJpeg db 'jpeg',0
-
 
4902
jpegview db '/rd/1/JpegView',0
-
 
4903
 
-
 
4904
aGif db 'gif',0
-
 
4905
gifview db '/rd/1/GIFVIEW',0
-
 
4906
 
-
 
4907
aWav db 'wav',0
-
 
4908
aMp3 db 'mp3',0
-
 
4909
ac97 db '/rd/1/AC97SND',0
-
 
4910
 
-
 
4911
aMid db 'mid',0
-
 
4912
midamp db '/rd/1/MIDAMP',0
-
 
4913
 
-
 
4914
aBmp db 'bmp',0
-
 
4915
mv db '/rd/1/MV',0
-
 
4916
 
-
 
4917
aPng db 'png',0
-
 
4918
archer db '/rd/1/@rcher',0
-
 
4919
 
-
 
4920
aRtf db 'rtf',0
-
 
4921
rtfread db '/rd/1/RtfRead',0
-
 
4922
 
-
 
4923
a3ds db '3ds',0
-
 
4924
view3ds db '/rd/1/3d/view3ds',0
-
 
4925
 
-
 
4926
aLif db 'lif',0
-
 
4927
life2 db '/rd/1/demos/life2',0
-
 
4928
 
-
 
4929
AsmMenu:
-
 
4930
        dd      aEdit, tinypad
-
 
4931
        dd      aCompile, fasm
-
 
4932
        dd      0
-
 
4933
BmpMenu:
-
 
4934
        dd      aView, mv
-
 
4935
        dd      aEdit, animage
-
 
4936
        dd      0
-
 
4937
GifMenu:
-
 
4938
        dd      aView, gifview
-
 
4939
        dd      aEdit, animage
-
 
4940
        dd      0
-
 
4941
 
-
 
4942
if lang eq en
-
 
4943
aView   db      '&View',0
-
 
4944
aCompile db     '&Compile',0
-
 
4945
aEdit   db      '&Edit',0
-
 
4946
else
-
 
4947
aView   db      '&à®á¬®âà',0
-
 
4948
aCompile db     '&Š®¬¯¨«¨à®¢ âì',0
-
 
4949
aEdit   db      '&¥¤ ªâ®à',0
-
 
4950
end if
-
 
4951
 
-
 
4952
fasm    db      '/rd/1/develop/fasm',0
6016
        db      1Fh, 3Fh, 0, 0
4953
animage db      '/rd/1/animage',0
6017
        db      '*',0
Line -... Line 6018...
-
 
6018
 
-
 
6019
bConfirmDelete  db      1
4954
 
6020
bConfirmDeleteIncomplete db 0
Line 4955... Line 6021...
4955
bConfirmDelete  db      1
6021
 
4956
bConfirmDeleteIncomplete db 0
6022
FolderShortcuts dd      0,0,0,0,0,0,0,0,0,0
-
 
6023
 
-
 
6024
; ‡¤¥áì § ª ­ç¨¢ îâáï ª®­ä¨£ãà æ¨®­­ë¥ ¤ ­­ë¥
-
 
6025
 
Line 4957... Line 6026...
4957
 
6026
bWasE0          db      0
4958
; ‡¤¥áì § ª ­ç¨¢ îâáï ª®­ä¨£ãà æ¨®­­ë¥ ¤ ­­ë¥
6027
ctrlstate       db      0
4959
 
6028
MemForImage     dd      0
4960
bWasE0          db      0
6029
restore_semicolon dd    0
Line 4984... Line 6053...
4984
        dd      2
6053
        dd      2
4985
        dd      4,1,7,1
6054
        dd      4,1,7,1
4986
        dd      aOk
6055
        dd      aOk
4987
        dd      0xD
6056
        dd      0xD
Line 4988... Line -...
4988
 
-
 
4989
f8_confirm_dlgdata:
-
 
4990
        dd      1
-
 
4991
.x      dd      -1
-
 
4992
.y      dd      -1
-
 
4993
.width  dd      ?
-
 
4994
.height dd      3
-
 
4995
        dd      4
-
 
4996
        dd      2
-
 
4997
        dd      aDeleteCaption
-
 
4998
.main_color db ?
-
 
4999
.border_color db ?
-
 
5000
.header_color db ?
-
 
5001
        db      0
-
 
5002
        dd      0
-
 
5003
        dd      0
-
 
5004
        dd      4
-
 
5005
; áâப  "‚ë å®â¨â¥ 㤠«¨âì ..."
-
 
5006
        dd      1
-
 
5007
        dd      1,0
-
 
5008
.width2 dd      ?
-
 
5009
        dd      0
-
 
5010
        dd      aConfirmDeleteTextBuf
-
 
5011
        dd      1
-
 
5012
; áâப  á ¨¬¥­¥¬ ä ©« /¯ ¯ª¨
-
 
5013
        dd      1
-
 
5014
        dd      1,1
-
 
5015
.width3 dd      ?
-
 
5016
        dd      1
-
 
5017
.name   dd      ?
-
 
5018
        dd      1
-
 
5019
; ª­®¯ª  "㤠«¨âì"
-
 
5020
.del_btn:
-
 
5021
        dd      2
-
 
5022
.del_x1 dd      ?
-
 
5023
        dd      2
-
 
5024
.del_x2 dd      ?
-
 
5025
        dd      2
-
 
5026
        dd      aDelete
-
 
5027
.flags1 dd      0xC
-
 
5028
; ª­®¯ª  "®â¬¥­¨âì"
-
 
5029
        dd      2
-
 
5030
.cnl_x1 dd      ?
-
 
5031
        dd      2
-
 
5032
.cnl_x2 dd      ?
-
 
5033
        dd      2
-
 
5034
        dd      aCancel
-
 
5035
.flags2 dd      8
-
 
5036
 
6057
 
5037
; ¤¨ «®£ ª®¯¨à®¢ ­¨ï
6058
; ¤¨ «®£ ª®¯¨à®¢ ­¨ï
5038
copy_dlgdata:
6059
copy_dlgdata:
5039
        dd      1
6060
        dd      1
5040
.x      dd      -1
6061
.x      dd      -1
Line 5122... Line 6143...
5122
.cnl_x2 dd      ?
6143
.cnl_x2 dd      ?
5123
        dd      3
6144
        dd      3
5124
        dd      aCancelB
6145
        dd      aCancelB
5125
.flags2 dd      8
6146
.flags2 dd      8
Line -... Line 6147...
-
 
6147
 
-
 
6148
; ¤¨ «®£ ¢ë¤¥«¥­¨ï/á­ïâ¨ï
-
 
6149
mark_dlgdata:
-
 
6150
        dd      1
-
 
6151
        dd      -1, -1
-
 
6152
        dd      37, 1
-
 
6153
        dd      4, 2
-
 
6154
.title  dd      ?
-
 
6155
        dd      ?
-
 
6156
        dd      0, 0
-
 
6157
        dd      1
-
 
6158
; ¯®«¥ । ªâ¨à®¢ ­¨ï
-
 
6159
        dd      3
-
 
6160
        dd      1, 0, 35, 0
-
 
6161
        dd      enter_string_buf
-
 
6162
.flags  dd      ?
5126
 
6163
 
5127
RetryOrCancelBtn:
6164
RetryOrCancelBtn:
5128
        dd      aRetry
6165
        dd      aRetry
5129
        dd      a_Cancel
6166
        dd      a_Cancel
5130
DeleteOrKeepBtn:
6167
DeleteOrKeepBtn:
5131
        dd      a_Delete
6168
        dd      a_Delete
5132
        dd      aKeep
6169
        dd      aKeep
5133
RetryOrIgnoreBtn:
6170
RetryOrIgnoreBtn:
5134
        dd      aRetry
6171
        dd      aRetry
-
 
6172
        dd      aIgnore
-
 
6173
DeleteOrCancelBtn:
-
 
6174
        dd      a_Delete
-
 
6175
        dd      a_Cancel
-
 
6176
DeleteErrorBtn:
-
 
6177
        dd      aRetry
-
 
6178
        dd      aSkip
-
 
6179
        dd      aSkipAll
Line 5135... Line 6180...
5135
        dd      aIgnore
6180
        dd      a_Cancel
5136
 
6181
 
5137
if lang eq ru
6182
if lang eq ru
5138
aDeleteCaption          db      '“¤ «¥­¨¥',0
6183
aDeleteCaption          db      '“¤ «¥­¨¥',0
5139
aConfirmDeleteText      db      '‚ë å®â¨â¥ 㤠«¨âì ',0
6184
aConfirmDeleteText      db      '‚ë å®â¨â¥ 㤠«¨âì',0
5140
aDeleteFolder           db      '¯ ¯ªã',0
6185
aDeleteFolder           db      ' ¯ ¯ªã',0
5141
aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2
-
 
5142
aDeleteFile             db      'ä ©«',0
-
 
5143
aDelete                 db      ' “¤ «¨âì ',0
-
 
5144
aDeleteLength = $ - aDelete - 1
-
 
5145
aCancel                 db      ' Žâ¬¥­¨âì ',0
6186
aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2
5146
aCancelLength = $ - aCancel - 1
6187
aDeleteFile             db      ' ä ©«',0
5147
aCancelB                db      '[ Žâ¬¥­¨âì ]',0
6188
aCancelB                db      '[ Žâ¬¥­¨âì ]',0
5148
aCancelBLength = $ - aCancelB - 1
6189
aCancelBLength = $ - aCancelB - 1
5149
aCopyCaption            db      'Š®¯¨à®¢ ­¨¥',0
6190
aCopyCaption            db      'Š®¯¨à®¢ ­¨¥',0
Line 5156... Line 6197...
5156
aError                  db      'Žè¨¡ª ',0
6197
aError                  db      'Žè¨¡ª ',0
5157
aContinue               db      'à®¤®«¦¨âì',0
6198
aContinue               db      'à®¤®«¦¨âì',0
5158
aRetry                  db      '®¢â®à¨âì',0
6199
aRetry                  db      '®¢â®à¨âì',0
5159
a_Cancel                db      'Žâ¬¥­¨âì',0
6200
a_Cancel                db      'Žâ¬¥­¨âì',0
5160
a_Delete                db      '“¤ «¨âì',0
6201
a_Delete                db      '“¤ «¨âì',0
-
 
6202
aSkip                   db      'à®¯ãáâ¨âì',0
-
 
6203
aSkipAll                db      'à®¯ãáâ¨âì ¢á¥',0
5161
error0msg               db      '‘âà ­­®... ¥â ®è¨¡ª¨',0
6204
error0msg               db      '‘âà ­­®... ¥â ®è¨¡ª¨',0
5162
error1msg               db      '‘âà ­­®... ¥ ®¯à¥¤¥«¥­  ¡ §  ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0
6205
error1msg               db      '‘âà ­­®... ¥ ®¯à¥¤¥«¥­  ¡ §  ¨/¨«¨ à §¤¥« ¦ñá⪮£® ¤¨áª ',0
5163
error2msg               db      '”ã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë',0
6206
error2msg               db      '”ã­ªæ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ­­®© ä ©«®¢®© á¨á⥬ë',0
5164
error3msg               db      '¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬ ',0
6207
error3msg               db      '¥¨§¢¥áâ­ ï ä ©«®¢ ï á¨á⥬ ',0
5165
error4msg               db      '‘âà ­­®... Žè¨¡ª  4',0
6208
error4msg               db      '‘âà ­­®... Žè¨¡ª  4',0
Line 5189... Line 6232...
5189
aIgnore                 db      'ˆ£­®à¨à®¢ âì',0
6232
aIgnore                 db      'ˆ£­®à¨à®¢ âì',0
5190
aMkDirCaption           db      '‘®§¤ ­¨¥ ¯ ¯ª¨',0
6233
aMkDirCaption           db      '‘®§¤ ­¨¥ ¯ ¯ª¨',0
5191
aMkDir                  db      '‘®§¤ âì ¯ ¯ªã',0
6234
aMkDir                  db      '‘®§¤ âì ¯ ¯ªã',0
5192
aMkDirLen = $ - aMkDir - 1
6235
aMkDirLen = $ - aMkDir - 1
5193
aCannotMakeFolder       db      '¥ ¬®£ã ᮧ¤ âì ¯ ¯ªã',0
6236
aCannotMakeFolder       db      '¥ ¬®£ã ᮧ¤ âì ¯ ¯ªã',0
-
 
6237
aName                   db      3,'ˆ¬ï'
-
 
6238
aSize                   db      6,' §¬¥à'
-
 
6239
aDate                   db      4,'„ â '
-
 
6240
aTime                   db      5,'∴•'
-
 
6241
aCannotLoadDLL          db      '¥ ¬®£ã § £à㧨âì DLL',0
-
 
6242
aInvalidDLL             db      '” ©« ­¥ ­ ©¤¥­ ¨«¨ ¨¬¥¥â ­¥¢¥à­ë© ä®à¬ â',0
-
 
6243
aMissingExport          db      '¥®¡å®¤¨¬ ï äã­ªæ¨ï ­¥ ­ ©¤¥­ ',0
-
 
6244
aInitFailed             db      'Žè¨¡ª  ¯à¨ ¨­¨æ¨ «¨§ æ¨¨',0
-
 
6245
aIncompatibleVersion    db      '¥á®¢¬¥á⨬ ï ¢¥àá¨ï',0
-
 
6246
aTables                 db      '’ ¡«¨æë',0
-
 
6247
aSelect                 db      '®¬¥â¨âì',0
-
 
6248
aDeselect               db      '‘­ïâì',0
5194
else
6249
else
5195
aDeleteCaption          db      'Delete',0
6250
aDeleteCaption          db      'Delete',0
5196
aConfirmDeleteText      db      'Do you wish to delete ',0
6251
aConfirmDeleteText      db      'Do you wish to delete',0
5197
aDeleteFolder           db      'the folder',0
6252
aDeleteFolder           db      ' the folder',0
5198
aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2
6253
aConfirmDeleteTextMax = $ - aConfirmDeleteText - 2
Line 5213... Line 6268...
5213
aError                  db      'Error',0
6268
aError                  db      'Error',0
5214
aContinue               db      'Continue',0
6269
aContinue               db      'Continue',0
5215
aRetry                  db      'Retry',0
6270
aRetry                  db      'Retry',0
5216
a_Cancel                db      'Cancel',0
6271
a_Cancel                db      'Cancel',0
5217
a_Delete                db      'Delete',0
6272
a_Delete                db      'Delete',0
-
 
6273
aSkip                   db      'Skip',0
-
 
6274
aSkipAll                db      'Skip all',0
5218
error0msg               db      'Strange... No error',0
6275
error0msg               db      'Strange... No error',0
5219
error1msg               db      'Strange... Hard disk base and/or partition not defined',0
6276
error1msg               db      'Strange... Hard disk base and/or partition not defined',0
5220
error2msg               db      'The file system does not support this function',0
6277
error2msg               db      'The file system does not support this function',0
5221
error3msg               db      'Unknown file system',0
6278
error3msg               db      'Unknown file system',0
5222
error4msg               db      'Strange... Error 4',0
6279
error4msg               db      'Strange... Error 4',0
Line 5238... Line 6295...
5238
aCmdLineTooBig          db      'Command line is too long (OS limit is 256 symbols)',0
6295
aCmdLineTooBig          db      'Command line is too long (OS limit is 256 symbols)',0
5239
aCannotCopyToSelf       db      'File cannot be copied onto itself',0
6296
aCannotCopyToSelf       db      'File cannot be copied onto itself',0
5240
aCannotReadFile         db      'Cannot read file',0
6297
aCannotReadFile         db      'Cannot read file',0
5241
aIncompleteFile         db      'Incomplete file was retrieved. Delete it?',0
6298
aIncompleteFile         db      'Incomplete file was retrieved. Delete it?',0
5242
aKeep                   db      'Keep',0
6299
aKeep                   db      'Keep',0
5243
aCannotWriteFile        db      'Cannot write file',0
6300
aCannotWriteFile        db      'Cannot write to the file',0
5244
aCannotDeleteFile       db      'Cannot delete file',0
6301
aCannotDeleteFile       db      'Cannot delete the file',0
5245
aCannotDeleteFolder     db      'Cannot delete folder',0
6302
aCannotDeleteFolder     db      'Cannot delete the folder',0
5246
aIgnore                 db      'Ignore',0
6303
aIgnore                 db      'Ignore',0
5247
aMkDirCaption           db      'Make folder',0
6304
aMkDirCaption           db      'Make folder',0
5248
aMkDir                  db      'Create the folder',0
6305
aMkDir                  db      'Create the folder',0
5249
aMkDirLen = $ - aMkDir - 1
6306
aMkDirLen = $ - aMkDir - 1
5250
aCannotMakeFolder       db      'Cannot create folder',0
6307
aCannotMakeFolder       db      'Cannot create folder',0
-
 
6308
aName                   db      4,'Name'
-
 
6309
aSize                   db      4,'Size'
-
 
6310
aDate                   db      4,'Date'
-
 
6311
aTime                   db      4,'Time'
-
 
6312
aCannotLoadDLL          db      'Cannot load DLL',0
-
 
6313
aInvalidDLL             db      'File is not found or invalid',0
-
 
6314
aMissingExport          db      'Required function is not present',0
-
 
6315
aInitFailed             db      'Initialization failed',0
-
 
6316
aIncompatibleVersion    db      'Incompatible version',0
-
 
6317
aTables                 db      'Tables',0
-
 
6318
aSelect                 db      'Select',0
-
 
6319
aDeselect               db      'Deselect',0
5251
end if
6320
end if
-
 
6321
 
5252
aOk                     db      'OK',0
6322
aOk                     db      'OK',0
5253
aNoMemory               db      'No memory!',0
6323
aNoMemory               db      'No memory!'
-
 
6324
nullstr                 db      0
-
 
6325
standard_dll_path:
-
 
6326
libini_name             db      '/rd/1/dll/'
-
 
6327
standard_dll_path_size = $ - standard_dll_path
-
 
6328
                        db      'libini.obj',0
-
 
6329
aStart                  db      'START',0
-
 
6330
aLibInit                db      'lib_init',0
-
 
6331
aVersion                db      'version',0
-
 
6332
aIniGetInt              db      'ini.get_int',0
-
 
6333
aIniGetStr              db      'ini.get_str',0
-
 
6334
aIniQuerySec            db      'ini.query_sec',0
-
 
6335
 
-
 
6336
aConfirmations          db      'Confirmations',0
-
 
6337
aConfirmDelete          db      'Delete',0
-
 
6338
aConfirmDeleteIncomplete db     'DeleteIncomplete',0
-
 
6339
 
-
 
6340
aAssociations           db      'Associations',0
-
 
6341
aMenu                   db      'Menu',0
-
 
6342
aFolderShortcuts        db      'FolderShortcuts',0
-
 
6343
aShortcut               db      'Shortcut'
-
 
6344
.d                      db      '0',0
-
 
6345
 
-
 
6346
align 4
-
 
6347
ini_import:
-
 
6348
ini.get_int     dd      aIniGetInt
-
 
6349
ini.get_str     dd      aIniGetStr
-
 
6350
ini.query_sec   dd      aIniQuerySec
-
 
6351
                dd      0
-
 
6352
 
-
 
6353
virtual at 0
-
 
6354
PanelMode:
-
 
6355
; up to 16 columns on one panel
-
 
6356
.NumColumns     dd      ?
-
 
6357
; available column types:
-
 
6358
COLUMN_TYPE_NONE = 0
-
 
6359
COLUMN_TYPE_NAME = 1
-
 
6360
        COLUMN_NAME_MARK = 10h          ; (reserved)
-
 
6361
        COLUMN_NAME_NOPATH = 20h        ; (reserved)
-
 
6362
        COLUMN_NAME_RIGHTALIGN = 40h    ; (reserved)
-
 
6363
COLUMN_TYPE_SIZE = 2
-
 
6364
        COLUMN_SIZE_COMMA = 10h         ; (reserved)
-
 
6365
COLUMN_TYPE_PACKED_SIZE = 3             ; (reserved)
-
 
6366
COLUMN_TYPE_DATE = 4
-
 
6367
COLUMN_TYPE_TIME = 5
-
 
6368
COLUMN_TYPE_DATETIME = 6                ; (reserved)
-
 
6369
COLUMN_TYPE_DATETIME_CREATION = 7       ; (reserved)
-
 
6370
COLUMN_TYPE_DATETIME_ACCESS = 8         ; (reserved)
-
 
6371
COLUMN_TYPE_ATTRIBUTES = 9              ; (reserved)
-
 
6372
COLUMN_TYPE_DESCRIPTION = 10            ; (reserved)
-
 
6373
COLUMN_TYPE_OWNER = 11                  ; (reserved)
-
 
6374
COLUMN_TYPE_NUMLINKS = 12               ; (reserved)
-
 
6375
COLUMN_TYPE_CUSTOM = 13                 ; (reserved)
-
 
6376
.ColumnTypes    rb      16
-
 
6377
 
-
 
6378
.ColumnWidths   rb      16
-
 
6379
.bFullScreen    db      ?               ; (reserved)
-
 
6380
.bAlignExtensions db    ?
-
 
6381
                rb      2
-
 
6382
.size = $
-
 
6383
end virtual
-
 
6384
 
-
 
6385
align 4
-
 
6386
column_headers:
-
 
6387
        dd      nullstr
-
 
6388
        dd      aName
-
 
6389
        dd      aSize
-
 
6390
        dd      nullstr
-
 
6391
        dd      aDate
-
 
6392
        dd      aTime
-
 
6393
draw_column_proc:
-
 
6394
        dd      draw_empty_column
-
 
6395
        dd      draw_name_column
-
 
6396
        dd      draw_size_column
-
 
6397
        dd      -1
-
 
6398
        dd      draw_date_column
-
 
6399
        dd      draw_time_column
-
 
6400
colmodes:
-
 
6401
; ०¨¬ 0 : NM,SC,D
-
 
6402
        dd      3
-
 
6403
        db      COLUMN_TYPE_NAME+COLUMN_NAME_MARK, COLUMN_TYPE_SIZE+COLUMN_SIZE_COMMA
-
 
6404
                db      COLUMN_TYPE_DATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-
 
6405
        db      0, 10, 8
-
 
6406
                times 13 db 0
-
 
6407
        db      0, 1
-
 
6408
                times 2 db 0
-
 
6409
; ०¨¬ 1 : N,N,N
-
 
6410
        dd      3
-
 
6411
        db      COLUMN_TYPE_NAME, COLUMN_TYPE_NAME, COLUMN_TYPE_NAME
-
 
6412
                times 13 db 0
-
 
6413
        times 16 db 0
-
 
6414
        db      0, 1
-
 
6415
                times 2 db 0
-
 
6416
; ०¨¬ 2 : N,N
-
 
6417
        dd      2
-
 
6418
        db      COLUMN_TYPE_NAME, COLUMN_TYPE_NAME
-
 
6419
                times 14 db 0
-
 
6420
        times 16 db 0
-
 
6421
        db      0, 0
-
 
6422
                times 2 db 0
-
 
6423
; ०¨¬ 3 : N,S,D,T
-
 
6424
        dd      4
-
 
6425
        db      COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE, COLUMN_TYPE_DATE, COLUMN_TYPE_TIME
-
 
6426
                times 12 db 0
-
 
6427
        db      0, 6, 8, 5
-
 
6428
                times 12 db 0
-
 
6429
        db      0, 1
-
 
6430
                times 2 db 0
-
 
6431
; ०¨¬ 4 : N,S
-
 
6432
        dd      2
-
 
6433
        db      COLUMN_TYPE_NAME, COLUMN_TYPE_SIZE
-
 
6434
                times 14 db 0
-
 
6435
        db      0, 6
-
 
6436
                times 14 db 0
-
 
6437
        db      0, 0
-
 
6438
                times 2 db 0
-
 
6439
; ०¨¬ 5 : N,S,P,DM,DC,DA,A
-
 
6440
; ०¨¬ 6 : N,Z
-
 
6441
; ०¨¬ 7 : N,S,Z
-
 
6442
; ०¨¬ 8 : N,S,O
-
 
6443
; ०¨¬ 9 : N,S,LN
Line 5254... Line 6444...
5254
 
6444
 
5255
execinfo:
6445
execinfo:
5256
        dd      7
6446
        dd      7
5257
        dd      0
6447
        dd      0
Line 5284... Line 6474...
5284
panel1_sortmode db      ?
6474
panel1_sortmode db      ?
5285
                rb      3
6475
                rb      3
5286
panel1_nfa      dd      ?
6476
panel1_nfa      dd      ?
5287
panel1_numfiles dd      ?
6477
panel1_numfiles dd      ?
5288
panel1_files    dd      ?
6478
panel1_files    dd      ?
-
 
6479
panel1_colmode  dd      ?
-
 
6480
panel1_colwidths rd     16+1
-
 
6481
panel1_total_num dd     ?
-
 
6482
panel1_total_size dq    ?
-
 
6483
panel1_selected_num dd ?
-
 
6484
panel1_selected_size dq ?
5289
panel1_dir      rb      1024
6485
panel1_dir      rb      1024
Line 5290... Line 6486...
5290
 
6486
 
5291
panel2_data:
6487
panel2_data:
5292
panel2_left     dd      ?
6488
panel2_left     dd      ?
Line 5300... Line 6496...
5300
panel2_sortmode db      ?
6496
panel2_sortmode db      ?
5301
                rb      3
6497
                rb      3
5302
panel2_nfa      dd      ?
6498
panel2_nfa      dd      ?
5303
panel2_numfiles dd      ?
6499
panel2_numfiles dd      ?
5304
panel2_files    dd      ?
6500
panel2_files    dd      ?
-
 
6501
panel2_colmode  dd      ?
-
 
6502
panel2_colwidths rd     16+1
-
 
6503
panel2_total_num dd     ?
-
 
6504
panel2_total_size dq    ?
-
 
6505
panel2_selected_num  dd ?
-
 
6506
panel2_selected_size dq ?
5305
panel2_dir      rb      1024
6507
panel2_dir      rb      1024
Line 5306... Line 6508...
5306
 
6508
 
Line 5307... Line 6509...
5307
;console_data    rb      max_width*max_height*2
6509
;console_data    rb      max_width*max_height*2
Line 5327... Line 6529...
5327
column_left     dd      ?
6529
column_left     dd      ?
5328
column_top      dd      ?
6530
column_top      dd      ?
5329
column_width    dd      ?
6531
column_width    dd      ?
5330
column_height   dd      ?
6532
column_height   dd      ?
5331
column_index    dd      ?
6533
column_index    dd      ?
-
 
6534
last_column_index dd    ?
Line 5332... Line 6535...
5332
 
6535
 
5333
scrpos          dq      ?
6536
scrpos          dq      ?
Line 5334... Line 6537...
5334
viewer_right_side dq    ?
6537
viewer_right_side dq    ?
5335
 
6538
 
5336
saved_file_name:
6539
saved_file_name:
Line -... Line 6540...
-
 
6540
procinfo        rb      1024
-
 
6541
lower_file_name = procinfo + 512
5337
procinfo        rb      1024
6542
 
Line 5338... Line 6543...
5338
lower_file_name = procinfo + 512
6543
app_path        rb      1100
Line 5339... Line 6544...
5339
 
6544
 
Line 5352... Line 6557...
5352
aConfirmDeleteTextBuf   rb      aConfirmDeleteTextMax + 1
6557
aConfirmDeleteTextBuf   rb      aConfirmDeleteTextMax + 1
5353
CopySourceTextBuf       rb      512
6558
CopySourceTextBuf       rb      512
5354
CopyDestEditBuf         rb      12+512+1
6559
CopyDestEditBuf         rb      12+512+1
5355
.length = $ - CopyDestEditBuf - 13
6560
.length = $ - CopyDestEditBuf - 13
Line -... Line 6561...
-
 
6561
 
-
 
6562
enter_string_buf        rb      12+512+1
-
 
6563
 
-
 
6564
bMemForImageValidData   db      ?
5356
 
6565
 
-
 
6566
align 4
5357
align 4
6567
tolower_table   rb      256
Line 5358... Line 6568...
5358
layout          rb      128
6568
layout          rb      128
5359
 
6569
 
Line -... Line 6570...
-
 
6570
copy_buffer_size = 32768
-
 
6571
copy_buffer     rb      copy_buffer_size
-
 
6572
 
-
 
6573
; data for directory delete
-
 
6574
; If directory nested level is >1024, then its full name is too big,
-
 
6575
; so we see the overflow when creating full name (we check for this!)
-
 
6576
del_dir_stack   rd      1024
-
 
6577
del_dir_stack_ptr dd    ?
-
 
6578
del_dir_query_size = 32
5360
copy_buffer_size = 32768
6579
del_dir_query_area rb   32+304*del_dir_query_size
5361
copy_buffer     rb      copy_buffer_size
6580
del_bSkipAll    db      ?
5362
 
6581
 
5363
; stack
6582
; stack