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 |