[docs] Replace cyrillic 'с' with latin 'c' in register names
[kolibrios.git] / programs / media / zsea / full_win.inc
blob7eb32fa1758b1ee41f7c149d07416492f8a54a0f
1 ;---------------------------------------------------------------------\r
2 full_screen:\r
3         xor  eax,eax\r
4         mov  [Repeat_N],eax\r
5         \r
6         xor  eax,eax\r
7         mov  [press_Enter_flag],al\r
8 \r
9         mov  eax,[zoom_factors]\r
10         mov  [zoom_factors_old],eax\r
12         mov  eax,[scaling_mode]\r
13         mov  [scaling_mode_old],eax\r
15         call get_window_param_1\r
16         mov  eax,[window_start_x]\r
17         mov  [window_start_x_old],eax\r
18         mov  eax,[window_start_y]\r
19         mov  [window_start_y_old],eax\r
20         mov  eax,[window_high]\r
21         mov  [window_high_old],eax\r
22         mov  eax,[window_width]\r
23         mov  [window_width_old],eax\r
24 ;----------------------------------------\r
25 ; get current work area\r
26         mcall 48,5\r
27         mov  [work_area_LR_old],eax\r
28         mov  [work_area_TB_old],ebx\r
29 ;----------------------------------------\r
30         mov  eax,[soi]\r
31         test eax,eax\r
32         jz   still\r
33         mov  eax,scaling_mode\r
34         xor  ebx,ebx\r
35         mov  [eax],ebx  ;dword 0\r
36         mov  [zoom_factors],dword zoom_factors.1\r
37         \r
38         mcall 14\r
39         xor  ebx,ebx\r
40         xor  ecx,ecx\r
41         mov  edx,eax\r
42         shr  edx,16\r
43         xor  esi,esi\r
44         mov  si,ax\r
45         inc  ax\r
46         mov  [wa_high_1],ax\r
47         mov  [wa_high_2],ax\r
48         shr  eax,16\r
49         inc  ax\r
50         mov  [wa_width_1],ax\r
51         mov  [wa_width_2],ax\r
52         mcall 67\r
53 ;----------------------------------------\r
54 ; set max work area\r
55         mov  ecx,edx\r
56         mov  dx,si\r
57         mcall 48,6\r
58 ;----------------------------------------\r
59         mov  eax,[fill_color]\r
60         mov  [fill_color_old],eax\r
61         xor  eax,eax\r
62         mov  [fill_color],eax\r
64         jmp  .still\r
65 ;----------------------------------------\r
66 .red:\r
67         call .draw_window\r
68 .still:\r
69         cmp  [RAW1_flag],1\r
70         je   .animation_handler\r
71         mcall 10\r
72         cmp  eax,1  ; ïåðåðèñîâàòü îêíî ?\r
73         je     .red       ; åñëè äà - íà ìåòêó red\r
74         cmp  eax,2  ; íàæàòà êëàâèøà ?\r
75         je     .key       ; åñëè äà - íà key\r
76         cmp  eax,3  ; íàæàòà êíîïêà ?\r
77         je     .button     ; åñëè äà - íà button\r
78         jmp  .still       ; åñëè äðóãîå ñîáûòèå - â íà÷àëî öèêëà\r
79 ;----------------------------------------\r
80 .animation_handler:\r
81         mcall 23,1\r
82 ;       pusha\r
83 ;       mcall 26,9\r
84 ;       cmp   [Animation_timer],eax\r
85 ;       ja   @f\r
86 ;       call animation_handler.draw_image\r
87 ;@@:\r
88 ;       popa\r
89         cmp  eax,1      ; ïåðåðèñîâàòü îêíî ?\r
90         je     .red       ; åñëè äà - íà ìåòêó red\r
91         cmp  eax,2      ; íàæàòà êëàâèøà ?\r
92         je     .key       ; åñëè äà - íà key\r
93         cmp  eax,3      ; íàæàòà êíîïêà ?\r
94         je     .button     ; åñëè äà - íà button\r
95         mcall 26,9\r
96         cmp   [Animation_timer],eax\r
97         ja   .animation_handler\r
98         \r
99         mov al,[Disposal_Method]\r
100         cmp al,2\r
101         jne  @f\r
102         call restore_background\r
103         jmp  .first_frame\r
104 @@:\r
105         cmp al,3\r
106         jne  @f\r
107         call restore_previous_frame\r
108 @@:\r
109 .first_frame:\r
110         \r
111         call copy_next_frame\r
112         mov  [no_fill],1\r
113         call .draw_image\r
114         mov  [no_fill],0\r
115 ;       call animation_handler.draw_image\r
116         jmp  .still\r
117 ;----------------------------------------\r
118 .key:\r
119     mcall 2\r
120         cmp   [extended_key],1\r
121         je    .extended_key\r
122         test  al, al\r
123         jnz   .still\r
124         cmp   ah, 0xE0\r
125         jne   @f\r
126         mov   [extended_key],1\r
127         jmp   .still\r
128 @@:\r
129         cmp   ah,1  ; Esc\r
130         je    .restore_main_window\r
131         cmp   ah,156 ; Enter\r
132         je    .restore_main_window_1\r
133         jmp  .still\r
134 ;----------------------------------------\r
135 .extended_key:\r
136     mov  [extended_key],0\r
137         mov  [current_key_code],ah\r
138         cmp  ah,73\r
139         je   move_to_left_1\r
140         cmp  ah,81\r
141         je   move_to_right_1\r
142         cmp  ah,71\r
143         je   left_limit_1\r
144         cmp  ah,79\r
145         je   right_limit_1\r
147         cmp   ah,156 ; Enter\r
148         je    .restore_main_window_1\r
150         cmp   ah,183 ; Print Screen  - Slides Show\r
151         je    slide_show_1.3\r
152         jmp  .still\r
153 ;----------------------------------------\r
154 .button:\r
155         mcall  17\r
156         cmp  ah,1            ; button id=1 ?\r
157 ;       je  START.exit\r
158 ;       jmp  .still  ;red_1\r
159         jne  .still\r
160 .exit:\r
161         call restore_work_area\r
162         jmp  START.exit\r
163 ;---------------------------------------------------------------------\r
164 .restore_main_window_1:\r
165         cmp  [press_Enter_flag],1\r
166         je   .restore_main_window\r
167         inc  [press_Enter_flag]\r
168         jmp  .still\r
169 ;---------------------------------------------------------------------\r
170 .restore_main_window:\r
171         call restore_work_area\r
172         \r
173         mov  eax,[zoom_factors_old]\r
174         mov  [zoom_factors],eax\r
176         mov  eax,[scaling_mode_old]\r
177         mov  [scaling_mode],eax\r
179         mov     ebx,[window_start_x_old]\r
180         mov     ecx,[window_start_y_old]\r
181         mov     edx,[window_width_old]\r
182         mov     esi,[window_high_old]\r
183         mcall   67\r
185 ;       call get_window_param\r
186         mov  eax,[fill_color_old]\r
187         mov  [fill_color],eax\r
189         xor  eax,eax\r
190         mov  [Repeat_N],eax\r
191         \r
192 ;       mcall 15,3\r
194         mov  [redraw_wallpaper_flag],1\r
195         jmp  still  ;red_1\r
196 ;---------------------------------------------------------------------\r
197 .draw_window:\r
198         mcall 12,1\r
199         mcall 0,<0,800>,<0,600>,0x41000000,0,0\r
200 ;       call get_window_param_1\r
201 ;       mcall 8,0,0,1,0\r
202         call  .draw_image\r
203         mcall 12,2\r
204         ret\r
205 ;---------------------------------------------------------------------\r
206 .draw_image:\r
207         mcall 14\r
208         inc  ax\r
209         mov  [wa_high_1],ax\r
210         mov  [wa_high_2],ax\r
211         shr  eax,16\r
212         inc  ax\r
213         mov  [wa_width_1],ax\r
214         mov  [wa_width_2],ax\r
215         mov  [image_start_coordinates],0\r
216         mov  [background_color],0\r
217         call scaling.1\r
218         mov  [background_color],0xffffff\r
219         ret\r
220 ;---------------------------------------------------------------------\r
221 get_window_param_1:\r
222         mcall 9, procinfo, -1\r
223         mov     eax,[ebx+34]\r
224         mov     [window_start_x],eax\r
225         mov     eax,[ebx+38]\r
226         mov     [window_start_y],eax\r
227         mov     eax,[ebx+46]\r
228         mov     [window_high],eax\r
229         mov     eax,[ebx+42]\r
230         mov     [window_width],eax\r
231         mov     eax,[ebx+70]\r
232         mov     [window_status],eax\r
233         ret\r
234 ;----------------------------------------\r
235 restore_work_area:\r
236 ; restore old work area\r
237         mov  ecx,[work_area_LR_old]\r
238         mov  edx,[work_area_TB_old]\r
239         mcall 48,6\r
240         ret\r
241 ;---------------------------------------------------------------------\r
242 move_to_left_1:\r
243         xor   eax,eax\r
244         cmp   [load_file_number],eax\r
245         je    full_screen.still\r
246         dec   [load_file_number]\r
247         jmp  right_limit_1.2\r
248 ;----------------------------------------\r
249 move_to_right_1:\r
250         mov   eax,[load_directory_pointer]\r
251         mov   eax,[eax+4]\r
252         test  eax,eax\r
253         jz    @f\r
254         dec   eax\r
255 @@:\r
256         cmp   [load_file_number],eax\r
257         je    full_screen.still\r
258         inc   [load_file_number]\r
259         jmp  right_limit_1.2\r
260 ;----------------------------------------\r
261 left_limit_1:\r
262         xor  eax,eax\r
263         jmp  right_limit_1.1\r
264 ;----------------------------------------\r
265 right_limit_1:\r
266         mov   eax,[load_directory_pointer]\r
267         mov   eax,[eax+4]\r
268         test  eax,eax\r
269         jz    @f\r
270         dec   eax\r
271 @@:\r
272 .1:\r
273         cmp   [load_file_number],eax\r
274         je    full_screen.still\r
275         mov  [load_file_number],eax\r
276 .2:\r
277         imul  ebx,[load_file_number],304\r
278         add   ebx,32+40\r
279         add   ebx,[load_directory_pointer]\r
281         mov   esi,string\r
282         mov   edi,plugin_pach\r
283         call  copy_file_path\r
285         mov  esi,plugin_pach\r
286         mov  edi,string\r
287         mov  ecx,4096/4\r
288         cld\r
289         rep  movsd\r
291 ;       jmp   kopen\r
292         mov  [open_file_flag],0\r
293         mov ecx,-1\r
294         call  getappinfo\r
295         call  load_image\r
296         test  eax,eax\r
297         jnz    kopen_1.err\r
299         call  convert\r
301         call load_directory.copy_dir_path\r
303 ;       call  get_window_param\r
304 ;       test  [window_status],1b\r
305 ;       jz    @f ;draw_still\r
306 ;       mov   [no_draw_window],1\r
307 ;***    call  draw_other\r
308 ;       mov   [no_draw_window],0\r
309 ;       jmp   .3\r
311 ;@@:\r
312 ;       call .draw_window\r
313         call  full_screen.draw_image\r
314 .3:\r
315         mov  al,[old_key_code]\r
316         mov  ah,[current_key_code]\r
317         mov  [old_key_code],ah\r
318         cmp  al,ah\r
319         jne  full_screen.still  ;key.extended_key  ;still\r
320 .still:\r
321         mcall 2\r
322         cmp   [extended_key],1\r
323         je    .extended_key\r
324         test  al, al\r
325         jnz   full_screen.still\r
326         cmp   ah, 0xE0\r
327         jne   @f\r
328         mov   [extended_key],1\r
329         jmp   .still\r
330 @@:\r
331         jmp   full_screen.still\r
332 .extended_key:\r
333         mov  [extended_key],0\r
334         mov  [current_key_code],ah\r
335         jmp  .3\r
336 .4:\r
337         mov  ah,[current_key_code]\r
338         mov  [old_key_code],ah\r
339         jmp  full_screen.extended_key  ;key.extended_key\r
340 ;---------------------------------------------------------------------\r
341 slide_show_1:\r
342         mov   eax,[load_directory_pointer]\r
343         cmp   [eax+4],dword 1\r
344         jbe   full_screen.still\r
345         mcall 26,9\r
346         cmp   [timer],eax\r
347         jbe   .1\r
348         jmp   .still\r
349 .red:\r
350         call full_screen.draw_window\r
351 .still:\r
352         mcall 23,10\r
353         cmp  eax,1\r
354         je     .red\r
355         cmp  eax,2\r
356         je     .key\r
357         cmp  eax,3\r
358         je     .button\r
359 ;       mcall 68,1\r
360         jmp   slide_show_1\r
361 ;-------------------------------------------\r
362 .key:\r
363         mcall 2\r
364         cmp   [extended_key],1\r
365         je    .extended_key\r
366         test  al, al\r
367         jnz   .still\r
368         cmp   ah, 0xE0\r
369         jne   @f\r
370         mov   [extended_key],1\r
371         jmp   .still\r
372 @@:\r
373         cmp   ah,1  ; Esc\r
374         je    full_screen.still\r
375         cmp   ah,185  ; Space\r
376         je    full_screen.still\r
377         jmp  .still\r
378 .extended_key:\r
379         mov  [extended_key],0\r
380         mov  [current_key_code],ah\r
381         jmp   .still\r
382 ;-------------------------------------------\r
383 .button:                        ; button\r
384         mov  eax,17       ; get id\r
385         mcall\r
386         cmp  ah,1            ; button id=1 ?\r
387         je  full_screen.exit  ;START.exit\r
388 .noclose:\r
389         cmp  ah,2\r
390         je   full_screen.still\r
391         jmp  slide_show_1\r
392 ;-------------------------------------------\r
393 .1:\r
394 ;       mcall 26,9\r
395 ;       add  eax,[slide_show_delay]   ;500\r
396 ;       mov   [timer],eax\r
398         mov   eax,[load_directory_pointer]\r
399         mov   eax,[eax+4]\r
400         test  eax,eax\r
401         jz    @f\r
402         dec   eax\r
403 @@:\r
404         cmp   [load_file_number],eax\r
405         je    full_screen.still\r
406         inc   [load_file_number]\r
407         imul  ebx,[load_file_number],304\r
408         add   ebx,32+40\r
409         add   ebx,[load_directory_pointer]\r
411         mov   esi,string\r
412         mov   edi,plugin_pach\r
413         call  copy_file_path\r
415         mov  esi,plugin_pach\r
416         mov  edi,string\r
417         mov  ecx,4096/4\r
418         cld\r
419         rep  movsd\r
420         mov  [open_file_flag],0\r
421         mov ecx,-1\r
422         call  getappinfo\r
423         call  load_image\r
425         test  eax,eax\r
426         jnz    kopen_1.err\r
428         call  convert\r
429 ;       call  get_window_param\r
430 ;       test  [window_status],1b\r
431 ;       jz    @f ;draw_still\r
432 ;       mov   [no_draw_window],1\r
433 ;       call  draw_other\r
434 ;       mov   [no_draw_window],0\r
435 ;       jmp   slide_show_1  ;.3\r
436 ;@@:\r
437 ;       call draw_window\r
438         call load_directory.copy_dir_path\r
439         call  full_screen.draw_image\r
440 ;       jmp   slide_show_1\r
441 .3:\r
442         mcall 26,9\r
443         add  eax,[slide_show_delay]  ;500\r
444         mov   [timer],eax\r
445         jmp  slide_show_1\r
446 ;---------------------------------------------------------------------\r