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