[docs] Replace cyrillic 'с' with latin 'c' in register names
[kolibrios.git] / programs / media / zsea / convert.inc
blobbd89b84e304bfd0599912a66ccf3e73679632a72
1 ;---------------------------------------------------------------------\r
2 convert_plugin_invoke:\r
3         mov     eax,[plugin_0_name]\r
4         call    prepare_convert\r
5         push    eax\r
6         call    [Convert_plugin_0.Start]\r
7         call    check_convert\r
8 ;-------------------------------    \r
9         mov     eax,[plugin_1_name]\r
10         call    prepare_convert\r
11         push    eax\r
12         call    [Convert_plugin_1.Start]\r
13         call    check_convert\r
14 ;-------------------------------\r
15         mov     eax,[plugin_2_name]\r
16         call    prepare_convert\r
17         push    eax\r
18         call    [Convert_plugin_2.Start]\r
19         call    check_convert\r
20 ;-------------------------------\r
21         mov     eax,[plugin_3_name]\r
22         call    prepare_convert\r
23         push    eax\r
24         call    [Convert_plugin_3.Start]\r
25         call    check_convert\r
26 ;-------------------------------\r
27         mov     eax,[plugin_4_name]\r
28         call    prepare_convert\r
29         push    eax\r
30         call    [Convert_plugin_4.Start]\r
31         call    check_convert\r
32 ;-------------------------------\r
33         mov     eax,[plugin_5_name]\r
34         call    prepare_convert\r
35         push    eax\r
36         call    [Convert_plugin_5.Start]\r
37         call    check_convert\r
38 ;-------------------------------\r
39         mov     eax,[plugin_6_name]\r
40         call    prepare_convert\r
41         push    eax\r
42         call    [Convert_plugin_6.Start]\r
43         call    check_convert\r
44 ;-------------------------------\r
45         mov     eax,[plugin_7_name]\r
46         call    prepare_convert\r
47         push    eax\r
48         call    [Convert_plugin_7.Start]\r
49         call    check_convert\r
50 ;-------------------------------\r
51         mov     eax,[plugin_8_name]\r
52         call    prepare_convert\r
53         push    eax\r
54         call    [Convert_plugin_8.Start]\r
55         mov     eax,[return_code]\r
56         call    check_convert\r
57 ;-------------------------------\r
58         mov     eax,[plugin_9_name]\r
59         call    prepare_convert\r
60         push    eax\r
61         call    [Convert_plugin_9.Start]\r
62 ;-------------------------------\r
63 .end:\r
64         mov     ecx,[image_file]\r
65         mcall   68, 13,\r
66         ret\r
67 ;---------------------------------------------------------------------\r
68 prepare_convert:\r
69         cmp     eax,dword 'NoKe'\r
70         je      .1  ;@f\r
71         xor     eax,eax\r
72         mov     [return_code],eax\r
73         mov     eax,image_file\r
74         ret\r
75 .1:\r
76         add     esp,4\r
77         jmp     convert_plugin_invoke.end\r
78 ;---------------------------------------------------------------------\r
79 check_convert:\r
80         mov   eax,[return_code]\r
81         test  eax,eax\r
82         jz   prepare_convert.1\r
83     cmp   eax,dword 2\r
84     je   prepare_convert.1\r
85         ret\r
86 ;---------------------------------------------------------------------  \r
87 convert:\r
88         xor  eax,eax\r
89         cmp  [error_fs],eax\r
90         jnz   .error\r
92         call  convert_plugin_invoke\r
94         cmp   [return_code],dword 0\r
95         je   .all_ok\r
96         xor  eax,eax\r
97 ;-------------------------------\r
98 .error_1:\r
99         mov  [img_size],eax\r
100         mov  [img_width],eax\r
101         mov  [img_width_2],eax\r
102         mov  [img_high],eax\r
103         mov  [img_high_2],eax\r
104         mov  [img_resolution],eax\r
105         mov  [img_resolution_2],eax\r
106         mov  [img_palette],eax \r
107         mov  [soi],eax\r
108         mov  [file_name],eax\r
109         mov  [Total_Repeat_N],eax\r
110         mov  [RAW1_pointer],eax\r
111         mov  [RAW1_flag],al\r
112         \r
113         mov  [scaling_mode],dword 100\r
114         call error_window\r
115         ret\r
116 ;-------------------------------\r
117 .error:\r
118         xor  eax,eax\r
119         mov  [return_code],eax\r
120         jmp .error_1\r
121 ;-------------------------------\r
122 .all_ok:\r
123     mov  ebx,[raw_pointer]\r
124         cmp  [ebx],dword 'RAW1'\r
125         je   RAW1_processing\r
126         xor  eax,eax\r
127         mov  [RAW1_flag],al\r
128         mov  [RAW1_pointer],eax\r
129         inc  eax\r
130         mov  [Total_Repeat_N],eax\r
131         mov  eax,[ebx+4]\r
132         mov  [img_width],eax\r
133         mov  [img_width_2],eax\r
134         mov  eax,[ebx+8]\r
135         mov  [img_high],eax\r
136         mov  [img_high_2],eax\r
137         mov  eax,[ebx+12]\r
138         mov  [img_resolution_2],eax\r
139 ;       mov  eax,[ebx+20]\r
140 ;       add  eax,ebx\r
141 ;       mov  [img_palette],eax    \r
142 ;       mov  eax,[ebx+28]\r
143 ;       add  eax,ebx\r
144 ;       mov  [soi],eax\r
145 ;-------------------------------\r
146 ;       xor  eax,eax\r
147 ;       mov  [raw_pointer_2],eax\r
148 ;       mov eax,image_file\r
149 ;       call [plugin_convert]\r
150         push    dword image_file\r
151         call    [convert_Start]\r
153         mov  ebx,[raw_pointer]\r
154         mov  eax,[ebx+12]\r
155 ;       cmp  [ebx+18],word 2\r
156 ;       jne  @f\r
157 ;       shr  eax,1\r
158 ;@@:\r
159         cmp  eax,15\r
160         jne  @f\r
161         inc  eax\r
162 @@:     \r
163         mov  [img_resolution],eax\r
164         \r
165         mov  eax,[ebx+20]\r
166         add  eax,ebx\r
167         mov  [img_palette],eax \r
168         \r
169         mov  eax,[ebx+28]\r
170         add  eax,ebx\r
171         mov  [soi],eax\r
173 ;    mov  eax,[raw_pointer_2]\r
174 ;    test eax,eax\r
175 ;       jz  @f\r
176 ;    mov  [soi],eax\r
177 ;@@:\r
179 ;-------------------------------\r
180 ;    mov  eax,[img_resolution]\r
181 ;    cmp  eax,32\r
182 ;    ja   @f\r
183 ;    cmp  [ebx+18],word 2\r
184 ;    je   @f\r
185 ;    cmp  [ebx+18],word 1\r
186 ;    jne  .img_resolution_ok\r
187 ;.grayscale_16:\r
188 ;    cmp  eax,16\r
189 ;    jne  .img_resolution_ok \r
190 ;    shr  eax,1\r
191 ;    mov  [img_resolution],eax\r
192 ;    jmp  .img_resolution_ok    \r
193 ;@@:\r
194 ;    shr  eax,1\r
195 ;    cmp  eax,16\r
196 ;    jne  @f\r
197 ;    shr  eax,1\r
198 ;@@:\r
199 ;    mov  [img_resolution],eax\r
200    \r
201 .img_resolution_ok:\r
202         xor  eax,eax\r
203         mov  [scroll_bar_data_vertical.position],eax\r
204         mov  [scroll_bar_data_horizontal.position],eax\r
205     call  get_window_param\r
206     test  [window_status],1b\r
207     jnz   .end\r
208         cmp  [scaling_mode],dword 100\r
209         jne   .end\r
210     mov  ebx,[img_high]\r
211     mov  eax,[img_width]\r
212         test    ebx, ebx\r
213         jns     @f\r
214         neg     ebx\r
215 @@:\r
216     add  eax,9\r
217     cmp  eax,770\r
218     jae  @f\r
219     mov  eax,770\r
220 @@:\r
221     mov  [wnd_width],eax\r
222         push    ebx\r
223         mcall   48,4\r
224         pop     ebx\r
225         add     ebx,eax\r
226         mov     [skin_height],eax\r
227     add  ebx,28+4       ;54\r
228     cmp  ebx,150\r
229     jae  @f\r
230     mov  ebx,150\r
231 @@:\r
232     mov  [wnd_height],ebx\r
234     \r
235         mcall 14\r
236         \r
237         mov  ebx,eax\r
238         and  eax,0xffff\r
239         shr  ebx,16\r
240         inc  eax\r
241         inc  ebx\r
242         cmp  eax,[wnd_height]\r
243         jae  @f\r
244         xor  eax,eax\r
245         mov  ax,[scroll_bar_data_vertical.size_x]\r
246         add  [wnd_width],eax\r
247 @@:     \r
248         cmp  ebx,[wnd_width]\r
249         jae  @f\r
250         xor  eax,eax\r
251         mov  ax,[scroll_bar_data_horizontal.size_y]\r
252         add  [wnd_height],eax\r
253 @@:     \r
254     mov  eax,[wnd_width]\r
255     mov  ebx,[wnd_height]\r
256         \r
257     test [bWasDraw],1\r
258     jz   @f\r
259     mov  esi,ebx\r
260     mov  edx,eax\r
261     mcall 67,-1,-1\r
262 @@:\r
263 .end:\r
264     ret\r
265 ;---------------------------------------------------------------------