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