Rev 485 | Rev 6357 | Go to most recent revision | Show entire file | Ignore 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: |
- | |
24 | 22 | ||
- | 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 |
29 | jmp lab4 |
28 | jmp lab4 |
- | 29 | ||
30 | lab3: |
30 | lab3: |
31 | mov [WorkScreen_SizeY],ebx |
31 | mov [WorkScreen_SizeY],ebx |
32 | lab4: |
- | |
33 | 32 | ||
- | 33 | lab4: |
|
34 | mov eax,[WorkScreen_SizeX] |
34 | mov eax,[WorkScreen_SizeX] |
35 | mov ebx,[k] |
35 | mov ebx,[k] |
36 | cdq |
36 | cdq |
37 | idiv ebx |
37 | idiv ebx |
38 | mov [CounterX],eax |
38 | mov [CounterX],eax |
39 | mov eax,[WorkScreen_SizeY] |
39 | mov eax,[WorkScreen_SizeY] |
40 | cdq |
40 | cdq |
41 | idiv ebx |
41 | idiv ebx |
42 | mov [CounterY],eax |
42 | mov [CounterY],eax |
Line 43... | Line 43... | ||
43 | 43 | ||
44 | mov eax,[WorkScreen_SizeX] |
44 | mov eax,[WorkScreen_SizeX] |
45 | mov ecx,eax |
45 | mov ecx,eax |
46 | mov ebx,[k] |
46 | mov ebx,[k] |
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 |
264 | inc ebx |
265 | inc ebx |
265 | mov esi,0xffffff |
266 | mov esi,0xffffff |
266 | - | ||
267 | clear_screen_loop: |
267 | |
268 | 268 | clear_screen_loop: |
|
269 | mov [eax],esi |
269 | mov [eax],esi |
270 | mov [eax+3],esi |
270 | mov [eax+3],esi |
271 | mov [eax+6],si |
- | |
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)--------------- |
277 | ;-------------cleare work arrea(work screen)--------------- |
279 | ;---------------------------------------------------------- |
- | |
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] |
286 | shr ebx,3 |
284 | shr ebx,3 |
287 | inc ebx |
285 | inc ebx |
288 | mov esi,0xffffff |
286 | mov esi,0xffffff |
289 | - | ||
290 | clear_work_arrea_loop: |
287 | |
291 | 288 | clear_work_arrea_loop: |
|
292 | mov [eax],esi |
289 | mov [eax],esi |
293 | mov [eax+3],esi |
290 | mov [eax+3],esi |
294 | mov [eax+6],si |
- | |
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 | ;----------------------------------------------------------- |
296 | ;----------------------------------------------------------- |
301 | ;calculate position work screen on a picture |
297 | ;calculate position work screen on a picture |
- | 298 | ;----------------------------------------------------------- |
|
- | 299 | CalculatePositionScreen: |
|
- | 300 | mov eax,[Picture_SizeX] |
|
- | 301 | mov ebx,[Picture_SizeY] |
|
- | 302 | mov ecx,[CounterX] |
|
- | 303 | mov edx,[CounterY] |
|
- | 304 | sub eax,ecx |
|
- | 305 | sub ebx,edx |
|
- | 306 | cmp [PosX],eax |
|
- | 307 | jle no_limit_screen_x |
|
- | 308 | mov [PosX],eax |
|
- | 309 | ||
- | 310 | no_limit_screen_x: |
|
- | 311 | cmp [PosY],ebx |
|
- | 312 | jle no_limit_screen_y |
|
- | 313 | mov [PosY],ebx |
|
- | 314 | ||
- | 315 | no_limit_screen_y: |
|
- | 316 | cmp [PosX],0 |
|
- | 317 | jns no_minimum_screen_x |
|
- | 318 | mov [PosX],0 |
|
- | 319 | ||
- | 320 | no_minimum_screen_x: |
|
- | 321 | cmp [PosY],0 |
|
Line 302... | Line -... | ||
302 | ;----------------------------------------------------------- |
- | |
303 | CalculatePositionScreen: |
- | |
304 | - | ||
305 | mov eax,[Picture_SizeX] |
- | |
306 | mov ebx,[Picture_SizeY] |
- | |
307 | mov ecx,[CounterX] |
- | |
308 | mov edx,[CounterY] |
- | |
309 | sub eax,ecx |
- | |
310 | sub ebx,edx |
- | |
311 | - | ||
312 | cmp [PosX],eax |
- | |
313 | jle no_limit_screen_x |
- | |
314 | mov [PosX],eax |
- | |
315 | no_limit_screen_x: |
- | |
316 | - | ||
317 | cmp [PosY],ebx |
- | |
318 | jle no_limit_screen_y |
- | |
319 | mov [PosY],ebx |
- | |
320 | no_limit_screen_y: |
- | |
321 | - | ||
322 | cmp [PosX],0 |
- | |
323 | jns no_minimum_screen_x |
- | |
324 | mov [PosX],0 |
- | |
325 | no_minimum_screen_x: |
- | |
326 | - | ||
327 | cmp [PosY],0 |
322 | jns no_minimum_screen_y |
328 | jns no_minimum_screen_y |
- | |
329 | mov [PosY],0 |
323 | mov [PosY],0 |
330 | no_minimum_screen_y: |
324 | |
331 | 325 | no_minimum_screen_y: |
|
332 | ret |
326 | ret |
333 | ;----------------------------------------------------------- |
327 | ;----------------------------------------------------------- |
334 | ;-----------calculate cordinats on work picture-------------- |
- | |
335 | ;----------------------------------------------------------- |
328 | ;-----------calculate cordinats on work picture-------------- |
336 | GetScreenCordinats: |
329 | ;----------------------------------------------------------- |
337 | 330 | GetScreenCordinats: |
|
338 | mov eax,[MouseX] |
331 | mov eax,[MouseX] |
339 | mov ebx,[MouseY] |
- | |
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] |
335 | mov ecx,[k] |
344 | cdq |
336 | cdq |
345 | idiv ecx |
337 | idiv ecx |
346 | mov [ScreenX],eax |
338 | mov [ScreenX],eax |
347 | mov eax,ebx |
339 | mov eax,ebx |
348 | cdq |
- | |
349 | idiv ecx |
340 | cdq |
350 | mov [ScreenY],eax |
341 | idiv ecx |