Subversion Repositories Kolibri OS

Rev

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

Rev 180 Rev 321
Line 17... Line 17...
17
end virtual
17
end virtual
Line 18... Line 18...
18
 
18
 
19
view_file:
19
view_file:
20
        mov     eax, [ebp + panel1_files - panel1_data]
20
        mov     eax, [ebp + panel1_files - panel1_data]
21
        mov     ecx, [eax+ecx*4]
-
 
22
        mov     eax, [ebp + panel1_nfa - panel1_data]
-
 
23
        lea     ecx, [ecx+eax*4+32]
-
 
24
        add     ecx, [ebp + panel1_files - panel1_data]
21
        mov     ecx, [eax+ecx*4]
25
        test    byte [ecx], 10h
22
        test    byte [ecx], 10h
26
        jz      .file
23
        jz      .file
27
        ret
24
        ret
28
.file:
25
.file:
Line 57... Line 54...
57
        jnz     @b
54
        jnz     @b
58
        pop     eax
55
        pop     eax
59
        push    eax
56
        push    eax
60
        mov     ebx, attrinfo
57
        mov     ebx, attrinfo
61
        mov     [ebx+21], eax
58
        mov     [ebx+21], eax
-
 
59
.attr_retry:
62
        push    70
60
        push    70
63
        pop     eax
61
        pop     eax
64
        int     40h
62
        int     40h
-
 
63
        test    eax, eax
-
 
64
        jz      @f
-
 
65
        lea     ebx, [ebp+viewer_data.filename]
-
 
66
        push    ebx
-
 
67
        push    aCannotReadFile
-
 
68
        call    get_error_msg
-
 
69
        push    eax
-
 
70
        mov     eax, esp
-
 
71
        push    RetryOrCancelBtn
-
 
72
        push    2
-
 
73
        push    eax
-
 
74
        push    3
-
 
75
        push    -1
-
 
76
        push    -1
-
 
77
        push    aError
-
 
78
        call    SayErr
65
; TODO: add error handling
79
        add     esp, 3*4
-
 
80
        mov     ebx, attrinfo
-
 
81
        test    eax, eax
-
 
82
        jz      .attr_retry
-
 
83
        jmp     delete_active_screen
-
 
84
@@:
66
        mov     eax, dword [attrinfo.attr+32]
85
        mov     eax, dword [attrinfo.attr+32]
67
        mov     dword [ebp+viewer_data.filesize], eax
86
        mov     dword [ebp+viewer_data.filesize], eax
68
        mov     eax, dword [attrinfo.attr+36]
87
        mov     eax, dword [attrinfo.attr+36]
69
        mov     dword [ebp+viewer_data.filesize+4], eax
88
        mov     dword [ebp+viewer_data.filesize+4], eax
70
        mov     ebx, readinfo
89
        mov     ebx, readinfo
Line 78... Line 97...
78
        mov     [ebx+readinfo.size-readinfo], 16384
97
        mov     [ebx+readinfo.size-readinfo], 16384
79
        lea     eax, [ebp+viewer_data.buf]
98
        lea     eax, [ebp+viewer_data.buf]
80
        mov     [readinfo.data], eax
99
        mov     [readinfo.data], eax
81
        mov     [ebp+viewer_data.buf_pos], eax
100
        mov     [ebp+viewer_data.buf_pos], eax
82
        pop     dword [readinfo.name]
101
        pop     dword [readinfo.name]
-
 
102
.retry:
83
        push    70
103
        push    70
84
        pop     eax
104
        pop     eax
85
        int     40h
105
        int     40h
86
        mov     [ebp+viewer_data.buf_size], ebx
106
        mov     [ebp+viewer_data.buf_size], ebx
-
 
107
        test    eax, eax
-
 
108
        jz      .readok
-
 
109
        cmp     eax, 6
-
 
110
        jz      .readok
-
 
111
        lea     ebx, [ebp+viewer_data.filename]
-
 
112
        push    ebx
-
 
113
        push    aCannotReadFile
-
 
114
        call    get_error_msg
-
 
115
        push    eax
-
 
116
        mov     eax, esp
-
 
117
        push    RetryOrCancelBtn
-
 
118
        push    2
-
 
119
        push    eax
-
 
120
        push    3
-
 
121
        push    -1
-
 
122
        push    -1
-
 
123
        push    aError
-
 
124
        call    SayErr
87
; TODO: add error handling
125
        add     esp, 3*4
-
 
126
        mov     ebx, readinfo
-
 
127
        test    eax, eax
-
 
128
        jz      .attr_retry
-
 
129
        jmp     delete_active_screen
-
 
130
.readok:
88
        call    viewer_set_keybar
131
        call    viewer_set_keybar
89
        call    viewer_draw_text
132
        call    viewer_draw_text
90
        ret
133
        ret
Line 91... Line 134...
91
 
134
 
Line 116... Line 159...
116
        mov     ecx, (16384-8192)/4
159
        mov     ecx, (16384-8192)/4
117
        rep     movsd
160
        rep     movsd
118
        mov     [readinfo.data], edi
161
        mov     [readinfo.data], edi
119
        lea     eax, [ebp+viewer_data.filename]
162
        lea     eax, [ebp+viewer_data.filename]
120
        mov     [readinfo.name], eax
163
        mov     [readinfo.name], eax
-
 
164
.readretry:
121
        mov     ebx, readinfo
165
        mov     ebx, readinfo
122
        push    70
166
        push    70
123
        pop     eax
167
        pop     eax
124
        int     40h
168
        int     40h
-
 
169
        test    eax, eax
-
 
170
        jz      .readok
-
 
171
        cmp     eax, 6
-
 
172
        jz      .readok
-
 
173
        call    ask_retry_ignore
-
 
174
        jz      .readretry
-
 
175
.readok:
125
        sub     [ebp+viewer_data.buf_pos], 8192
176
        sub     [ebp+viewer_data.buf_pos], 8192
126
        add     ebx, 16384-8192
177
        add     ebx, 16384-8192
127
        mov     [ebp+viewer_data.buf_size], ebx
178
        mov     [ebp+viewer_data.buf_size], ebx
128
        mov     eax, [ebp+viewer_data.buf_pos]
179
        mov     eax, [ebp+viewer_data.buf_pos]
129
        cmp     ecx, 16384-8192
180
        cmp     ecx, 16384-8192
Line 779... Line 830...
779
        lea     eax, [ebp+viewer_data.filename]
830
        lea     eax, [ebp+viewer_data.filename]
780
        mov     [ebx+21], eax
831
        mov     [ebx+21], eax
781
        push    70
832
        push    70
782
        pop     eax
833
        pop     eax
783
        int     40h
834
        int     40h
-
 
835
        test    eax, eax
-
 
836
        jz      .readok
-
 
837
        cmp     eax, 6
-
 
838
        jz      .readok
-
 
839
        call    ask_retry_ignore
-
 
840
        jz      .doread
-
 
841
.readok:
784
        cmp     ebx, [readinfo.size]
842
        cmp     ebx, [readinfo.size]
785
        jnz     @f
843
        jnz     @f
786
        add     ebx, [ebp+viewer_data.buf_size]
844
        add     ebx, [ebp+viewer_data.buf_size]
787
@@:
845
@@:
788
.ret:
846
.ret:
Line 820... Line 878...
820
        adc     edx, 0
878
        adc     edx, 0
821
        mov     [ebx+8], edx
879
        mov     [ebx+8], edx
822
        mov     [ebx+12], eax
880
        mov     [ebx+12], eax
823
        lea     eax, [ebp+viewer_data.filename]
881
        lea     eax, [ebp+viewer_data.filename]
824
        mov     [ebx+21], eax
882
        mov     [ebx+21], eax
-
 
883
@@:
825
        push    70
884
        push    70
826
        pop     eax
885
        pop     eax
827
        int     40h
886
        int     40h
-
 
887
        test    eax, eax
-
 
888
        jz      @f
-
 
889
        cmp     eax, 6
-
 
890
        jz      @f
-
 
891
        call    ask_retry_ignore
-
 
892
        jnz     @f
-
 
893
        mov     ebx, readinfo
-
 
894
        jmp     @b
-
 
895
@@:
828
        sub     ebx, [readinfo.size]
896
        sub     ebx, [readinfo.size]
829
        add     ebx, 16384
897
        add     ebx, 16384
830
        jmp     .ret
898
        jmp     .ret
Line -... Line 899...
-
 
899
 
-
 
900
ask_retry_ignore:
-
 
901
        push    esi
-
 
902
        lea     esi, [ebp+viewer_data.filename]
-
 
903
        push    esi
-
 
904
        push    aCannotReadFile
-
 
905
        call    get_error_msg
-
 
906
        push    eax
-
 
907
        mov     eax, esp
-
 
908
        push    RetryOrIgnoreBtn
-
 
909
        push    2
-
 
910
        push    eax
-
 
911
        push    3
-
 
912
        push    -1
-
 
913
        push    -1
-
 
914
        push    aError
-
 
915
        call    SayErr
-
 
916
        add     esp, 3*4
-
 
917
        pop     esi
-
 
918
        test    eax, eax
-
 
919
        ret
831
 
920
 
832
viewer_set_curpos:
921
viewer_set_curpos:
833
        mov     eax, [ebp+viewer_data.buf_pos]
922
        mov     eax, [ebp+viewer_data.buf_pos]
834
        sub     eax, ebp
923
        sub     eax, ebp
835
        sub     eax, viewer_data.buf
924
        sub     eax, viewer_data.buf