[docs] Replace cyrillic 'с' with latin 'c' in register names
[kolibrios.git] / programs / media / zsea / key.inc
blob66570d97c46a096ae2ab1f81585e57d0d8871c2f
1 ;---------------------------------------------------------------------\r
2   key:                          ; key\r
3     mcall 2\r
4     cmp   [extended_key],1\r
5     je    .extended_key\r
6     test  al, al\r
7     jnz   still\r
8     cmp   ah, 0xE0\r
9     jne   @f\r
10     mov   [extended_key],1\r
11     jmp   still\r
12 @@:\r
13     cmp   ah,151  ; i - file information\r
14         je    kinfo\r
15     cmp   ah,152  ; o - application options\r
16         je    check_key_O ;k_option\r
17     cmp   ah,159  ; s - sort mode\r
18         je    k_sort_directory\r
19     cmp   ah,145  ; w - wallpaper\r
20         je    k_background\r
21     cmp   ah,183  ; * - scaling to window\r
22         je    scaling\r
23     cmp   ah,139  ; 0 - scaling to window\r
24         je    scaling\r
25     cmp   ah,202  ; "-" - zoom minus\r
26         je    zoom_minus\r
27     cmp   ah,140  ; "-" - zoom minus\r
28         je    zoom_minus\r
29     cmp   ah,206  ; "+" - zoom plus\r
30         je    zoom_plus\r
31     cmp   ah,141  ; "+" - zoom plus\r
32         je    zoom_plus\r
33     cmp   ah,171  ; "\" - zoom 100%\r
34         je    no_scaling\r
35         \r
36         cmp   ah,72 ; up arrow\r
37         je    key_up_arrow\r
38         cmp   ah,80 ; down arrow\r
39         je    key_down_arrow\r
40         cmp   ah,75 ; left arrow\r
41         je    key_left_arrow\r
42         cmp   ah,77 ; right arrow\r
43         je    key_right_arrow\r
44         \r
45         cmp   ah,28 ; Enter\r
46         je    full_screen\r
47         cmp     ah,187  ; F1\r
48         je      select_menu ;key_alt_down\r
50         cmp     ah,42\r
51         je      key_shift_up\r
52         cmp     ah,54\r
53         je      key_shift_up\r
54         cmp     ah,170\r
55         je      key_shift_down\r
56         cmp     ah,182\r
57         je      key_shift_down\r
58         cmp     ah,29\r
59         je      key_ctrl_up\r
60         cmp     ah,157\r
61         je      key_ctrl_down\r
62         cmp     ah,56\r
63         je      key_alt_up\r
64         cmp     ah,184\r
65         je      key_alt_down\r
66         \r
67     jmp  still  \r
68 .extended_key:\r
69     mov  [extended_key],0\r
70         mov  [current_key_code],ah\r
71 ;       push  eax\r
72 ;       mcall 26,9\r
73 ;       mov  [timer_counter],eax\r
74 ;       pop   eax\r
76 ;    mov  al,ah\r
77 ;    cmp  al,130  ; 1\r
78 ;    je  kfile\r
79 ;    cmp  al,131  ; 2\r
80 ;    je  kopen\r
81 ;    cmp  al,132  ; 3\r
82 ;    je  kinfo\r
83 ;    cmp  al,133  ; 4\r
84 ;    je  kbgrd\r
85         cmp  ah,73\r
86         je   move_to_left\r
87         cmp  ah,81\r
88         je   move_to_right\r
89         cmp  ah,71\r
90         je   left_limit\r
91         cmp  ah,79\r
92         je   right_limit\r
93     cmp   ah,181  ; / - zoom 100%\r
94         je    no_scaling\r
95         \r
96         cmp   ah,72 ; up arrow\r
97         je    key_up_arrow\r
98         cmp   ah,80 ; down arrow\r
99         je    key_down_arrow\r
100         cmp   ah,75 ; left arrow\r
101         je    key_left_arrow\r
102         cmp   ah,77 ; right arrow\r
103         je    key_right_arrow\r
104         \r
105         cmp   ah,28 ; Enter\r
106         je    full_screen\r
107         \r
108         cmp   ah,183 ; Print Screen  - Slides Show\r
109         je    slide_show.3\r
111         cmp     ah,29\r
112         je      key_ctrl_up\r
113         cmp     ah,157\r
114         je      key_ctrl_down\r
115         cmp     ah,56\r
116         je      key_alt_up\r
117         cmp     ah,184\r
118         je      key_alt_down\r
119     jmp  still\r
120 ;---------------------------------------------------------------------\r
121 key_shift_up:\r
122         mov     [shift_flag],1\r
123         jmp     still\r
124 ;---------------------------------------------------------------------\r
125 key_shift_down:\r
126         mov     [shift_flag],0\r
127         jmp     still\r
128 ;---------------------------------------------------------------------\r
129 key_ctrl_up:\r
130         mov     [ctrl_flag],1\r
131         jmp     still\r
132 ;---------------------------------------------------------------------\r
133 key_ctrl_down:\r
134         mov     [ctrl_flag],0\r
135         jmp     still\r
136 ;---------------------------------------------------------------------\r
137 key_alt_up:\r
138         mov     [alt_flag],1\r
139         jmp     still\r
140 ;---------------------------------------------------------------------\r
141 key_alt_down:\r
142         mov     [alt_flag],0\r
143         jmp     still\r
144 ;---------------------------------------------------------------------\r
145 check_key_O:\r
146         cmp     [ctrl_flag],0\r
147         jne     kfile\r
148         jmp     k_option\r
149 ;---------------------------------------------------------------------\r
150 move_to_left:\r
151         xor   eax,eax\r
152         cmp   [load_file_number],eax\r
153         je    still\r
154     dec   [load_file_number]\r
155         jmp  right_limit.2\r
156 ;----------------------------------------    \r
157 move_to_right:\r
158         mov   eax,[load_directory_pointer]\r
159         mov   eax,[eax+4]\r
160         test  eax,eax\r
161         jz    @f\r
162         dec   eax\r
163 @@:\r
164         cmp   [load_file_number],eax\r
165         je    still\r
166     inc   [load_file_number]\r
167         jmp  right_limit.2\r
168 ;----------------------------------------\r
169 left_limit:\r
170         xor  eax,eax\r
171         jmp  right_limit.1\r
172 ;----------------------------------------\r
173 right_limit:\r
174         mov   eax,[load_directory_pointer]\r
175         mov   eax,[eax+4]\r
176         test  eax,eax\r
177         jz    @f\r
178         dec   eax\r
179 @@:\r
180 .1:\r
181         cmp   [load_file_number],eax\r
182         je    still\r
183         mov  [load_file_number],eax\r
184 .2:\r
185         imul  ebx,[load_file_number],304\r
186         add   ebx,32+40\r
187         add   ebx,[load_directory_pointer]\r
188         \r
189     mov   esi,string\r
190     mov   edi,plugin_pach\r
191     call  copy_file_path\r
193         mov  esi,plugin_pach\r
194         mov  edi,string\r
195         mov  ecx,4096/4\r
196         cld\r
197         rep  movsd\r
199 ;       jmp   kopen\r
200     mov  [open_file_flag],0\r
201     mov ecx,-1\r
202     call  getappinfo\r
203     call  load_image\r
204         test  eax,eax\r
205         jnz    kopen_1.err\r
206         \r
207     call  convert\r
208         \r
209         call load_directory.copy_dir_path       \r
210         \r
211     call  get_window_param\r
212     test  [window_status],1b\r
213     jz    @f ;draw_still\r
214         mov   [no_draw_window],1\r
215     call  draw_other\r
216         mov   [no_draw_window],0\r
217         jmp   .3\r
218         \r
219 @@:\r
220     call draw_window\r
221 .3:\r
222         mov  al,[old_key_code]\r
223         mov  ah,[current_key_code]\r
224         mov  [old_key_code],ah\r
225         cmp  al,ah\r
226         jne  still  ;key.extended_key  ;still\r
227 .still:\r
228     mcall 2\r
229     cmp   [extended_key],1\r
230     je    .extended_key\r
231     test  al, al\r
232     jnz   still\r
233     cmp   ah, 0xE0\r
234     jne   @f\r
235     mov   [extended_key],1\r
236     jmp   .still\r
237 @@:\r
238     jmp   still \r
239 .extended_key:\r
240     mov  [extended_key],0\r
241         mov  [current_key_code],ah\r
242         jmp  .3\r
243 .4:\r
244         mov  ah,[current_key_code]\r
245         mov  [old_key_code],ah\r
246         jmp  key.extended_key\r
247 ;---------------------------------------------------------------------\r
248 slide_show:\r
249         mov   eax,[load_directory_pointer]\r
250         cmp   [eax+4],dword 1\r
251         jbe   still\r
252     mcall 26,9\r
253         cmp   [timer],eax\r
254         jbe   .1\r
255         jmp   .still\r
256 .red:\r
257     call draw_window\r
258 .still:\r
259         mcall 23,10\r
260     cmp  eax,1        ; ïåðåðèñîâàòü îêíî ?\r
261     je     .red\r
262     cmp  eax,2        ; íàæàòà êëàâèøà ?\r
263     je     .key       ; åñëè äà - íà key\r
264     cmp  eax,3        ; íàæàòà êíîïêà ?\r
265     je     .button     ; åñëè äà - íà button\r
266 ;       mcall 68,1\r
267         jmp   slide_show\r
268 ;-------------------------------------------\r
269 .key:\r
270     mcall 2\r
271     cmp   [extended_key],1\r
272     je    .extended_key\r
273     test  al, al\r
274     jnz   .still\r
275     cmp   ah, 0xE0\r
276     jne   @f\r
277     mov   [extended_key],1\r
278     jmp   .still\r
279 @@:\r
280     cmp   ah,1  ; Esc\r
281         je    still\r
282     cmp   ah,185  ; Space\r
283         je    still\r
284         jmp  .still\r
285 .extended_key:\r
286     mov  [extended_key],0\r
287         mov  [current_key_code],ah\r
288         jmp   .still\r
289 ;-------------------------------------------\r
290 .button:                        ; button\r
291     mov  eax,17                 ; get id\r
292     mcall\r
293     cmp  ah,1             ; button id=1 ?\r
294         je  START.exit\r
295 .noclose:\r
296     cmp  ah,2\r
297         je   still\r
298         jmp  slide_show\r
299 ;-------------------------------------------\r
300 .1:\r
301 ;    mcall 26,9\r
302 ;       add  eax,[slide_show_delay]   ;500\r
303 ;       mov   [timer],eax\r
304         \r
305         mov   eax,[load_directory_pointer]\r
306         mov   eax,[eax+4]\r
307         test  eax,eax\r
308         jz    @f\r
309         dec   eax\r
310 @@:\r
311         cmp   [load_file_number],eax\r
312         je    still\r
313     inc   [load_file_number]\r
314         imul  ebx,[load_file_number],304\r
315         add   ebx,32+40\r
316         add   ebx,[load_directory_pointer]\r
317         \r
318     mov   esi,string\r
319     mov   edi,plugin_pach\r
320     call  copy_file_path\r
321         \r
322         mov  esi,plugin_pach\r
323         mov  edi,string\r
324         mov  ecx,4096/4\r
325         cld\r
326         rep  movsd\r
327     mov  [open_file_flag],0\r
328     mov ecx,-1\r
329     call  getappinfo\r
330     call  load_image\r
331         \r
332         test  eax,eax\r
333         jnz    kopen_1.err\r
334         \r
335     call  convert\r
336         call load_directory.copy_dir_path\r
337         \r
338     call  get_window_param\r
339     test  [window_status],1b\r
340     jz    @f ;draw_still\r
341         mov   [no_draw_window],1\r
342     call  draw_other\r
343         mov   [no_draw_window],0\r
344         jmp   .3  ;slide_show\r
345 @@:\r
346     call draw_window\r
347 ;       jmp   slide_show\r
348 .3:\r
349     mcall 26,9\r
350         add  eax,[slide_show_delay]  ;500\r
351         mov   [timer],eax\r
352     jmp  slide_show\r
353 ;---------------------------------------------------------------------\r
354 key_up_arrow:\r
355         mov  eax,[scroll_bar_data_vertical.ar_offset]\r
356         mov  ebx,scroll_bar_data_vertical.position\r
357         cmp  [ebx],eax\r
358         jbe  @f\r
359         sub  [ebx],eax\r
360         jmp  .1\r
361 @@:\r
362         xor   eax,eax\r
363         cmp  [ebx],eax\r
364         je   still\r
365         mov   [ebx],eax\r
366 .1:\r
367         call  drawimage\r
368         call  draw_scrollbars\r
369         jmp   still\r
370 ;---------------------------------------------------------------------\r
371 key_down_arrow:\r
372         mov  ecx,[scroll_bar_data_vertical.ar_offset]\r
373         mov  ebx,scroll_bar_data_vertical.position\r
374         mov  eax,[scroll_bar_data_vertical.max_area]\r
375         sub  eax,[scroll_bar_data_vertical.cur_area]\r
376         cmp  [ebx],eax\r
377         je   still\r
378         push eax\r
379         sub  eax,ecx\r
380         cmp  [ebx],eax\r
381         pop  eax\r
382         jae  @f\r
383         add  [ebx],ecx\r
384         jmp  key_up_arrow.1\r
385 @@:\r
386         mov  [ebx],eax\r
387         jmp  key_up_arrow.1\r
388 ;---------------------------------------------------------------------\r
389 key_left_arrow:\r
390         mov  eax,[scroll_bar_data_horizontal.ar_offset]\r
391         mov  ebx,scroll_bar_data_horizontal.position\r
392         cmp  [ebx],eax\r
393         jbe  @f\r
394         sub  [ebx],eax\r
395         jmp  key_up_arrow.1\r
396 @@:\r
397         xor   eax,eax\r
398         cmp  [ebx],eax\r
399         je   still\r
400         mov   [ebx],eax\r
401         jmp  key_up_arrow.1\r
402 ;---------------------------------------------------------------------\r
403 key_right_arrow:\r
404         mov  ecx,[scroll_bar_data_horizontal.ar_offset]\r
405         mov  ebx,scroll_bar_data_horizontal.position\r
406         mov  eax,[scroll_bar_data_horizontal.max_area]\r
407         sub  eax,[scroll_bar_data_horizontal.cur_area]\r
408         cmp  [ebx],eax\r
409         je   still\r
410         push eax\r
411         sub  eax,ecx\r
412         cmp  [ebx],eax\r
413         pop  eax\r
414         jae  @f\r
415         add  [ebx],ecx\r
416         jmp  key_up_arrow.1\r
417 @@:\r
418         mov  [ebx],eax\r
419         \r
420 ;       xor   eax,eax\r
421 ;       mov   ax,[scroll_bar_data_horizontal.size_x]\r
422 ;       sub   eax,[scroll_bar_data_horizontal.btn_high]\r
423 ;       sub   eax,[scroll_bar_data_horizontal.btn_high]\r
424 ;       sub   eax,[scroll_bar_data_horizontal.run_size]\r
425 ;       mov   [scroll_bar_data_horizontal.position2],eax\r
426         jmp  key_up_arrow.1\r
427 ;---------------------------------------------------------------------