Rev 485 | Rev 6357 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 485 | Rev 1643 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;---------------------------------------------------------- |
1 | ;---------------------------------------------------------- |
2 | ;--------Move picture from array to work screeen----------- |
2 | ;--------Move picture from array to work screeen----------- |
3 | ;---------------------------------------------------------- |
3 | ;---------------------------------------------------------- |
4 | MovePictureToWorkScreen: |
4 | MovePictureToWorkScreen: |
5 | - | ||
6 | call cleare_screen |
5 | call cleare_screen |
7 | - | ||
8 | mov eax,[Picture_SizeX] |
6 | mov eax,[Picture_SizeX] |
9 | mov ebx,[Picture_SizeY] |
7 | mov ebx,[Picture_SizeY] |
10 | mov ecx,[MaxWorkScreen_SizeX] |
8 | mov ecx,[MaxWorkScreen_SizeX] |
11 | mov edx,[MaxWorkScreen_SizeY] |
9 | mov edx,[MaxWorkScreen_SizeY] |
12 | mov esi,[k] |
10 | mov esi,[k] |
13 | imul eax,esi |
11 | imul eax,esi |
14 | imul ebx,esi |
12 | imul ebx,esi |
15 | - | ||
16 | cmp eax,ecx |
13 | cmp eax,ecx |
17 | jle lab1 |
14 | jle lab1 |
- | 15 | ||
18 | mov eax,[MaxWorkScreen_SizeX] |
16 | mov eax,[MaxWorkScreen_SizeX] |
19 | mov [WorkScreen_SizeX],eax |
17 | mov [WorkScreen_SizeX],eax |
20 | jmp lab2 |
18 | jmp lab2 |
- | 19 | ||
21 | lab1: |
20 | lab1: |
22 | mov [WorkScreen_SizeX],eax |
21 | mov [WorkScreen_SizeX],eax |
23 | lab2: |
- | |
Line -... | Line 22... | ||
- | 22 | ||
24 | 23 | lab2: |
|
25 | cmp ebx,edx |
24 | cmp ebx,edx |
26 | jle lab3 |
25 | jle lab3 |
27 | mov ebx,[MaxWorkScreen_SizeY] |
26 | mov ebx,[MaxWorkScreen_SizeY] |
28 | mov [WorkScreen_SizeY],ebx |
27 | mov [WorkScreen_SizeY],ebx |
- | 28 | jmp lab4 |
|
29 | jmp lab4 |
29 | |
30 | lab3: |
30 | lab3: |
31 | mov [WorkScreen_SizeY],ebx |
- | |
Line -... | Line 31... | ||
- | 31 | mov [WorkScreen_SizeY],ebx |
|
32 | lab4: |
32 | |
33 | 33 | lab4: |
|
34 | mov eax,[WorkScreen_SizeX] |
34 | mov eax,[WorkScreen_SizeX] |
35 | mov ebx,[k] |
35 | mov ebx,[k] |
36 | cdq |
36 | cdq |
Line 47... | Line 47... | ||
47 | cdq |
47 | cdq |
48 | idiv ebx |
48 | idiv ebx |
49 | imul eax,ebx |
49 | imul eax,ebx |
50 | sub ecx,eax |
50 | sub ecx,eax |
51 | lea ecx,[ecx+ecx*2] |
51 | lea ecx,[ecx+ecx*2] |
52 | ; |
52 | |
53 | mov eax,[WorkScreen_SizeX] |
53 | mov eax,[WorkScreen_SizeX] |
54 | mov ebx,[k] |
54 | mov ebx,[k] |
55 | dec ebx |
55 | dec ebx |
56 | imul eax,ebx |
56 | imul eax,ebx |
57 | lea eax,[eax+eax*2] |
57 | lea eax,[eax+eax*2] |
58 | add eax,ecx |
58 | add eax,ecx |
59 | mov [OffsetYWorkScreen],eax |
59 | mov [OffsetYWorkScreen],eax |
Line 60... | Line -... | ||
60 | - | ||
61 | 60 | ||
62 | mov ebx,[Picture_SizeX] |
61 | mov ebx,[Picture_SizeX] |
63 | mov eax,[CounterX] |
62 | mov eax,[CounterX] |
64 | sub ebx,eax |
63 | sub ebx,eax |
65 | lea ebx,[ebx+ebx*2] |
64 | lea ebx,[ebx+ebx*2] |
Line 77... | Line 76... | ||
77 | imul ecx,ebx |
76 | imul ecx,ebx |
78 | add eax,ecx |
77 | add eax,ecx |
79 | lea eax,[eax+eax*2] |
78 | lea eax,[eax+eax*2] |
80 | add eax,[PointerToPicture] |
79 | add eax,[PointerToPicture] |
Line 81... | Line -... | ||
81 | - | ||
82 | 80 | ||
83 | mov ebx,[ScreenPointer] |
- | |
84 | 81 | mov ebx,[ScreenPointer] |
|
Line 85... | Line 82... | ||
85 | mov edi,[CounterY] |
82 | mov edi,[CounterY] |
86 | 83 | ||
87 | ;if size of picture natural(mastab is 1) than move picture to work screen |
84 | ;if size of picture natural(mastab is 1) than move picture to work screen |
- | 85 | cmp [k],1 |
|
88 | cmp [k],1 |
86 | jne no_zoom_1_ |
89 | jne no_zoom_1_ |
87 | |
- | 88 | screen_y_1: |
|
90 | screen_y_1: |
89 | mov esi,[CounterX] |
91 | mov esi,[CounterX] |
90 | |
92 | screen_x_1: |
91 | screen_x_1: |
93 | mov ecx,[eax] |
92 | mov ecx,[eax] |
94 | and ecx,0xffffff |
93 | and ecx,0xffffff |
Line 103... | Line 102... | ||
103 | add eax,[OffsetYPicture] |
102 | add eax,[OffsetYPicture] |
104 | add ebx,[OffsetYWorkScreen] |
103 | add ebx,[OffsetYWorkScreen] |
105 | dec edi |
104 | dec edi |
106 | jnz screen_y_1 |
105 | jnz screen_y_1 |
107 | jmp fps |
106 | jmp fps |
108 | no_zoom_1_: |
- | |
Line -... | Line 107... | ||
- | 107 | ||
109 | 108 | no_zoom_1_: |
|
110 | cmp [k],2 |
109 | cmp [k],2 |
Line 111... | Line 110... | ||
111 | jne no_zoom_2 |
110 | jne no_zoom_2 |
112 | 111 | ||
- | 112 | screen_y_2: |
|
113 | screen_y_2: |
113 | mov esi,[CounterX] |
114 | mov esi,[CounterX] |
114 | |
115 | screen_x_2: |
115 | screen_x_2: |
116 | mov ecx,[eax] |
116 | mov ecx,[eax] |
117 | and ecx,0xffffff |
117 | and ecx,0xffffff |
Line 137... | Line 137... | ||
137 | add eax,[OffsetYPicture] |
137 | add eax,[OffsetYPicture] |
138 | add ebx,[OffsetYWorkScreen] |
138 | add ebx,[OffsetYWorkScreen] |
139 | dec edi |
139 | dec edi |
140 | jnz screen_y_2 |
140 | jnz screen_y_2 |
141 | jmp fps |
141 | jmp fps |
142 | no_zoom_2: |
- | |
Line -... | Line 142... | ||
- | 142 | ||
143 | 143 | no_zoom_2: |
|
144 | cmp [k],4 |
144 | cmp [k],4 |
- | 145 | jne no_zoom_4 |
|
145 | jne no_zoom_4 |
146 | |
146 | screen_y_4: |
147 | screen_y_4: |
- | 148 | mov esi,[CounterX] |
|
147 | mov esi,[CounterX] |
149 | |
148 | screen_x_4: |
150 | screen_x_4: |
149 | mov ecx,[eax] |
151 | mov ecx,[eax] |
150 | and ecx,0xffffff |
152 | and ecx,0xffffff |
151 | mov ebp,ecx |
153 | mov ebp,ecx |
Line 198... | Line 200... | ||
198 | add eax,[OffsetYPicture] |
200 | add eax,[OffsetYPicture] |
199 | add ebx,[OffsetYWorkScreen] |
201 | add ebx,[OffsetYWorkScreen] |
200 | dec edi |
202 | dec edi |
201 | jnz screen_y_4 |
203 | jnz screen_y_4 |
202 | jmp fps |
204 | jmp fps |
- | 205 | ||
203 | no_zoom_4: |
206 | no_zoom_4: |
204 | ;if zoom more than 4 |
207 | ;if zoom more than 4 |
205 | screen_y: |
208 | screen_y: |
206 | mov esi,[CounterX] |
209 | mov esi,[CounterX] |
- | 210 | ||
207 | screen_x: |
211 | screen_x: |
208 | mov ecx,[eax] |
212 | mov ecx,[eax] |
209 | and ecx,0xffffff |
213 | and ecx,0xffffff |
210 | mov ebp,ecx |
214 | mov ebp,ecx |
211 | shr ecx,16 |
215 | shr ecx,16 |
212 | push ebx |
216 | ;--------------------------------------------------------- |
213 | push eax |
217 | push ebx eax |
214 | mov edx,[k] |
218 | mov edx,[k] |
- | 219 | ||
215 | big_pixel_y: |
220 | big_pixel_y: |
216 | mov eax,[k] |
221 | mov eax,[k] |
- | 222 | ||
217 | big_pixel_x: |
223 | big_pixel_x: |
218 | mov [ebx],bp |
224 | mov [ebx],bp |
219 | mov [ebx+2],cl |
225 | mov [ebx+2],cl |
220 | add ebx,3 |
226 | add ebx,3 |
221 | dec eax |
227 | dec eax |
222 | jnz big_pixel_x |
228 | jnz big_pixel_x |
223 | add ebx,[OffsetYBigPixel] |
229 | add ebx,[OffsetYBigPixel] |
224 | dec edx |
230 | dec edx |
225 | jnz big_pixel_y |
231 | jnz big_pixel_y |
226 | pop eax |
232 | pop eax ebx |
227 | pop ebx |
233 | ;--------------------------------------------------------- |
228 | mov edx,[k] |
234 | mov edx,[k] |
229 | lea edx,[edx+edx*2] |
235 | lea edx,[edx+edx*2] |
230 | add ebx,edx |
236 | add ebx,edx |
231 | add eax,3 |
237 | add eax,3 |
232 | dec esi |
238 | dec esi |
Line 235... | Line 241... | ||
235 | add ebx,[OffsetYWorkScreen] |
241 | add ebx,[OffsetYWorkScreen] |
236 | dec edi |
242 | dec edi |
237 | jnz screen_y |
243 | jnz screen_y |
Line 238... | Line 244... | ||
238 | 244 | ||
239 | fps: |
- | |
240 | ;mov eax,18 |
245 | fps: |
241 | ;mov ebx,14 |
- | |
242 | ;mcall |
- | |
243 | - | ||
244 | mov eax,7 |
246 | ;mcall 18,14 |
245 | mov ebx,[ScreenPointer] |
247 | mov ebx,[ScreenPointer] |
246 | mov ecx,[WorkScreen_SizeX] |
248 | mov ecx,[WorkScreen_SizeX] |
247 | mov edx,[WorkScreen_SizeY] |
249 | mov edx,[WorkScreen_SizeY] |
248 | shl ecx,16 |
250 | shl ecx,16 |
249 | add ecx,edx |
251 | add ecx,edx |
250 | mov edx,8*65536+20+15+49+5+1 |
- | |
Line -... | Line 252... | ||
- | 252 | mov edx,8*65536+20+15+49+5+1 |
|
251 | mcall |
253 | |
252 | 254 | mcall 7 |
|
253 | ret |
255 | ret |
254 | ;---------------------------------------------------------- |
256 | ;---------------------------------------------------------- |
255 | ;--------------------clear screen-------------------------- |
257 | ;--------------------clear screen-------------------------- |
256 | ;---------------------------------------------------------- |
- | |
257 | cleare_screen: |
258 | ;---------------------------------------------------------- |
258 | 259 | cleare_screen: |
|
259 | mov eax,[ScreenPointer] |
260 | mov eax,[ScreenPointer] |
260 | mov ebx,[WorkScreen_SizeX] |
261 | mov ebx,[WorkScreen_SizeX] |
261 | imul ebx,[WorkScreen_SizeY] |
262 | imul ebx,[WorkScreen_SizeY] |
262 | lea ebx,[ebx+ebx*2] |
263 | lea ebx,[ebx+ebx*2] |
263 | shr ebx,3 |
264 | shr ebx,3 |
Line 264... | Line 265... | ||
264 | inc ebx |
265 | inc ebx |
265 | mov esi,0xffffff |
- | |
266 | 266 | mov esi,0xffffff |
|
267 | clear_screen_loop: |
267 | |
268 | 268 | clear_screen_loop: |
|
269 | mov [eax],esi |
269 | mov [eax],esi |
270 | mov [eax+3],esi |
- | |
271 | mov [eax+6],si |
270 | mov [eax+3],esi |
272 | add eax,4+4 |
271 | mov [eax+6],si |
273 | 272 | add eax,4+4 |
|
274 | dec ebx |
273 | dec ebx |
275 | jnz clear_screen_loop |
274 | jnz clear_screen_loop |
276 | ret |
275 | ret |
277 | ;---------------------------------------------------------- |
276 | ;---------------------------------------------------------- |
278 | ;-------------cleare work arrea(work screen)--------------- |
- | |
279 | ;---------------------------------------------------------- |
277 | ;-------------cleare work arrea(work screen)--------------- |
280 | cleare_work_arrea: |
278 | ;---------------------------------------------------------- |
281 | 279 | cleare_work_arrea: |
|
282 | mov eax,[PointerToPicture] |
280 | mov eax,[PointerToPicture] |
283 | mov ebx,[Picture_SizeX] |
281 | mov ebx,[Picture_SizeX] |
284 | imul ebx,[Picture_SizeY] |
282 | imul ebx,[Picture_SizeY] |
285 | lea ebx,[ebx+ebx*2] |
283 | lea ebx,[ebx+ebx*2] |
Line 286... | Line 284... | ||
286 | shr ebx,3 |
284 | shr ebx,3 |
287 | inc ebx |
- | |
288 | mov esi,0xffffff |
285 | inc ebx |
289 | 286 | mov esi,0xffffff |
|
290 | clear_work_arrea_loop: |
287 | |
291 | 288 | clear_work_arrea_loop: |
|
292 | mov [eax],esi |
- | |
293 | mov [eax+3],esi |
289 | mov [eax],esi |
294 | mov [eax+6],si |
290 | mov [eax+3],esi |
295 | add eax,4+4 |
291 | mov [eax+6],si |
296 | 292 | add eax,4+4 |
|
297 | dec ebx |
293 | dec ebx |
298 | jnz clear_work_arrea_loop |
294 | jnz clear_work_arrea_loop |
299 | ret |
295 | ret |
300 | ;----------------------------------------------------------- |
- | |
301 | ;calculate position work screen on a picture |
296 | ;----------------------------------------------------------- |
302 | ;----------------------------------------------------------- |
297 | ;calculate position work screen on a picture |
303 | CalculatePositionScreen: |
298 | ;----------------------------------------------------------- |
304 | 299 | CalculatePositionScreen: |
|
305 | mov eax,[Picture_SizeX] |
300 | mov eax,[Picture_SizeX] |
306 | mov ebx,[Picture_SizeY] |
301 | mov ebx,[Picture_SizeY] |
307 | mov ecx,[CounterX] |
- | |
308 | mov edx,[CounterY] |
302 | mov ecx,[CounterX] |
309 | sub eax,ecx |
303 | mov edx,[CounterY] |
310 | sub ebx,edx |
304 | sub eax,ecx |
311 | - | ||
Line -... | Line 305... | ||
- | 305 | sub ebx,edx |
|
312 | cmp [PosX],eax |
306 | cmp [PosX],eax |
313 | jle no_limit_screen_x |
307 | jle no_limit_screen_x |
314 | mov [PosX],eax |
308 | mov [PosX],eax |
315 | no_limit_screen_x: |
- | |
Line -... | Line 309... | ||
- | 309 | ||
316 | 310 | no_limit_screen_x: |
|
317 | cmp [PosY],ebx |
311 | cmp [PosY],ebx |
318 | jle no_limit_screen_y |
312 | jle no_limit_screen_y |
319 | mov [PosY],ebx |
- | |
Line -... | Line 313... | ||
- | 313 | mov [PosY],ebx |
|
320 | no_limit_screen_y: |
314 | |
321 | 315 | no_limit_screen_y: |
|
322 | cmp [PosX],0 |
316 | cmp [PosX],0 |
323 | jns no_minimum_screen_x |
- | |
Line -... | Line 317... | ||
- | 317 | jns no_minimum_screen_x |
|
324 | mov [PosX],0 |
318 | mov [PosX],0 |
325 | no_minimum_screen_x: |
319 | |
326 | 320 | no_minimum_screen_x: |
|
327 | cmp [PosY],0 |
321 | cmp [PosY],0 |
328 | jns no_minimum_screen_y |
322 | jns no_minimum_screen_y |
329 | mov [PosY],0 |
- | |
330 | no_minimum_screen_y: |
323 | mov [PosY],0 |
331 | 324 | ||
332 | ret |
325 | no_minimum_screen_y: |
333 | ;----------------------------------------------------------- |
326 | ret |
334 | ;-----------calculate cordinats on work picture-------------- |
- | |
335 | ;----------------------------------------------------------- |
327 | ;----------------------------------------------------------- |
336 | GetScreenCordinats: |
328 | ;-----------calculate cordinats on work picture-------------- |
337 | 329 | ;----------------------------------------------------------- |
|
338 | mov eax,[MouseX] |
330 | GetScreenCordinats: |
339 | mov ebx,[MouseY] |
331 | mov eax,[MouseX] |
340 | sub eax,9 |
332 | mov ebx,[MouseY] |
341 | sub ebx,87 |
333 | sub eax,9 |
342 | 334 | sub ebx,87 |
|
343 | mov ecx,[k] |
- | |
344 | cdq |
335 | mov ecx,[k] |
345 | idiv ecx |
336 | cdq |