Rev 3840 | Rev 5684 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3840 | Rev 4631 | ||
---|---|---|---|
1 | ;------------------------------------------------------------------------------ |
1 | ;------------------------------------------------------------------------------ |
2 | draw_buttons_panel: |
2 | draw_buttons_panel: |
3 | mov ecx,[skin_high] |
3 | mov ecx,[skin_high] |
4 | add ecx,19 |
4 | add ecx,19 |
5 | shl ecx,16 |
5 | shl ecx,16 |
6 | mov cx,18 |
6 | mov cx,18 |
7 | mov ebx,[window_width] |
7 | mov ebx,[window_width] |
8 | sub ebx,9 |
8 | sub ebx,9 |
9 | add ebx,5 shl 16 |
9 | add ebx,5 shl 16 |
10 | mcall 13,,,0xffffff |
10 | mcall 13,,,0xffffff |
11 | mov edx,15 shl 16+20 |
11 | mov edx,15 shl 16+20 |
12 | add edx,[skin_high] |
12 | add edx,[skin_high] |
13 | pusha |
13 | pusha |
14 | call .calculate_button |
14 | call .calculate_button |
15 | mcall ,,,150 |
15 | mcall ,,,150 |
16 | popa |
16 | popa |
17 | mcall 7,[buttons_img_start],<16,16> |
17 | mcall 7,[buttons_img_start],<16,16> |
18 | add edx,26 shl 16 |
18 | add edx,26 shl 16 |
19 | add ebx,16*16*3 |
19 | add ebx,16*16*3 |
20 | pusha |
20 | pusha |
21 | call .calculate_button |
21 | call .calculate_button |
22 | mcall ,,,151 |
22 | mcall ,,,151 |
23 | popa |
23 | popa |
24 | mcall |
24 | mcall |
25 | add edx,26 shl 16 |
25 | add edx,26 shl 16 |
26 | add ebx,16*16*3 |
26 | add ebx,16*16*3 |
27 | pusha |
27 | pusha |
28 | call .calculate_button |
28 | call .calculate_button |
29 | mcall ,,,152 |
29 | mcall ,,,152 |
30 | popa |
30 | popa |
31 | mcall |
31 | mcall |
32 | add edx,26 shl 16 |
32 | add edx,26 shl 16 |
33 | add ebx,16*16*3 |
33 | add ebx,16*16*3 |
34 | pusha |
34 | pusha |
35 | call .calculate_button |
35 | call .calculate_button |
36 | mcall ,,,153 |
36 | mcall ,,,153 |
37 | popa |
37 | popa |
38 | mcall |
38 | mcall |
39 | add edx,26 shl 16 |
39 | add edx,26 shl 16 |
40 | add ebx,16*16*3 |
40 | add ebx,16*16*3 |
41 | pusha |
41 | pusha |
42 | call .calculate_button |
42 | call .calculate_button |
43 | mcall ,,,154 |
43 | mcall ,,,154 |
44 | popa |
44 | popa |
45 | mcall |
45 | mcall |
46 | add edx,26 shl 16 |
46 | add edx,26 shl 16 |
47 | add ebx,16*16*3 |
47 | add ebx,16*16*3 |
48 | pusha |
48 | pusha |
49 | call .calculate_button |
49 | call .calculate_button |
50 | mcall ,,,155 |
50 | mcall ,,,155 |
51 | popa |
51 | popa |
52 | mcall |
52 | mcall |
53 | add edx,26 shl 16 |
53 | add edx,26 shl 16 |
54 | add ebx,16*16*3 |
54 | add ebx,16*16*3 |
55 | pusha |
55 | pusha |
56 | call .calculate_button |
56 | call .calculate_button |
57 | mcall ,,,156 |
57 | mcall ,,,156 |
58 | popa |
58 | popa |
59 | mcall |
59 | mcall |
60 | add edx,26 shl 16 |
60 | add edx,26 shl 16 |
61 | add ebx,16*16*3 |
61 | add ebx,16*16*3 |
62 | pusha |
62 | pusha |
63 | call .calculate_button |
63 | call .calculate_button |
64 | mcall ,,,157 |
64 | mcall ,,,157 |
65 | popa |
65 | popa |
66 | mcall |
66 | mcall |
67 | ret |
67 | ret |
68 | ;-------------------------------------- |
68 | ;-------------------------------------- |
69 | .calculate_button: |
69 | .calculate_button: |
70 | mov esi,0xffffff |
70 | mov esi,0xffffff |
71 | mov ebx,edx |
71 | mov ebx,edx |
72 | mov bx,15 |
72 | mov bx,15 |
73 | mov ecx,edx |
73 | mov ecx,edx |
74 | shl ecx,16 |
74 | shl ecx,16 |
75 | mov cx,bx |
75 | mov cx,bx |
76 | mov eax,8 |
76 | mov eax,8 |
77 | ret |
77 | ret |
78 | ;------------------------------------------------------------------------------ |
78 | ;------------------------------------------------------------------------------ |
79 | draw_left_sort_button: |
79 | draw_left_sort_button: |
80 | mov bx,[left_panel_x.start_x] |
80 | mov bx,[left_panel_x.start_x] |
81 | add bx,[left_panel_x.size_x] |
81 | add bx,[left_panel_x.size_x] |
82 | sub ebx,50+15 |
82 | sub ebx,50+15 |
83 | mov cx,[left_panel_y.start_y] |
83 | mov cx,[left_panel_y.start_y] |
84 | call calclulate_sort_button_1 |
84 | call calclulate_sort_button_1 |
85 | mov edx,145 |
85 | mov edx,145 |
86 | ;-------------------------------------- |
86 | ;-------------------------------------- |
87 | .start: |
87 | .start: |
88 | mov esi,0xffffff |
88 | mov esi,0xffffff |
89 | dec ebp |
89 | dec ebp |
90 | cmp [left_sort_flag],ebp |
90 | cmp [left_sort_flag],ebp |
91 | jne @f |
91 | jne @f |
92 | 92 | ||
93 | mov esi,0xccccff |
93 | mov esi,0xccccff |
94 | ;-------------------------------------- |
94 | ;-------------------------------------- |
95 | @@: |
95 | @@: |
96 | call calclulate_sort_button_2 |
96 | call calclulate_sort_button_2 |
97 | jnz .start |
97 | jnz .start |
98 | 98 | ||
99 | ret |
99 | ret |
100 | ;------------------------------------------------------------------------------ |
100 | ;------------------------------------------------------------------------------ |
101 | calclulate_sort_button_1: |
101 | calclulate_sort_button_1: |
102 | shl ebx,16 |
102 | shl ebx,16 |
103 | mov bx,50 |
103 | mov bx,50 |
104 | sub cx,14 |
104 | sub cx,14 |
105 | shl ecx,16 |
105 | shl ecx,16 |
106 | mov cx,12 |
106 | mov cx,12 |
107 | mov eax,8 |
107 | mov eax,8 |
108 | mov ebp,4 |
108 | mov ebp,4 |
109 | ret |
109 | ret |
110 | ;------------------------------------------------------------------------------ |
110 | ;------------------------------------------------------------------------------ |
111 | calclulate_sort_button_2: |
111 | calclulate_sort_button_2: |
112 | inc ebp |
112 | inc ebp |
113 | mcall |
113 | mcall |
114 | pusha |
114 | pusha |
115 | push ebx |
115 | push ebx |
116 | mov eax,ebx |
116 | mov eax,ebx |
117 | inc eax |
117 | inc eax |
118 | shl eax,16 |
118 | shl eax,16 |
119 | add ebx,eax |
119 | add ebx,eax |
120 | cmp ebp,4 |
120 | cmp ebp,4 |
121 | jne @f |
121 | jne @f |
122 | 122 | ||
123 | mov bx,15 |
123 | mov bx,15 |
124 | jmp .continue |
124 | jmp .continue |
125 | ;-------------------------------------- |
125 | ;-------------------------------------- |
126 | @@: |
126 | @@: |
127 | mov bx,1 |
127 | mov bx,1 |
128 | ;-------------------------------------- |
128 | ;-------------------------------------- |
129 | .continue: |
129 | .continue: |
130 | inc ecx |
130 | inc ecx |
131 | mcall 13,,,0xcccccc |
131 | mcall 13,,,0xcccccc |
132 | pop ebx |
132 | pop ebx |
133 | cmp ebp,1 |
133 | cmp ebp,1 |
134 | jne @f |
134 | jne @f |
135 | 135 | ||
136 | mov eax,[temp_panel_end] |
136 | mov eax,[temp_panel_end] |
137 | shl eax,16 |
137 | shl eax,16 |
138 | add eax,[temp_panel_end] |
138 | add eax,[temp_panel_end] |
139 | shr eax,16 |
139 | shr eax,16 |
140 | shr ebx,16 |
140 | shr ebx,16 |
141 | sub ebx,eax |
141 | sub ebx,eax |
142 | shl ebx,16 |
142 | shl ebx,16 |
143 | mov bx,ax |
143 | mov bx,ax |
144 | rol ebx,16 |
144 | rol ebx,16 |
145 | mcall 13 |
145 | mcall 13 |
146 | mov [temp_panel_end],ebx |
146 | mov [temp_panel_end],ebx |
147 | ;-------------------------------------- |
147 | ;-------------------------------------- |
148 | @@: |
148 | @@: |
149 | popa |
149 | popa |
150 | pusha |
150 | pusha |
151 | shr ecx,16 |
151 | shr ecx,16 |
152 | mov bx,cx |
152 | mov bx,cx |
153 | add ebx,3 shl 16+2 |
153 | add ebx,3 shl 16+2 |
154 | mov edx,ebp |
154 | mov edx,ebp |
155 | dec edx |
155 | dec edx |
156 | shl edx,2 |
156 | shl edx,2 |
157 | add edx,sort_button_name |
157 | add edx,sort_button_name |
158 | mov eax,4 |
158 | mov eax,4 |
159 | mov esi,eax |
159 | mov esi,eax |
160 | mcall ,,0x10000000 |
160 | mcall ,,0x10000000 |
161 | popa |
161 | popa |
162 | dec edx |
162 | dec edx |
163 | sub ebx,38 shl 16 |
163 | sub ebx,38 shl 16 |
164 | mov bx,36 |
164 | mov bx,36 |
165 | dec ebp |
165 | dec ebp |
166 | ret |
166 | ret |
167 | ;------------------------------------------------------------------------------ |
167 | ;------------------------------------------------------------------------------ |
168 | draw_right_sort_button: |
168 | draw_right_sort_button: |
169 | mov bx,[right_panel_x.start_x] |
169 | mov bx,[right_panel_x.start_x] |
170 | add bx,[right_panel_x.size_x] |
170 | add bx,[right_panel_x.size_x] |
171 | sub ebx,50+15 |
171 | sub ebx,50+15 |
172 | mov cx,[right_panel_y.start_y] |
172 | mov cx,[right_panel_y.start_y] |
173 | call calclulate_sort_button_1 |
173 | call calclulate_sort_button_1 |
174 | mov edx,149 |
174 | mov edx,149 |
175 | ;-------------------------------------- |
175 | ;-------------------------------------- |
176 | .start: |
176 | .start: |
177 | mov esi,0xffffff |
177 | mov esi,0xffffff |
178 | dec ebp |
178 | dec ebp |
179 | cmp [right_sort_flag],ebp |
179 | cmp [right_sort_flag],ebp |
180 | jne @f |
180 | jne @f |
181 | 181 | ||
182 | mov esi,0xccccff |
182 | mov esi,0xccccff |
183 | ;-------------------------------------- |
183 | ;-------------------------------------- |
184 | @@: |
184 | @@: |
185 | call calclulate_sort_button_2 |
185 | call calclulate_sort_button_2 |
186 | jnz .start |
186 | jnz .start |
187 | 187 | ||
188 | ret |
188 | ret |
189 | ;------------------------------------------------------------------------------ |
189 | ;------------------------------------------------------------------------------ |
190 | draw_left_select_disk_button: |
190 | draw_left_select_disk_button: |
191 | mov bx,[left_panel_x.start_x] |
191 | mov bx,[left_panel_x.start_x] |
192 | mov cx,[left_panel_y.start_y] |
192 | mov cx,[left_panel_y.start_y] |
193 | mov ebp,read_folder_name ;read_folder.name |
193 | mov ebp,read_folder_name ;read_folder.name |
194 | mov edx,0x40000000+140 |
194 | mov edx,0x40000000+140 |
195 | ;-------------------------------------- |
195 | ;-------------------------------------- |
196 | .1: |
196 | .1: |
197 | shl ebx,16 |
197 | shl ebx,16 |
198 | mov bx,60 |
198 | mov bx,60 |
199 | sub cx,14 |
199 | sub cx,14 |
200 | shl ecx,16 |
200 | shl ecx,16 |
201 | mov cx,13 |
201 | mov cx,13 |
202 | mcall 8,,,,0xffffff |
202 | mcall 8,,,,0xffffff |
203 | mcall 13,,,0xffffff |
203 | mcall 13,,,0xffffff |
204 | pusha |
204 | pusha |
205 | mov esi,ebp |
205 | mov esi,ebp |
206 | add esi,2 |
206 | add esi,2 |
207 | ;-------------------------------------- |
207 | ;-------------------------------------- |
208 | @@: |
208 | @@: |
209 | inc esi |
209 | inc esi |
210 | cmp [esi],byte 0 |
210 | cmp [esi],byte 0 |
211 | je @f |
211 | je @f |
212 | 212 | ||
213 | cmp [esi],byte '/' |
213 | cmp [esi],byte '/' |
214 | jne @r |
214 | jne @r |
215 | 215 | ||
216 | add esi,2 |
216 | add esi,2 |
217 | ;-------------------------------------- |
217 | ;-------------------------------------- |
218 | @@: |
218 | @@: |
219 | sub esi,ebp ;read_folder.name |
219 | sub esi,ebp ;read_folder.name |
220 | add ebx,1 shl 16 |
220 | add ebx,1 shl 16 |
221 | shr ecx,16 |
221 | shr ecx,16 |
222 | mov bx,cx |
222 | mov bx,cx |
223 | add ebx,3 |
223 | add ebx,3 |
224 | mov edx,ebp |
224 | mov edx,ebp |
225 | mcall 4,,0 ;,read_folder.name |
225 | mcall 4,,0 ;,read_folder.name |
226 | popa |
226 | popa |
227 | add ebx,50 shl 16 |
227 | add ebx,50 shl 16 |
228 | mov bx,10 |
228 | mov bx,10 |
229 | mcall ,,,0x6060ff |
229 | mcall ,,,0x6060ff |
230 | mov [temp_panel_end],ebx |
230 | mov [temp_panel_end],ebx |
231 | add ebx,1 shl 16 |
231 | add ebx,1 shl 16 |
232 | shr ecx,16 |
232 | shr ecx,16 |
233 | mov bx,cx |
233 | mov bx,cx |
234 | add ebx,3 |
234 | add ebx,3 |
235 | mcall 4, ,0x80ffffff,select_disk_char |
235 | mcall 4, ,0x80ffffff,select_disk_char |
236 | add ebx,1 shl 16 |
236 | add ebx,1 shl 16 |
237 | mcall |
237 | mcall |
238 | ret |
238 | ret |
239 | ;------------------------------------------------------------------------------ |
239 | ;------------------------------------------------------------------------------ |
240 | draw_right_select_disk_button: |
240 | draw_right_select_disk_button: |
241 | mov bx,[right_panel_x.start_x] |
241 | mov bx,[right_panel_x.start_x] |
242 | mov cx,[right_panel_y.start_y] |
242 | mov cx,[right_panel_y.start_y] |
243 | mov ebp,read_folder_1_name ;read_folder_1.name |
243 | mov ebp,read_folder_1_name ;read_folder_1.name |
244 | mov edx,0x40000000+141 |
244 | mov edx,0x40000000+141 |
245 | jmp draw_left_select_disk_button.1 |
245 | jmp draw_left_select_disk_button.1 |
246 | ;------------------------------------------------------------------------------ |
246 | ;------------------------------------------------------------------------------ |
247 | draw_device_button: |
- | |
248 | mov edi,device_present |
- | |
249 | mov edx,120 |
- | |
250 | mov bx,[left_panel_x.start_x] |
- | |
251 | mov cx,[left_panel_y.start_y] |
- | |
252 | mov eax,[left_panel_x] |
- | |
253 | mov [temp_panel_end],eax |
- | |
254 | mov [temp_counter],0 |
- | |
255 | call .draw |
- | |
256 | mov edx,130 |
- | |
257 | mov bx,[right_panel_x.start_x] |
- | |
258 | mov cx,[right_panel_y.start_y] |
- | |
259 | mov eax,[right_panel_x] |
- | |
260 | mov [temp_panel_end],eax |
- | |
261 | mov [temp_counter],1 |
- | |
262 | ;-------------------------------------- |
- | |
263 | .draw: |
- | |
264 | shl ebx,16 |
- | |
265 | mov bx,25 |
- | |
266 | sub cx,30 |
- | |
267 | shl ecx,16 |
- | |
268 | mov cx,12 |
- | |
269 | mov eax,8 |
- | |
270 | mov esi,0xaa00 |
- | |
271 | cmp [edi],byte 1 |
- | |
272 | jne @f |
- | |
273 | - | ||
274 | mov ebp,read_folder_device_name.rd |
- | |
275 | call .draw_1 |
- | |
276 | ;-------------------------------------- |
- | |
277 | @@: |
- | |
278 | inc edx |
- | |
279 | cmp [edi+1],byte 1 |
- | |
280 | jne @f |
- | |
281 | - | ||
282 | mov ebp,read_folder_device_name.fd |
- | |
283 | call .draw_1 |
- | |
284 | ;-------------------------------------- |
- | |
285 | @@: |
- | |
286 | inc edx |
- | |
287 | cmp [edi+2],byte 1 |
- | |
288 | jne @f |
- | |
289 | - | ||
290 | mov ebp,read_folder_device_name.hd0 |
- | |
291 | call .draw_1 |
- | |
292 | ;-------------------------------------- |
- | |
293 | @@: |
- | |
294 | inc edx |
- | |
295 | cmp [edi+3],byte 1 |
- | |
296 | jne @f |
- | |
297 | - | ||
298 | mov ebp,read_folder_device_name.hd1 |
- | |
299 | call .draw_1 |
- | |
300 | ;-------------------------------------- |
- | |
301 | @@: |
- | |
302 | inc edx |
- | |
303 | cmp [edi+4],byte 1 |
- | |
304 | jne @f |
- | |
305 | - | ||
306 | mov ebp,read_folder_device_name.hd2 |
- | |
307 | call .draw_1 |
- | |
308 | ;-------------------------------------- |
- | |
309 | @@: |
- | |
310 | inc edx |
- | |
311 | cmp [edi+5],byte 1 |
- | |
312 | jne @f |
- | |
313 | - | ||
314 | mov ebp,read_folder_device_name.hd3 |
- | |
315 | call .draw_1 |
- | |
316 | ;-------------------------------------- |
- | |
317 | @@: |
- | |
318 | inc edx |
- | |
319 | cmp [edi+6],byte 1 |
- | |
320 | jne @f |
- | |
321 | - | ||
322 | mov ebp,read_folder_device_name.cd0 |
- | |
323 | call .draw_1 |
- | |
324 | ;-------------------------------------- |
- | |
325 | @@: |
- | |
326 | inc edx |
- | |
327 | cmp [edi+7],byte 1 |
- | |
328 | jne @f |
- | |
329 | - | ||
330 | mov ebp,read_folder_device_name.cd1 |
- | |
331 | call .draw_1 |
- | |
332 | ;-------------------------------------- |
- | |
333 | @@: |
- | |
334 | inc edx |
- | |
335 | cmp [edi+8],byte 1 |
- | |
336 | jne @f |
- | |
337 | - | ||
338 | mov ebp,read_folder_device_name.cd2 |
- | |
339 | call .draw_1 |
- | |
340 | ;-------------------------------------- |
- | |
341 | @@: |
- | |
342 | inc edx |
- | |
343 | cmp [edi+9],byte 1 |
- | |
344 | jne @f |
- | |
345 | - | ||
346 | mov ebp,read_folder_device_name.cd3 |
- | |
347 | call .draw_1 |
- | |
348 | ;-------------------------------------- |
- | |
349 | @@: |
- | |
350 | push ebx |
- | |
351 | mov ebx,[temp_panel_end] |
- | |
352 | mov ax,bx |
- | |
353 | shr ebx,16 |
- | |
354 | add eax,ebx |
- | |
355 | pop ebx |
- | |
356 | ror ebx,16 |
- | |
357 | sub ax,bx |
- | |
358 | rol ebx,16 |
- | |
359 | mov bx,ax |
- | |
360 | add ecx,1 |
- | |
361 | add ebx,1 |
- | |
362 | mcall 13,,,0xcccccc |
- | |
363 | cmp [temp_counter],0 |
- | |
364 | je @f |
- | |
365 | - | ||
366 | mov ax,bx |
- | |
367 | shr ebx,16 |
- | |
368 | add bx,ax |
- | |
369 | mov eax,[window_width] |
- | |
370 | sub eax,4 |
- | |
371 | sub ax,bx |
- | |
372 | cmp eax,0 |
- | |
373 | jbe @f |
- | |
374 | - | ||
375 | shl ebx,16 |
- | |
376 | mov bx,ax |
- | |
377 | mov ax,[right_panel_y.size_y] |
- | |
378 | add ax,[right_panel_y.start_y] |
- | |
379 | shr ecx,16 |
- | |
380 | sub ax,cx |
- | |
381 | shl ecx,16 |
- | |
382 | mov cx,ax |
- | |
383 | mcall 13,,,0xcccccc |
- | |
384 | ret |
- | |
385 | ;-------------------------------------- |
- | |
386 | .draw_1: |
- | |
387 | mcall |
- | |
388 | pusha |
- | |
389 | mov eax,ebx |
- | |
390 | inc eax |
- | |
391 | shl eax,16 |
- | |
392 | add ebx,eax |
- | |
393 | mov bx,1 |
- | |
394 | inc ecx |
- | |
395 | mcall 13,,,0xcccccc |
- | |
396 | popa |
- | |
397 | pusha |
- | |
398 | mov edx,ebp |
- | |
399 | shr ecx,16 |
- | |
400 | mov bx,cx |
- | |
401 | add ebx,2 shl 16 +3 |
- | |
402 | mcall 4,,0x90000000 |
- | |
403 | sub ebx,1 shl 16 + 1 |
- | |
404 | mcall ,,0x90ffffff |
- | |
405 | popa |
- | |
406 | add ebx,27 shl 16 |
- | |
407 | ;-------------------------------------- |
- | |
408 | @@: |
- | |
409 | ret |
- | |
410 | ;------------------------------------------------------------------------------ |
- | |
411 | draw_ATAPI_tray_control: |
247 | ;draw_ATAPI_tray_control: |
412 | ret |
248 | ; ret |
413 | ;------------------------------------------------------------------------------ |
249 | ;------------------------------------------------------------------------------ |
414 | calc_max_panel_line: |
250 | calc_max_panel_line: |
415 | xor eax,eax |
251 | xor eax,eax |
416 | mov ax,[left_panel_y.size_y] |
252 | mov ax,[left_panel_y.size_y] |
417 | mov ebx,10 |
253 | mov ebx,10 |
418 | xor edx,edx |
254 | xor edx,edx |
419 | div ebx |
255 | div ebx |
420 | mov [max_panel_line],eax |
256 | mov [max_panel_line],eax |
421 | ret |
257 | ret |
422 | ;------------------------------------------------------------------------------ |
258 | ;------------------------------------------------------------------------------ |
423 | draw_icon: |
259 | draw_icon: |
424 | pusha |
260 | pusha |
425 | test [edx-40],byte 0x10 |
261 | test [edx-40],byte 0x10 |
426 | jnz .draw_dir_pic |
262 | jnz .draw_dir_pic |
427 | 263 | ||
428 | call get_icon_number |
264 | call get_icon_number |
429 | imul ebx,270 |
265 | imul ebx,270 |
430 | add ebx,mem |
266 | add ebx,mem |
431 | jmp .draw |
267 | jmp .draw |
432 | ;-------------------------------------- |
268 | ;-------------------------------------- |
433 | .draw_dir_pic: |
269 | .draw_dir_pic: |
434 | mov ebx,mem |
270 | mov ebx,mem |
435 | cmp [edx],word '..' |
271 | cmp [edx],word '..' |
436 | jne .draw |
272 | jne .draw |
437 | 273 | ||
438 | add ebx,270 ;*17 |
274 | add ebx,270 ;*17 |
439 | ;-------------------------------------- |
275 | ;-------------------------------------- |
440 | .draw: |
276 | .draw: |
441 | mov edx,[esp+16] ;ebx |
277 | mov edx,[esp+16] ;ebx |
442 | ror edx,16 |
278 | ror edx,16 |
443 | sub edx,12 |
279 | sub edx,12 |
444 | rol edx,16 |
280 | rol edx,16 |
445 | mcall 7, ,<10,9> |
281 | mcall 7, ,<10,9> |
446 | popa |
282 | popa |
447 | ret |
283 | ret |
448 | ;------------------------------------------------------------------------------ |
284 | ;------------------------------------------------------------------------------ |
449 | ; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ |
285 | ; ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ |
450 | ; Âõîä: |
286 | ; Âõîä: |
451 | ; AX - ÷èñëî |
287 | ; AX - ÷èñëî |
452 | ; EBX - àäðåñ ñòðîêè |
288 | ; EBX - àäðåñ ñòðîêè |
453 | ; Âûõîä: |
289 | ; Âûõîä: |
454 | ; ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0 |
290 | ; ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0 |
455 | ;------------------------------------------------------------------------------ |
291 | ;------------------------------------------------------------------------------ |
456 | decimal_string_2: |
292 | decimal_string_2: |
457 | push eax ebx ecx edx |
293 | push eax ebx ecx edx |
458 | xor ecx,ecx |
294 | xor ecx,ecx |
459 | mov [ebx],byte '0' |
295 | mov [ebx],byte '0' |
460 | inc ebx |
296 | inc ebx |
461 | ;-------------------------------------- |
297 | ;-------------------------------------- |
462 | .p3: |
298 | .p3: |
463 | xor edx,edx |
299 | xor edx,edx |
464 | push ebx |
300 | push ebx |
465 | mov ebx,10 |
301 | mov ebx,10 |
466 | div ebx |
302 | div ebx |
467 | pop ebx |
303 | pop ebx |
468 | add edx,48 |
304 | add edx,48 |
469 | push edx |
305 | push edx |
470 | inc ecx |
306 | inc ecx |
471 | cmp ax,0 |
307 | cmp ax,0 |
472 | jne .p3 |
308 | jne .p3 |
473 | 309 | ||
474 | cmp ecx,1 |
310 | cmp ecx,1 |
475 | jbe .p4 |
311 | jbe .p4 |
476 | 312 | ||
477 | mov ecx,2 |
313 | mov ecx,2 |
478 | dec ebx |
314 | dec ebx |
479 | ;-------------------------------------- |
315 | ;-------------------------------------- |
480 | .p4: |
316 | .p4: |
481 | pop edx |
317 | pop edx |
482 | mov [ebx],dl |
318 | mov [ebx],dl |
483 | inc ebx |
319 | inc ebx |
484 | loop .p4 |
320 | loop .p4 |
485 | pop edx ecx ebx eax |
321 | pop edx ecx ebx eax |
486 | ret |
322 | ret |
487 | ;------------------------------------------------------------------------------ |
323 | ;------------------------------------------------------------------------------ |
488 | decimal_string_4: |
324 | decimal_string_4: |
489 | push eax ecx edx |
325 | push eax ecx edx |
490 | xor ecx,ecx |
326 | xor ecx,ecx |
491 | mov [ebx],byte '0' |
327 | mov [ebx],byte '0' |
492 | inc ebx |
328 | inc ebx |
493 | ;-------------------------------------- |
329 | ;-------------------------------------- |
494 | .p3: |
330 | .p3: |
495 | xor edx,edx |
331 | xor edx,edx |
496 | push ebx |
332 | push ebx |
497 | mov ebx,10 |
333 | mov ebx,10 |
498 | div ebx |
334 | div ebx |
499 | pop ebx |
335 | pop ebx |
500 | add edx,48 |
336 | add edx,48 |
501 | push edx |
337 | push edx |
502 | inc ecx |
338 | inc ecx |
503 | cmp eax,0 |
339 | cmp eax,0 |
504 | jne .p3 |
340 | jne .p3 |
505 | 341 | ||
506 | cmp ecx,3 |
342 | cmp ecx,3 |
507 | jbe .p4 |
343 | jbe .p4 |
508 | 344 | ||
509 | mov ecx,4 |
345 | mov ecx,4 |
510 | dec ebx |
346 | dec ebx |
511 | ;-------------------------------------- |
347 | ;-------------------------------------- |
512 | .p4: |
348 | .p4: |
513 | pop edx |
349 | pop edx |
514 | mov [ebx],dl |
350 | mov [ebx],dl |
515 | inc ebx |
351 | inc ebx |
516 | loop .p4 |
352 | loop .p4 |
517 | 353 | ||
518 | pop edx ecx eax |
354 | pop edx ecx eax |
519 | ret |
355 | ret |
520 | ;------------------------------------------------------------------------------ |
356 | ;------------------------------------------------------------------------------ |
521 | draw_type_size_date: |
357 | draw_type_size_date: |
522 | pusha |
358 | pusha |
523 | test [edx-40],byte 0x10 |
359 | test [edx-40],byte 0x10 |
524 | jz .copy_type |
360 | jz .copy_type |
525 | 361 | ||
526 | mov [type_table],dword ' |
362 | mov [type_table],dword ' |
527 | mov [type_table+4],word '> ' |
363 | mov [type_table+4],word '> ' |
528 | mov [file_name_length],0 |
364 | mov [file_name_length],0 |
529 | mov [extension_size],0 |
365 | mov [extension_size],0 |
530 | jmp .start ;.size |
366 | jmp .start ;.size |
531 | ;-------------------------------------- |
367 | ;-------------------------------------- |
532 | .copy_type: |
368 | .copy_type: |
533 | mov [type_table],dword ' ' |
369 | mov [type_table],dword ' ' |
534 | mov [type_table+4],word ' ' |
370 | mov [type_table+4],word ' ' |
535 | ;-------------------------------------- |
371 | ;-------------------------------------- |
536 | .start: |
372 | .start: |
537 | mov esi,edx |
373 | mov esi,edx |
538 | xor eax,eax |
374 | xor eax,eax |
539 | ;-------------------------------------- |
375 | ;-------------------------------------- |
540 | @@: |
376 | @@: |
541 | cld |
377 | cld |
542 | lodsb |
378 | lodsb |
543 | test eax,eax |
379 | test eax,eax |
544 | jnz @b |
380 | jnz @b |
545 | 381 | ||
546 | mov [file_name_length],esi |
382 | mov [file_name_length],esi |
547 | sub [file_name_length],edx |
383 | sub [file_name_length],edx |
548 | mov [temp_counter_1],esi |
384 | mov [temp_counter_1],esi |
549 | test [edx-40],byte 0x10 |
385 | test [edx-40],byte 0x10 |
550 | jnz .size |
386 | jnz .size |
551 | 387 | ||
552 | dec esi |
388 | dec esi |
553 | dec edx |
389 | dec edx |
554 | ;-------------------------------------- |
390 | ;-------------------------------------- |
555 | @@: |
391 | @@: |
556 | std |
392 | std |
557 | lodsb |
393 | lodsb |
558 | cmp esi,edx |
394 | cmp esi,edx |
559 | je .extension_size_0 |
395 | je .extension_size_0 |
560 | 396 | ||
561 | cmp al,'.' |
397 | cmp al,'.' |
562 | jnz @b |
398 | jnz @b |
563 | 399 | ||
564 | add esi,2 |
400 | add esi,2 |
565 | mov [extension_start],esi |
401 | mov [extension_start],esi |
566 | mov ecx,[temp_counter_1] |
402 | mov ecx,[temp_counter_1] |
567 | sub ecx,esi |
403 | sub ecx,esi |
568 | inc ecx |
404 | inc ecx |
569 | mov [extension_size],ecx |
405 | mov [extension_size],ecx |
570 | sub [file_name_length],ecx |
406 | sub [file_name_length],ecx |
571 | cmp ecx,2 |
407 | cmp ecx,2 |
572 | ja @f |
408 | ja @f |
573 | 409 | ||
574 | inc [file_name_length] |
410 | inc [file_name_length] |
575 | ;-------------------------------------- |
411 | ;-------------------------------------- |
576 | @@: |
412 | @@: |
577 | sub ecx,2 |
413 | sub ecx,2 |
578 | cmp ecx,4 |
414 | cmp ecx,4 |
579 | jbe @f |
415 | jbe @f |
580 | 416 | ||
581 | mov ecx,4 |
417 | mov ecx,4 |
582 | mov [type_table+4],word '..' |
418 | mov [type_table+4],word '..' |
583 | ;-------------------------------------- |
419 | ;-------------------------------------- |
584 | @@: |
420 | @@: |
585 | mov edi,type_table ;+1 |
421 | mov edi,type_table ;+1 |
586 | cld |
422 | cld |
587 | rep movsb |
423 | rep movsb |
588 | mov [edi],byte ' ' |
424 | mov [edi],byte ' ' |
589 | inc edx |
425 | inc edx |
590 | jmp .size |
426 | jmp .size |
591 | ;-------------------------------------- |
427 | ;-------------------------------------- |
592 | .extension_size_0: |
428 | .extension_size_0: |
593 | inc edx |
429 | inc edx |
594 | mov [extension_size],0 |
430 | mov [extension_size],0 |
595 | ;-------------------------------------- |
431 | ;-------------------------------------- |
596 | .size: |
432 | .size: |
597 | test [edx-40],byte 0x10 |
433 | test [edx-40],byte 0x10 |
598 | jz .copy_size |
434 | jz .copy_size |
599 | 435 | ||
600 | mov [size_table],dword '----' |
436 | mov [size_table],dword '----' |
601 | mov [size_table+4],word '- ' |
437 | mov [size_table+4],word '- ' |
602 | jmp .date |
438 | jmp .date |
603 | ;-------------------------------------- |
439 | ;-------------------------------------- |
604 | .copy_size: |
440 | .copy_size: |
605 | ;/0x40000000 - Gb |
441 | ;/0x40000000 - Gb |
606 | ;/0x100000 - Mb |
442 | ;/0x100000 - Mb |
607 | ;/0x400 Kb |
443 | ;/0x400 Kb |
608 | mov [size_table],dword ' ' |
444 | mov [size_table],dword ' ' |
609 | mov [size_table+4],word ' ' |
445 | mov [size_table+4],word ' ' |
610 | push ebx |
446 | push ebx |
611 | push edx |
447 | push edx |
612 | mov eax,[edx-40+32] |
448 | mov eax,[edx-40+32] |
613 | mov ebx,0x40000000 |
449 | mov ebx,0x40000000 |
614 | xor edx,edx |
450 | xor edx,edx |
615 | div ebx |
451 | div ebx |
616 | cmp eax,0 |
452 | cmp eax,0 |
617 | je @f |
453 | je @f |
618 | 454 | ||
619 | mov ebx,size_table |
455 | mov ebx,size_table |
620 | call decimal_string_4 |
456 | call decimal_string_4 |
621 | mov [ebx],byte 'G' |
457 | mov [ebx],byte 'G' |
622 | jmp .size_convert_end |
458 | jmp .size_convert_end |
623 | ;-------------------------------------- |
459 | ;-------------------------------------- |
624 | @@: |
460 | @@: |
625 | mov edx,[esp] |
461 | mov edx,[esp] |
626 | mov eax,[edx-40+32] |
462 | mov eax,[edx-40+32] |
627 | mov ebx,0x100000 |
463 | mov ebx,0x100000 |
628 | xor edx,edx |
464 | xor edx,edx |
629 | div ebx |
465 | div ebx |
630 | cmp eax,0 |
466 | cmp eax,0 |
631 | je @f |
467 | je @f |
632 | 468 | ||
633 | mov ebx,size_table |
469 | mov ebx,size_table |
634 | call decimal_string_4 |
470 | call decimal_string_4 |
635 | mov [ebx],byte 'M' |
471 | mov [ebx],byte 'M' |
636 | jmp .size_convert_end |
472 | jmp .size_convert_end |
637 | ;-------------------------------------- |
473 | ;-------------------------------------- |
638 | @@: |
474 | @@: |
639 | mov edx,[esp] |
475 | mov edx,[esp] |
640 | mov eax,[edx-40+32] |
476 | mov eax,[edx-40+32] |
641 | mov ebx,0x400 |
477 | mov ebx,0x400 |
642 | xor edx,edx |
478 | xor edx,edx |
643 | div ebx |
479 | div ebx |
644 | cmp eax,0 |
480 | cmp eax,0 |
645 | je @f |
481 | je @f |
646 | 482 | ||
647 | mov ebx,size_table |
483 | mov ebx,size_table |
648 | call decimal_string_4 |
484 | call decimal_string_4 |
649 | mov [ebx],byte 'K' |
485 | mov [ebx],byte 'K' |
650 | jmp .size_convert_end |
486 | jmp .size_convert_end |
651 | ;-------------------------------------- |
487 | ;-------------------------------------- |
652 | @@: |
488 | @@: |
653 | mov edx,[esp] |
489 | mov edx,[esp] |
654 | mov eax,[edx-40+32] |
490 | mov eax,[edx-40+32] |
655 | ;.size_convert: |
491 | ;.size_convert: |
656 | mov ebx,size_table |
492 | mov ebx,size_table |
657 | call decimal_string_4 |
493 | call decimal_string_4 |
658 | ;-------------------------------------- |
494 | ;-------------------------------------- |
659 | .size_convert_end: |
495 | .size_convert_end: |
660 | cmp [size_table],byte '0' |
496 | cmp [size_table],byte '0' |
661 | jne @f |
497 | jne @f |
662 | 498 | ||
663 | mov [size_table],byte ' ' |
499 | mov [size_table],byte ' ' |
664 | ;-------------------------------------- |
500 | ;-------------------------------------- |
665 | @@: |
501 | @@: |
666 | cmp [size_table+4],byte ' ' |
502 | cmp [size_table+4],byte ' ' |
667 | jne @f |
503 | jne @f |
668 | 504 | ||
669 | mov esi,size_table+3 |
505 | mov esi,size_table+3 |
670 | mov edi,esi |
506 | mov edi,esi |
671 | inc edi |
507 | inc edi |
672 | mov ecx,5 |
508 | mov ecx,5 |
673 | std |
509 | std |
674 | rep movsb |
510 | rep movsb |
675 | jmp @r |
511 | jmp @r |
676 | ;-------------------------------------- |
512 | ;-------------------------------------- |
677 | @@: |
513 | @@: |
678 | pop edx |
514 | pop edx |
679 | pop ebx |
515 | pop ebx |
680 | ;-------------------------------------- |
516 | ;-------------------------------------- |
681 | .date: |
517 | .date: |
682 | xor eax,eax |
518 | xor eax,eax |
683 | mov al,[edx-40+28] |
519 | mov al,[edx-40+28] |
684 | push ebx |
520 | push ebx |
685 | mov ebx,date_table |
521 | mov ebx,date_table |
686 | call decimal_string_2 |
522 | call decimal_string_2 |
687 | mov al,[edx-40+29] |
523 | mov al,[edx-40+29] |
688 | mov ebx,date_table+3 |
524 | mov ebx,date_table+3 |
689 | call decimal_string_2 |
525 | call decimal_string_2 |
690 | mov ax,[edx-40+30] |
526 | mov ax,[edx-40+30] |
691 | mov ebx,year_table |
527 | mov ebx,year_table |
692 | call decimal_string_4 |
528 | call decimal_string_4 |
693 | mov ax,[year_table+2] |
529 | mov ax,[year_table+2] |
694 | mov [date_table+6],ax |
530 | mov [date_table+6],ax |
695 | pop ebx |
531 | pop ebx |
696 | ror ebx,16 |
532 | ror ebx,16 |
697 | add bx,[left_panel_x.size_x] |
533 | add bx,[left_panel_x.size_x] |
698 | sub ebx,122+12+15 |
534 | sub ebx,122+12+15 |
699 | rol ebx,16 |
535 | rol ebx,16 |
700 | mov ecx,0 |
536 | mov ecx,0 |
701 | cmp [marked_file],byte 0 |
537 | cmp [marked_file],byte 0 |
702 | je @f |
538 | je @f |
703 | 539 | ||
704 | mov ecx,0xff0000 |
540 | mov ecx,0xff0000 |
705 | ;-------------------------------------- |
541 | ;-------------------------------------- |
706 | @@: |
542 | @@: |
707 | mcall 4,,,type_table,20 |
543 | mcall 4,,,type_table,20 |
708 | popa |
544 | popa |
709 | ret |
545 | ret |
710 | ;------------------------------------------------------------------------------ |
546 | ;------------------------------------------------------------------------------ |
711 | draw_folder_data: |
547 | draw_folder_data: |
712 | cmp [drawing_panel_folder],1 |
548 | cmp [drawing_panel_folder],1 |
713 | jne .right_panel |
549 | jne .right_panel |
714 | 550 | ||
715 | mov eax,[left_folder_block] |
551 | mov eax,[left_folder_block] |
716 | sub eax,[max_panel_line] |
552 | sub eax,[max_panel_line] |
717 | test eax,0x8000000 |
553 | test eax,0x8000000 |
718 | jz .ok_left |
554 | jz .ok_left |
719 | 555 | ||
720 | mov [left_start_draw_line],0 |
556 | mov [left_start_draw_line],0 |
721 | jmp @f |
557 | jmp @f |
722 | ;-------------------------------------- |
558 | ;-------------------------------------- |
723 | .ok_left: |
559 | .ok_left: |
724 | cmp eax,[left_start_draw_line] |
560 | cmp eax,[left_start_draw_line] |
725 | jae @f |
561 | jae @f |
726 | 562 | ||
727 | mov [left_start_draw_line],eax |
563 | mov [left_start_draw_line],eax |
728 | ;-------------------------------------- |
564 | ;-------------------------------------- |
729 | @@: |
565 | @@: |
730 | mov bx,[left_panel_x.start_x] |
566 | mov bx,[left_panel_x.start_x] |
731 | add bx,12 |
567 | add bx,12 |
732 | shl ebx,16 |
568 | shl ebx,16 |
733 | mov bx,[left_panel_y.start_y] |
569 | mov bx,[left_panel_y.start_y] |
734 | inc bx |
570 | inc bx |
735 | mov edx,[left_start_draw_line] |
571 | mov edx,[left_start_draw_line] |
736 | imul edx,304 |
572 | imul edx,304 |
737 | add edx,[left_folder_data] |
573 | add edx,[left_folder_data] |
738 | add edx,32+40 |
574 | add edx,32+40 |
739 | mov [temp_counter],0 |
575 | mov [temp_counter],0 |
740 | jmp .type_folder |
576 | jmp .type_folder |
741 | ;-------------------------------------- |
577 | ;-------------------------------------- |
742 | .right_panel: |
578 | .right_panel: |
743 | mov eax,[right_folder_block] |
579 | mov eax,[right_folder_block] |
744 | sub eax,[max_panel_line] |
580 | sub eax,[max_panel_line] |
745 | test eax,0x8000000 |
581 | test eax,0x8000000 |
746 | jz .ok_right |
582 | jz .ok_right |
747 | 583 | ||
748 | mov [right_start_draw_line],0 |
584 | mov [right_start_draw_line],0 |
749 | jmp @f |
585 | jmp @f |
750 | ;-------------------------------------- |
586 | ;-------------------------------------- |
751 | .ok_right: |
587 | .ok_right: |
752 | cmp eax,[right_start_draw_line] |
588 | cmp eax,[right_start_draw_line] |
753 | jae @f |
589 | jae @f |
754 | 590 | ||
755 | mov [right_start_draw_line],eax |
591 | mov [right_start_draw_line],eax |
756 | ;-------------------------------------- |
592 | ;-------------------------------------- |
757 | @@: |
593 | @@: |
758 | mov bx,[right_panel_x.start_x] |
594 | mov bx,[right_panel_x.start_x] |
759 | add bx,12 |
595 | add bx,12 |
760 | shl ebx,16 |
596 | shl ebx,16 |
761 | mov bx,[right_panel_y.start_y] |
597 | mov bx,[right_panel_y.start_y] |
762 | inc bx |
598 | inc bx |
763 | mov edx,[right_start_draw_line] |
599 | mov edx,[right_start_draw_line] |
764 | imul edx,304 |
600 | imul edx,304 |
765 | add edx,[right_folder_data] |
601 | add edx,[right_folder_data] |
766 | add edx,32+40 |
602 | add edx,32+40 |
767 | mov [temp_counter],1 |
603 | mov [temp_counter],1 |
768 | ;-------------------------------------- |
604 | ;-------------------------------------- |
769 | .type_folder: |
605 | .type_folder: |
770 | xor eax,eax |
606 | xor eax,eax |
771 | ;-------------------------------------- |
607 | ;-------------------------------------- |
772 | .start: |
608 | .start: |
773 | pusha |
609 | pusha |
774 | mov eax,edx |
610 | mov eax,edx |
775 | cmp [temp_counter],1 |
611 | cmp [temp_counter],1 |
776 | je @f |
612 | je @f |
777 | 613 | ||
778 | sub eax,[left_folder_data] |
614 | sub eax,[left_folder_data] |
779 | sub eax,32+40 |
615 | sub eax,32+40 |
780 | xor edx,edx |
616 | xor edx,edx |
781 | mov ebx,304 |
617 | mov ebx,304 |
782 | div ebx |
618 | div ebx |
783 | cmp eax,[left_folder_block] |
619 | cmp eax,[left_folder_block] |
784 | je .end_1 |
620 | je .end_1 |
785 | 621 | ||
786 | jmp .continue_1 |
622 | jmp .continue_1 |
787 | ;-------------------------------------- |
623 | ;-------------------------------------- |
788 | @@: |
624 | @@: |
789 | sub eax,[right_folder_data] |
625 | sub eax,[right_folder_data] |
790 | sub eax,32+40 |
626 | sub eax,32+40 |
791 | xor edx,edx |
627 | xor edx,edx |
792 | mov ebx,304 |
628 | mov ebx,304 |
793 | div ebx |
629 | div ebx |
794 | cmp eax,[right_folder_block] |
630 | cmp eax,[right_folder_block] |
795 | je .end_1 |
631 | je .end_1 |
796 | ;-------------------------------------- |
632 | ;-------------------------------------- |
797 | .continue_1: |
633 | .continue_1: |
798 | popa |
634 | popa |
799 | cmp eax,[max_panel_line] ; 20 |
635 | cmp eax,[max_panel_line] ; 20 |
800 | je .end_2 |
636 | je .end_2 |
801 | 637 | ||
802 | mov [marked_file],0 |
638 | mov [marked_file],0 |
803 | cmp [edx+299-40],byte 0 |
639 | cmp [edx+299-40],byte 0 |
804 | je @f |
640 | je @f |
805 | 641 | ||
806 | mov [marked_file],1 |
642 | mov [marked_file],1 |
807 | ;-------------------------------------- |
643 | ;-------------------------------------- |
808 | @@: |
644 | @@: |
809 | call clear_line |
645 | call clear_line |
810 | call draw_type_size_date |
646 | call draw_type_size_date |
811 | call draw_icon |
647 | call draw_icon |
812 | push eax |
648 | push eax |
813 | xor eax,eax |
649 | xor eax,eax |
814 | mov ax,[left_panel_x.size_x] |
650 | mov ax,[left_panel_x.size_x] |
815 | push ebx edx |
651 | push ebx edx |
816 | mov ebx,6 |
652 | mov ebx,6 |
817 | xor edx,edx |
653 | xor edx,edx |
818 | div ebx |
654 | div ebx |
819 | pop edx ebx |
655 | pop edx ebx |
820 | sub eax,23+2+2 |
656 | sub eax,23+2+2 |
821 | mov esi,[file_name_length] |
657 | mov esi,[file_name_length] |
822 | mov [temp_counter_1],0 |
658 | mov [temp_counter_1],0 |
823 | cmp esi,eax |
659 | cmp esi,eax |
824 | jbe @f |
660 | jbe @f |
825 | 661 | ||
826 | mov esi,eax |
662 | mov esi,eax |
827 | mov [temp_counter_1],1 |
663 | mov [temp_counter_1],1 |
828 | ;-------------------------------------- |
664 | ;-------------------------------------- |
829 | @@: |
665 | @@: |
830 | mov ecx,0 |
666 | mov ecx,0 |
831 | cmp [marked_file],byte 0 |
667 | cmp [marked_file],byte 0 |
832 | je @f |
668 | je @f |
833 | 669 | ||
834 | mov ecx,0xff0000 |
670 | mov ecx,0xff0000 |
835 | ;-------------------------------------- |
671 | ;-------------------------------------- |
836 | @@: |
672 | @@: |
837 | mcall 4 |
673 | mcall 4 |
838 | cmp [temp_counter_1],0 |
674 | cmp [temp_counter_1],0 |
839 | je .continue |
675 | je .continue |
840 | 676 | ||
841 | mov eax,esi ;[file_name_length] |
677 | mov eax,esi ;[file_name_length] |
842 | imul eax,6 |
678 | imul eax,6 |
843 | shl eax,16 |
679 | shl eax,16 |
844 | push ebx edx |
680 | push ebx edx |
845 | add ebx,eax |
681 | add ebx,eax |
846 | mcall 4,,0xff0000,truncated_filename_char,2 |
682 | mcall 4,,0xff0000,truncated_filename_char,2 |
847 | add ebx,1 shl 16 |
683 | add ebx,1 shl 16 |
848 | mcall |
684 | mcall |
849 | pop edx ebx |
685 | pop edx ebx |
850 | ;-------------------------------------- |
686 | ;-------------------------------------- |
851 | .continue: |
687 | .continue: |
852 | add ebx,10 |
688 | add ebx,10 |
853 | add edx,304 ;10 |
689 | add edx,304 ;10 |
854 | pop eax |
690 | pop eax |
855 | inc eax |
691 | inc eax |
856 | jmp .start |
692 | jmp .start |
857 | ;-------------------------------------- |
693 | ;-------------------------------------- |
858 | .end_1: |
694 | .end_1: |
859 | popa |
695 | popa |
860 | ;-------------------------------------- |
696 | ;-------------------------------------- |
861 | .end_2: |
697 | .end_2: |
862 | mov ax,[left_panel_y.start_y] |
698 | mov ax,[left_panel_y.start_y] |
863 | add ax,[left_panel_y.size_y] |
699 | add ax,[left_panel_y.size_y] |
864 | mov cx,bx |
700 | mov cx,bx |
865 | dec cx |
701 | dec cx |
866 | rol ecx,16 |
702 | rol ecx,16 |
867 | mov cx,ax |
703 | mov cx,ax |
868 | mov eax,ecx |
704 | mov eax,ecx |
869 | shr eax,16 |
705 | shr eax,16 |
870 | sub cx,ax |
706 | sub cx,ax |
871 | cmp cx,0 |
707 | cmp cx,0 |
872 | jbe @f |
708 | jbe @f |
873 | 709 | ||
874 | mov bx,[left_panel_x.size_x] |
710 | mov bx,[left_panel_x.size_x] |
875 | sub ebx,12 shl 16 |
711 | sub ebx,12 shl 16 |
876 | mcall 13,,,0xffffff |
712 | mcall 13,,,0xffffff |
877 | ;-------------------------------------- |
713 | ;-------------------------------------- |
878 | @@: |
714 | @@: |
879 | .end: |
715 | .end: |
880 | cmp [drawing_panel_folder],1 |
716 | cmp [drawing_panel_folder],1 |
881 | jne @f |
717 | jne @f |
882 | 718 | ||
883 | call draw_scroll_bar_left |
719 | call draw_scroll_bar_left |
884 | ret |
720 | ret |
885 | ;-------------------------------------- |
721 | ;-------------------------------------- |
886 | @@: |
722 | @@: |
887 | call draw_scroll_bar_right |
723 | call draw_scroll_bar_right |
888 | ret |
724 | ret |
889 | ;------------------------------------------------------------------------------ |
725 | ;------------------------------------------------------------------------------ |
890 | clear_line: |
726 | clear_line: |
891 | cmp [not_clear_lines],0 |
727 | cmp [not_clear_lines],0 |
892 | jne .end_1 |
728 | jne .end_1 |
893 | 729 | ||
894 | pusha |
730 | pusha |
895 | shl ebx,16 |
731 | shl ebx,16 |
896 | shr ebx,16 |
732 | shr ebx,16 |
897 | dec ebx |
733 | dec ebx |
898 | cmp [drawing_panel_folder],1 |
734 | cmp [drawing_panel_folder],1 |
899 | jne .right |
735 | jne .right |
900 | 736 | ||
901 | cmp [select_panel_counter],0 |
737 | cmp [select_panel_counter],0 |
902 | jne .continue |
738 | jne .continue |
903 | 739 | ||
904 | mov ax,[left_start_draw_cursor_line] |
740 | mov ax,[left_start_draw_cursor_line] |
905 | add ax,[left_panel_y.start_y] |
741 | add ax,[left_panel_y.start_y] |
906 | cmp bx,ax |
742 | cmp bx,ax |
907 | je .end |
743 | je .end |
908 | 744 | ||
909 | jmp .continue |
745 | jmp .continue |
910 | ;-------------------------------------- |
746 | ;-------------------------------------- |
911 | .right: |
747 | .right: |
912 | cmp [select_panel_counter],0 |
748 | cmp [select_panel_counter],0 |
913 | je .continue |
749 | je .continue |
914 | 750 | ||
915 | mov ax,[right_start_draw_cursor_line] |
751 | mov ax,[right_start_draw_cursor_line] |
916 | add ax,[right_panel_y.start_y] |
752 | add ax,[right_panel_y.start_y] |
917 | cmp bx,ax |
753 | cmp bx,ax |
918 | je .end |
754 | je .end |
919 | ;-------------------------------------- |
755 | ;-------------------------------------- |
920 | .continue: |
756 | .continue: |
921 | mov ebx,[esp+16] |
757 | mov ebx,[esp+16] |
922 | mov cx,bx |
758 | mov cx,bx |
923 | dec cx |
759 | dec cx |
924 | rol ecx,16 |
760 | rol ecx,16 |
925 | mov cx,10 |
761 | mov cx,10 |
926 | mov bx,[left_panel_x.size_x] |
762 | mov bx,[left_panel_x.size_x] |
927 | cmp [drawing_panel_folder],1 |
763 | cmp [drawing_panel_folder],1 |
928 | je @f |
764 | je @f |
929 | 765 | ||
930 | dec ebx |
766 | dec ebx |
931 | ;-------------------------------------- |
767 | ;-------------------------------------- |
932 | @@: |
768 | @@: |
933 | sub ebx,12 shl 16+15 |
769 | sub ebx,12 shl 16+15 |
934 | mcall 13,,,0xffffff |
770 | mcall 13,,,0xffffff |
935 | ;-------------------------------------- |
771 | ;-------------------------------------- |
936 | .end: |
772 | .end: |
937 | popa |
773 | popa |
938 | ;-------------------------------------- |
774 | ;-------------------------------------- |
939 | .end_1: |
775 | .end_1: |
940 | ret |
776 | ret |
941 | ;------------------------------------------------------------------------------ |
777 | ;------------------------------------------------------------------------------ |
942 | draw_left_panel: |
778 | draw_left_panel: |
943 | call clear_left_panel |
779 | call clear_left_panel |
944 | call calc_max_panel_line |
780 | call calc_max_panel_line |
945 | call draw_left_panel_selection |
781 | call draw_left_panel_selection |
946 | mov [drawing_panel_folder],1 |
782 | mov [drawing_panel_folder],1 |
947 | call draw_folder_data |
783 | call draw_folder_data |
948 | call draw_left_panel_patch |
784 | call draw_left_panel_patch |
949 | ret |
785 | ret |
950 | ;------------------------------------------------------------------------------ |
786 | ;------------------------------------------------------------------------------ |
951 | draw_right_panel: |
787 | draw_right_panel: |
952 | call clear_right_panel |
788 | call clear_right_panel |
953 | call calc_max_panel_line |
789 | call calc_max_panel_line |
954 | call draw_right_panel_selection |
790 | call draw_right_panel_selection |
955 | mov [drawing_panel_folder],2 |
791 | mov [drawing_panel_folder],2 |
956 | call draw_folder_data |
792 | call draw_folder_data |
957 | call draw_right_panel_patch |
793 | call draw_right_panel_patch |
958 | ret |
794 | ret |
959 | ;------------------------------------------------------------------------------ |
795 | ;------------------------------------------------------------------------------ |
960 | draw_left_panel_patch: |
796 | draw_left_panel_patch: |
961 | cmp [select_panel_counter],0 |
797 | cmp [select_panel_counter],0 |
962 | jne .end |
798 | jne .end |
963 | 799 | ||
964 | mov edx,read_folder_name ;read_folder.name |
800 | mov edx,read_folder_name ;read_folder.name |
965 | ;-------------------------------------- |
801 | ;-------------------------------------- |
966 | .1: |
802 | .1: |
967 | call clear_patch_area |
803 | call clear_patch_area |
968 | mov ebx,[window_high] |
804 | mov ebx,[window_high] |
969 | sub ebx,33 |
805 | sub ebx,33 |
970 | add ebx,8 shl 16 |
806 | add ebx,8 shl 16 |
971 | mcall 4,,0x80000000 ; ,read_folder.name |
807 | mcall 4,,0x80000000 ; ,read_folder.name |
972 | ;-------------------------------------- |
808 | ;-------------------------------------- |
973 | .end: |
809 | .end: |
974 | ret |
810 | ret |
975 | ;------------------------------------------------------------------------------ |
811 | ;------------------------------------------------------------------------------ |
976 | draw_right_panel_patch: |
812 | draw_right_panel_patch: |
977 | cmp [select_panel_counter],1 |
813 | cmp [select_panel_counter],1 |
978 | jne draw_left_panel_patch.end |
814 | jne draw_left_panel_patch.end |
979 | 815 | ||
980 | mov edx,read_folder_1_name ;read_folder_1.name |
816 | mov edx,read_folder_1_name ;read_folder_1.name |
981 | jmp draw_left_panel_patch.1 |
817 | jmp draw_left_panel_patch.1 |
982 | ;------------------------------------------------------------------------------ |
818 | ;------------------------------------------------------------------------------ |
983 | clear_patch_area: |
819 | clear_patch_area: |
984 | push edx |
820 | push edx |
985 | mov ebx,[window_width] |
821 | mov ebx,[window_width] |
986 | sub ebx,9 |
822 | sub ebx,9 |
987 | add ebx,5 shl 16 |
823 | add ebx,5 shl 16 |
988 | mov ecx,[window_high] |
824 | mov ecx,[window_high] |
989 | sub ecx,35 |
825 | sub ecx,35 |
990 | shl ecx,16 |
826 | shl ecx,16 |
991 | mov cx,12 |
827 | mov cx,12 |
992 | mcall 13,,,0xffffcc |
828 | mcall 13,,,0xffffcc |
993 | pop edx |
829 | pop edx |
994 | ret |
830 | ret |
995 | ;------------------------------------------------------------------------------ |
831 | ;------------------------------------------------------------------------------ |
996 | draw_left_panel_selection: |
832 | draw_left_panel_selection: |
997 | cmp [select_panel_counter],0 |
833 | cmp [select_panel_counter],0 |
998 | jne .end |
834 | jne .end |
999 | 835 | ||
1000 | mov eax,[left_folder_block] |
836 | mov eax,[left_folder_block] |
1001 | sub eax,[left_start_draw_line] |
837 | sub eax,[left_start_draw_line] |
1002 | mov edx,left_start_draw_cursor_line |
838 | mov edx,left_start_draw_cursor_line |
1003 | mov cx,[edx] |
839 | mov cx,[edx] |
1004 | call for_all_panel_selection |
840 | call for_all_panel_selection |
1005 | mov eax,[left_folder_block] |
841 | mov eax,[left_folder_block] |
1006 | dec eax |
842 | dec eax |
1007 | imul eax,10 |
843 | imul eax,10 |
1008 | cmp ax,cx |
844 | cmp ax,cx |
1009 | jae @f |
845 | jae @f |
1010 | 846 | ||
1011 | mov cx,ax |
847 | mov cx,ax |
1012 | ;-------------------------------------- |
848 | ;-------------------------------------- |
1013 | @@: |
849 | @@: |
1014 | mov [edx],cx |
850 | mov [edx],cx |
1015 | mov ebx,[left_panel_x] |
851 | mov ebx,[left_panel_x] |
1016 | add cx,[left_panel_y.start_y] |
852 | add cx,[left_panel_y.start_y] |
1017 | ;-------------------------------------- |
853 | ;-------------------------------------- |
1018 | .1: |
854 | .1: |
1019 | shl ecx,16 |
855 | shl ecx,16 |
1020 | mov cx,10 |
856 | mov cx,10 |
1021 | sub ebx,15 |
857 | sub ebx,15 |
1022 | mcall 13,,,0xbbddff |
858 | mcall 13,,,0xbbddff |
1023 | ;-------------------------------------- |
859 | ;-------------------------------------- |
1024 | .end: |
860 | .end: |
1025 | ret |
861 | ret |
1026 | ;------------------------------------------------------------------------------ |
862 | ;------------------------------------------------------------------------------ |
1027 | draw_right_panel_selection: |
863 | draw_right_panel_selection: |
1028 | cmp [select_panel_counter],1 |
864 | cmp [select_panel_counter],1 |
1029 | jne draw_left_panel_selection.end |
865 | jne draw_left_panel_selection.end |
1030 | 866 | ||
1031 | mov eax,[right_folder_block] |
867 | mov eax,[right_folder_block] |
1032 | sub eax,[right_start_draw_line] |
868 | sub eax,[right_start_draw_line] |
1033 | mov edx,right_start_draw_cursor_line |
869 | mov edx,right_start_draw_cursor_line |
1034 | mov cx,[edx] |
870 | mov cx,[edx] |
1035 | call for_all_panel_selection |
871 | call for_all_panel_selection |
1036 | mov eax,[right_folder_block] |
872 | mov eax,[right_folder_block] |
1037 | dec eax |
873 | dec eax |
1038 | imul eax,10 |
874 | imul eax,10 |
1039 | cmp ax,cx |
875 | cmp ax,cx |
1040 | jae @f |
876 | jae @f |
1041 | 877 | ||
1042 | mov cx,ax |
878 | mov cx,ax |
1043 | ;-------------------------------------- |
879 | ;-------------------------------------- |
1044 | @@: |
880 | @@: |
1045 | mov [edx],cx |
881 | mov [edx],cx |
1046 | mov ebx,[right_panel_x] |
882 | mov ebx,[right_panel_x] |
1047 | add cx,[right_panel_y.start_y] |
883 | add cx,[right_panel_y.start_y] |
1048 | jmp draw_left_panel_selection.1 |
884 | jmp draw_left_panel_selection.1 |
1049 | ;------------------------------------------------------------------------------ |
885 | ;------------------------------------------------------------------------------ |
1050 | for_all_panel_selection: |
886 | for_all_panel_selection: |
1051 | imul eax,10 |
887 | imul eax,10 |
1052 | cmp ax,cx |
888 | cmp ax,cx |
1053 | jae @f |
889 | jae @f |
1054 | 890 | ||
1055 | mov cx,ax |
891 | mov cx,ax |
1056 | ;-------------------------------------- |
892 | ;-------------------------------------- |
1057 | @@: |
893 | @@: |
1058 | mov eax,[max_panel_line] |
894 | mov eax,[max_panel_line] |
1059 | dec eax |
895 | dec eax |
1060 | imul eax,10 |
896 | imul eax,10 |
1061 | cmp ax,cx |
897 | cmp ax,cx |
1062 | jae @f |
898 | jae @f |
1063 | 899 | ||
1064 | mov cx,ax |
900 | mov cx,ax |
1065 | ;-------------------------------------- |
901 | ;-------------------------------------- |
1066 | @@: |
902 | @@: |
1067 | ret |
903 | ret |
1068 | ;------------------------------------------------------------------------------ |
904 | ;------------------------------------------------------------------------------ |
1069 | clear_left_panel: |
905 | clear_left_panel: |
1070 | mov ebx,7 shl 16 |
906 | mov ebx,7 shl 16 |
1071 | add ebx,[window_width] |
907 | add ebx,[window_width] |
1072 | shr bx,1 |
908 | shr bx,1 |
1073 | sub ebx,6+1 |
909 | sub ebx,6+1 |
1074 | mov [left_panel_x],ebx |
910 | mov [left_panel_x],ebx |
1075 | call calculate_panel_1 |
911 | call calculate_panel_1 |
1076 | mov [left_panel_y],ecx |
912 | mov [left_panel_y],ecx |
1077 | xor eax,eax |
913 | xor eax,eax |
1078 | mov ax,cx |
914 | mov ax,cx |
1079 | xor edx,edx |
915 | xor edx,edx |
1080 | mov ebx,10 |
916 | mov ebx,10 |
1081 | div ebx |
917 | div ebx |
1082 | ; óìíîæåíèå íà 10 |
918 | ; óìíîæåíèå íà 10 |
1083 | shl eax,1 ; óìíîæåíèå íà 2 |
919 | shl eax,1 ; óìíîæåíèå íà 2 |
1084 | lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
920 | lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
1085 | mov [left_panel_y_correct_size_y],ax |
921 | mov [left_panel_y_correct_size_y],ax |
1086 | ret |
922 | ret |
1087 | ;------------------------------------------------------------------------------ |
923 | ;------------------------------------------------------------------------------ |
1088 | calculate_panel_1: |
924 | calculate_panel_1: |
1089 | mov ecx,[skin_high] |
925 | mov ecx,[skin_high] |
1090 | add ecx,70 |
926 | add ecx,70 |
1091 | shl ecx,16 |
927 | shl ecx,16 |
1092 | add ecx,[window_high] |
928 | add ecx,[window_high] |
1093 | sub ecx,129 |
929 | sub ecx,129 |
1094 | ret |
930 | ret |
1095 | ;------------------------------------------------------------------------------ |
931 | ;------------------------------------------------------------------------------ |
1096 | clear_right_panel: |
932 | clear_right_panel: |
1097 | mov ebx,[window_width] |
933 | mov ebx,[window_width] |
1098 | shr ebx,1 |
934 | shr ebx,1 |
1099 | add ebx,3 |
935 | add ebx,3 |
1100 | shl ebx,16 |
936 | shl ebx,16 |
1101 | add ebx,[window_width] |
937 | add ebx,[window_width] |
1102 | shr bx,1 |
938 | shr bx,1 |
1103 | sub bx,2+6 |
939 | sub bx,2+6 |
1104 | mov [right_panel_x],ebx |
940 | mov [right_panel_x],ebx |
1105 | call calculate_panel_1 |
941 | call calculate_panel_1 |
1106 | mov [right_panel_y],ecx |
942 | mov [right_panel_y],ecx |
1107 | xor eax,eax |
943 | xor eax,eax |
1108 | mov ax,cx |
944 | mov ax,cx |
1109 | xor edx,edx |
945 | xor edx,edx |
1110 | mov ebx,10 |
946 | mov ebx,10 |
1111 | div ebx |
947 | div ebx |
1112 | ; óìíîæåíèå íà 10 |
948 | ; óìíîæåíèå íà 10 |
1113 | shl eax,1 ; óìíîæåíèå íà 2 |
949 | shl eax,1 ; óìíîæåíèå íà 2 |
1114 | lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
950 | lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 |
1115 | mov [right_panel_y_correct_size_y],ax |
951 | mov [right_panel_y_correct_size_y],ax |
1116 | ret |
952 | ret |
1117 | ;------------------------------------------------------------------------------ |
953 | ;------------------------------------------------------------------------------ |
1118 | erase_fbutton: |
954 | erase_fbutton: |
1119 | mov edx,0x80000065 |
955 | mov edx,0x80000065 |
1120 | mov eax,8 |
956 | mov eax,8 |
1121 | mov ebp,12 |
957 | mov ebp,12 |
1122 | ;-------------------------------------- |
958 | ;-------------------------------------- |
1123 | .start: |
959 | .start: |
1124 | mcall |
960 | mcall |
1125 | dec ebp |
961 | dec ebp |
1126 | jnz .start |
962 | jnz .start |
1127 | 963 | ||
1128 | ret |
964 | ret |
1129 | ;------------------------------------------------------------------------------ |
965 | ;------------------------------------------------------------------------------ |
1130 | draw_fbutton: |
966 | draw_fbutton: |
1131 | test [window_status],100b ; window is rolled up |
967 | test [window_status],100b ; window is rolled up |
1132 | jnz .exit |
968 | jnz .exit |
1133 | 969 | ||
1134 | test [window_status],10b ; window is minimized to panel |
970 | test [window_status],10b ; window is minimized to panel |
1135 | jnz .exit |
971 | jnz .exit |
1136 | 972 | ||
1137 | mov ecx,[window_high] |
973 | mov ecx,[window_high] |
1138 | sub ecx,20 |
974 | sub ecx,20 |
1139 | shl ecx,16 |
975 | shl ecx,16 |
1140 | add ecx,15 |
976 | add ecx,15 |
1141 | mov eax,[window_width] |
977 | mov eax,[window_width] |
1142 | mov ebx,12 |
978 | mov ebx,12 |
1143 | xor edx,edx |
979 | xor edx,edx |
1144 | div ebx |
980 | div ebx |
1145 | mov [fbutton_width],eax |
981 | mov [fbutton_width],eax |
1146 | mov ebx,5 shl 16 |
982 | mov ebx,5 shl 16 |
1147 | add ebx,eax |
983 | add ebx,eax |
1148 | sub ebx,2 |
984 | sub ebx,2 |
1149 | mov esi,0xaa00 |
985 | mov esi,0xaa00 |
1150 | mov edx,101 |
986 | mov edx,101 |
1151 | mov eax,8 |
987 | mov eax,8 |
1152 | mov ebp,12 |
988 | mov ebp,12 |
1153 | ;-------------------------------------- |
989 | ;-------------------------------------- |
1154 | .start: |
990 | .start: |
1155 | cmp ebp,1 |
991 | cmp ebp,1 |
1156 | jne @f |
992 | jne @f |
1157 | 993 | ||
1158 | mov eax,ebx |
994 | mov eax,ebx |
1159 | shr eax,16 |
995 | shr eax,16 |
1160 | mov bx,ax |
996 | mov bx,ax |
1161 | mov eax,[window_width] |
997 | mov eax,[window_width] |
1162 | sub ax,bx |
998 | sub ax,bx |
1163 | sub ax,5 |
999 | sub ax,5 |
1164 | mov bx,ax |
1000 | mov bx,ax |
1165 | mov eax,8 |
1001 | mov eax,8 |
1166 | ;-------------------------------------- |
1002 | ;-------------------------------------- |
1167 | @@: |
1003 | @@: |
1168 | mcall |
1004 | mcall |
1169 | push eax ebx edx |
1005 | push eax ebx edx |
1170 | mov edx,0x6060ff |
1006 | mov edx,0x6060ff |
1171 | mov bx,10 |
1007 | mov bx,10 |
1172 | cmp ebp,4 |
1008 | cmp ebp,4 |
1173 | jae @f |
1009 | jae @f |
1174 | 1010 | ||
1175 | mov bx,18 |
1011 | mov bx,18 |
1176 | ;-------------------------------------- |
1012 | ;-------------------------------------- |
1177 | @@: |
1013 | @@: |
1178 | mcall 13 |
1014 | mcall 13 |
1179 | cmp ebp,1 |
1015 | cmp ebp,1 |
1180 | je @f |
1016 | je @f |
1181 | 1017 | ||
1182 | ror ebx,16 |
1018 | ror ebx,16 |
1183 | add ebx,[fbutton_width] |
1019 | add ebx,[fbutton_width] |
1184 | dec ebx |
1020 | dec ebx |
1185 | rol ebx,16 |
1021 | rol ebx,16 |
1186 | mov bx,1 |
1022 | mov bx,1 |
1187 | inc ecx |
1023 | inc ecx |
1188 | mcall ,,,0xcccccc |
1024 | mcall ,,,0xcccccc |
1189 | dec ecx |
1025 | dec ecx |
1190 | ;-------------------------------------- |
1026 | ;-------------------------------------- |
1191 | @@: |
1027 | @@: |
1192 | pop edx ebx eax |
1028 | pop edx ebx eax |
1193 | call .rol_ror |
1029 | call .rol_ror |
1194 | inc edx |
1030 | inc edx |
1195 | dec ebp |
1031 | dec ebp |
1196 | jnz .start |
1032 | jnz .start |
1197 | 1033 | ||
1198 | call draw_fbutton_name |
1034 | call draw_fbutton_name |
1199 | ret |
1035 | ret |
1200 | ;-------------------------------------- |
1036 | ;-------------------------------------- |
1201 | .rol_ror: |
1037 | .rol_ror: |
1202 | rol ebx,16 |
1038 | rol ebx,16 |
1203 | add ebx,[fbutton_width] |
1039 | add ebx,[fbutton_width] |
1204 | ror ebx,16 |
1040 | ror ebx,16 |
1205 | ;-------------------------------------- |
1041 | ;-------------------------------------- |
1206 | .exit: |
1042 | .exit: |
1207 | ret |
1043 | ret |
1208 | ;------------------------------------------------------------------------------ |
1044 | ;------------------------------------------------------------------------------ |
1209 | draw_fbutton_name: |
1045 | draw_fbutton_name: |
1210 | mov ebx, 7 shl 16 |
1046 | mov ebx, 7 shl 16 |
1211 | add ebx,[window_high] |
1047 | add ebx,[window_high] |
1212 | sub ebx,15 |
1048 | sub ebx,15 |
1213 | mov eax,4 |
1049 | mov eax,4 |
1214 | mov ecx,0x90000000 |
1050 | mov ecx,0x90000000 |
1215 | push ebx |
1051 | push ebx |
1216 | call .type_1 |
1052 | call .type_1 |
1217 | pop ebx |
1053 | pop ebx |
1218 | mov ecx,0x90ffffff |
1054 | mov ecx,0x90ffffff |
1219 | sub ebx,1 shl 16 + 1 |
1055 | sub ebx,1 shl 16 + 1 |
1220 | ;-------------------------------------- |
1056 | ;-------------------------------------- |
1221 | .type_1: |
1057 | .type_1: |
1222 | cmp [shift_flag],1 |
1058 | cmp [shift_flag],1 |
1223 | je .type_shift |
1059 | je .type_shift |
1224 | 1060 | ||
1225 | cmp [ctrl_flag],1 |
1061 | cmp [ctrl_flag],1 |
1226 | je .type_ctrl |
1062 | je .type_ctrl |
1227 | 1063 | ||
1228 | cmp [alt_flag],1 |
1064 | cmp [alt_flag],1 |
1229 | je .type_alt |
1065 | je .type_alt |
1230 | ;-------------------------------------- |
1066 | ;-------------------------------------- |
1231 | .type: |
1067 | .type: |
1232 | mov edx,fbutton_name.f1 |
1068 | mov edx,fbutton_name.f1 |
1233 | call .type_all |
1069 | call .type_all |
1234 | mov edx,fbutton_name.f2 |
1070 | mov edx,fbutton_name.f2 |
1235 | call .type_all |
1071 | call .type_all |
1236 | mov edx,fbutton_name.f3 |
1072 | mov edx,fbutton_name.f3 |
1237 | call .type_all |
1073 | call .type_all |
1238 | mov edx,fbutton_name.f4 |
1074 | mov edx,fbutton_name.f4 |
1239 | call .type_all |
1075 | call .type_all |
1240 | mov edx,fbutton_name.f5 |
1076 | mov edx,fbutton_name.f5 |
1241 | call .type_all |
1077 | call .type_all |
1242 | mov edx,fbutton_name.f6 |
1078 | mov edx,fbutton_name.f6 |
1243 | call .type_all |
1079 | call .type_all |
1244 | mov edx,fbutton_name.f7 |
1080 | mov edx,fbutton_name.f7 |
1245 | call .type_all |
1081 | call .type_all |
1246 | mov edx,fbutton_name.f8 |
1082 | mov edx,fbutton_name.f8 |
1247 | call .type_all |
1083 | call .type_all |
1248 | mov edx,fbutton_name.f9 |
1084 | mov edx,fbutton_name.f9 |
1249 | call .type_all |
1085 | call .type_all |
1250 | mov edx,fbutton_name.f10 |
1086 | mov edx,fbutton_name.f10 |
1251 | call .type_all |
1087 | call .type_all |
1252 | mov edx,fbutton_name.f11 |
1088 | mov edx,fbutton_name.f11 |
1253 | call .type_all |
1089 | call .type_all |
1254 | mov edx,fbutton_name.f12 |
1090 | mov edx,fbutton_name.f12 |
1255 | mcall |
1091 | mcall |
1256 | ret |
1092 | ret |
1257 | ;-------------------------------------- |
1093 | ;-------------------------------------- |
1258 | .type_shift: |
1094 | .type_shift: |
1259 | mov edx,fbutton_name_shift.f1 |
1095 | mov edx,fbutton_name_shift.f1 |
1260 | call .type_all |
1096 | call .type_all |
1261 | mov edx,fbutton_name_shift.f2 |
1097 | mov edx,fbutton_name_shift.f2 |
1262 | call .type_all |
1098 | call .type_all |
1263 | mov edx,fbutton_name_shift.f3 |
1099 | mov edx,fbutton_name_shift.f3 |
1264 | call .type_all |
1100 | call .type_all |
1265 | mov edx,fbutton_name_shift.f4 |
1101 | mov edx,fbutton_name_shift.f4 |
1266 | call .type_all |
1102 | call .type_all |
1267 | mov edx,fbutton_name_shift.f5 |
1103 | mov edx,fbutton_name_shift.f5 |
1268 | call .type_all |
1104 | call .type_all |
1269 | mov edx,fbutton_name_shift.f6 |
1105 | mov edx,fbutton_name_shift.f6 |
1270 | call .type_all |
1106 | call .type_all |
1271 | mov edx,fbutton_name_shift.f7 |
1107 | mov edx,fbutton_name_shift.f7 |
1272 | call .type_all |
1108 | call .type_all |
1273 | mov edx,fbutton_name_shift.f8 |
1109 | mov edx,fbutton_name_shift.f8 |
1274 | call .type_all |
1110 | call .type_all |
1275 | mov edx,fbutton_name_shift.f9 |
1111 | mov edx,fbutton_name_shift.f9 |
1276 | call .type_all |
1112 | call .type_all |
1277 | mov edx,fbutton_name_shift.f10 |
1113 | mov edx,fbutton_name_shift.f10 |
1278 | call .type_all |
1114 | call .type_all |
1279 | mov edx,fbutton_name_shift.f11 |
1115 | mov edx,fbutton_name_shift.f11 |
1280 | call .type_all |
1116 | call .type_all |
1281 | mov edx,fbutton_name_shift.f12 |
1117 | mov edx,fbutton_name_shift.f12 |
1282 | mcall |
1118 | mcall |
1283 | ret |
1119 | ret |
1284 | ;-------------------------------------- |
1120 | ;-------------------------------------- |
1285 | .type_ctrl: |
1121 | .type_ctrl: |
1286 | mov edx,fbutton_name_ctrl.f1 |
1122 | mov edx,fbutton_name_ctrl.f1 |
1287 | call .type_all |
1123 | call .type_all |
1288 | mov edx,fbutton_name_ctrl.f2 |
1124 | mov edx,fbutton_name_ctrl.f2 |
1289 | call .type_all |
1125 | call .type_all |
1290 | mov edx,fbutton_name_ctrl.f3 |
1126 | mov edx,fbutton_name_ctrl.f3 |
1291 | call .type_all |
1127 | call .type_all |
1292 | mov edx,fbutton_name_ctrl.f4 |
1128 | mov edx,fbutton_name_ctrl.f4 |
1293 | call .type_all |
1129 | call .type_all |
1294 | mov edx,fbutton_name_ctrl.f5 |
1130 | mov edx,fbutton_name_ctrl.f5 |
1295 | call .type_all |
1131 | call .type_all |
1296 | mov edx,fbutton_name_ctrl.f6 |
1132 | mov edx,fbutton_name_ctrl.f6 |
1297 | call .type_all |
1133 | call .type_all |
1298 | mov edx,fbutton_name_ctrl.f7 |
1134 | mov edx,fbutton_name_ctrl.f7 |
1299 | call .type_all |
1135 | call .type_all |
1300 | mov edx,fbutton_name_ctrl.f8 |
1136 | mov edx,fbutton_name_ctrl.f8 |
1301 | call .type_all |
1137 | call .type_all |
1302 | mov edx,fbutton_name_ctrl.f9 |
1138 | mov edx,fbutton_name_ctrl.f9 |
1303 | call .type_all |
1139 | call .type_all |
1304 | mov edx,fbutton_name_ctrl.f10 |
1140 | mov edx,fbutton_name_ctrl.f10 |
1305 | call .type_all |
1141 | call .type_all |
1306 | mov edx,fbutton_name_ctrl.f11 |
1142 | mov edx,fbutton_name_ctrl.f11 |
1307 | call .type_all |
1143 | call .type_all |
1308 | mov edx,fbutton_name_ctrl.f12 |
1144 | mov edx,fbutton_name_ctrl.f12 |
1309 | mcall |
1145 | mcall |
1310 | ret |
1146 | ret |
1311 | ;-------------------------------------- |
1147 | ;-------------------------------------- |
1312 | .type_alt: |
1148 | .type_alt: |
1313 | mov edx,fbutton_name_alt.f1 |
1149 | mov edx,fbutton_name_alt.f1 |
1314 | call .type_all |
1150 | call .type_all |
1315 | mov edx,fbutton_name_alt.f2 |
1151 | mov edx,fbutton_name_alt.f2 |
1316 | call .type_all |
1152 | call .type_all |
1317 | mov edx,fbutton_name_alt.f3 |
1153 | mov edx,fbutton_name_alt.f3 |
1318 | call .type_all |
1154 | call .type_all |
1319 | mov edx,fbutton_name_alt.f4 |
1155 | mov edx,fbutton_name_alt.f4 |
1320 | call .type_all |
1156 | call .type_all |
1321 | mov edx,fbutton_name_alt.f5 |
1157 | mov edx,fbutton_name_alt.f5 |
1322 | call .type_all |
1158 | call .type_all |
1323 | mov edx,fbutton_name_alt.f6 |
1159 | mov edx,fbutton_name_alt.f6 |
1324 | call .type_all |
1160 | call .type_all |
1325 | mov edx,fbutton_name_alt.f7 |
1161 | mov edx,fbutton_name_alt.f7 |
1326 | call .type_all |
1162 | call .type_all |
1327 | mov edx,fbutton_name_alt.f8 |
1163 | mov edx,fbutton_name_alt.f8 |
1328 | call .type_all |
1164 | call .type_all |
1329 | mov edx,fbutton_name_alt.f9 |
1165 | mov edx,fbutton_name_alt.f9 |
1330 | call .type_all |
1166 | call .type_all |
1331 | mov edx,fbutton_name_alt.f10 |
1167 | mov edx,fbutton_name_alt.f10 |
1332 | call .type_all |
1168 | call .type_all |
1333 | mov edx,fbutton_name_alt.f11 |
1169 | mov edx,fbutton_name_alt.f11 |
1334 | call .type_all |
1170 | call .type_all |
1335 | mov edx,fbutton_name_alt.f12 |
1171 | mov edx,fbutton_name_alt.f12 |
1336 | ;-------------------------------------- |
1172 | ;-------------------------------------- |
1337 | .type_all: |
1173 | .type_all: |
1338 | mcall |
1174 | mcall |
1339 | call draw_fbutton.rol_ror |
1175 | call draw_fbutton.rol_ror |
1340 | ret |
1176 | ret |
1341 | ;------------------------------------------------------------------------------ |
1177 | ;------------------------------------------------------------------------------ |
1342 | >10,9>16,16> |
1178 | >10,9>16,16> |