Rev 2489 | Rev 2511 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2489 | Rev 2509 | ||
---|---|---|---|
Line 67... | Line 67... | ||
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 68... | Line 68... | ||
68 | 68 | ||
69 | include 'macros.inc' |
69 | include 'macros.inc' |
Line 70... | Line 70... | ||
70 | include 'struct.inc' |
70 | include 'struct.inc' |
Line 71... | Line 71... | ||
71 | 71 | ||
Line 72... | Line 72... | ||
72 | $Revision: 2489 $ |
72 | $Revision: 2509 $ |
Line 4685... | Line 4685... | ||
4685 | xchg eax, ebx |
4685 | xchg eax, ebx |
4686 | and ecx, 0xFBFFFFFF ;negate 0x04000000 use mouseunder area |
4686 | and ecx, 0xFBFFFFFF ;negate 0x04000000 use mouseunder area |
4687 | call dword [GETPIXEL]; eax - x, ebx - y |
4687 | call dword [GETPIXEL]; eax - x, ebx - y |
4688 | mov [esp + 32], ecx |
4688 | mov [esp + 32], ecx |
4689 | ret |
4689 | ret |
4690 | - | ||
- | 4690 | ;----------------------------------------------------------------------------- |
|
4691 | align 4 |
4691 | align 4 |
4692 | - | ||
4693 | syscall_getarea: |
4692 | syscall_getarea: |
4694 | ;eax = 36 |
4693 | ;eax = 36 |
4695 | ;ebx = pointer to bufer for img BBGGRRBBGGRR... |
4694 | ;ebx = pointer to bufer for img BBGGRRBBGGRR... |
4696 | ;ecx = [size x]*65536 + [size y] |
4695 | ;ecx = [size x]*65536 + [size y] |
4697 | ;edx = [start x]*65536 + [start y] |
4696 | ;edx = [start x]*65536 + [start y] |
Line 4723... | Line 4722... | ||
4723 | 4722 | ||
4724 | add ebp, esi |
4723 | add ebp, esi |
Line 4725... | Line 4724... | ||
4725 | add ebp, edi |
4724 | add ebp, edi |
- | 4725 | ||
4726 | 4726 | add ebx, edx |
|
4727 | add ebx, edx |
4727 | ;-------------------------------------- |
4728 | 4728 | align 4 |
|
- | 4729 | .start_y: |
|
- | 4730 | push ecx edx |
|
4729 | .start_y: |
4731 | ;-------------------------------------- |
4730 | push ecx edx |
4732 | align 4 |
4731 | .start_x: |
4733 | .start_x: |
Line 4732... | Line 4734... | ||
4732 | push eax ebx ecx |
4734 | push eax ebx ecx |
Line 4747... | Line 4749... | ||
4747 | dec ebx |
4749 | dec ebx |
4748 | dec edx |
4750 | dec edx |
4749 | jnz .start_y |
4751 | jnz .start_y |
4750 | popad |
4752 | popad |
4751 | ret |
4753 | ret |
- | 4754 | ;----------------------------------------------------------------------------- |
|
- | 4755 | align 4 |
|
- | 4756 | syscall_putarea_backgr: |
|
- | 4757 | ;eax = 25 |
|
- | 4758 | ;ebx = pointer to bufer for img BBGGRRBBGGRR... |
|
- | 4759 | ;ecx = [size x]*65536 + [size y] |
|
- | 4760 | ;edx = [start x]*65536 + [start y] |
|
- | 4761 | pushad |
|
- | 4762 | mov edi, ebx |
|
- | 4763 | mov eax, edx |
|
- | 4764 | shr eax, 16 |
|
- | 4765 | mov ebx, edx |
|
- | 4766 | and ebx, 0xffff |
|
- | 4767 | dec eax |
|
- | 4768 | dec ebx |
|
- | 4769 | ; eax - x, ebx - y |
|
- | 4770 | mov edx, ecx |
|
- | 4771 | shr ecx, 16 |
|
- | 4772 | and edx, 0xffff |
|
- | 4773 | mov esi, ecx |
|
- | 4774 | ; ecx - size x, edx - size y |
|
- | 4775 | mov ebp, edx |
|
- | 4776 | dec ebp |
|
- | 4777 | shl ebp, 2 |
|
- | 4778 | ||
- | 4779 | imul ebp, esi |
|
Line -... | Line 4780... | ||
- | 4780 | ||
- | 4781 | mov esi, ecx |
|
- | 4782 | dec esi |
|
- | 4783 | shl esi, 2 |
|
- | 4784 | ||
- | 4785 | add ebp, esi |
|
- | 4786 | add ebp, edi |
|
- | 4787 | ||
- | 4788 | add ebx, edx |
|
- | 4789 | ;-------------------------------------- |
|
- | 4790 | align 4 |
|
- | 4791 | .start_y: |
|
- | 4792 | push ecx edx |
|
- | 4793 | ;-------------------------------------- |
|
- | 4794 | align 4 |
|
- | 4795 | .start_x: |
|
- | 4796 | push eax ecx |
|
- | 4797 | add eax, ecx |
|
- | 4798 | ||
- | 4799 | mov ecx, [ebp] |
|
- | 4800 | rol ecx, 8 |
|
- | 4801 | test cl, cl ; transparensy = 0 |
|
- | 4802 | jz .no_put |
|
- | 4803 | ||
- | 4804 | xor cl, cl |
|
- | 4805 | ror ecx, 8 |
|
- | 4806 | ||
- | 4807 | pushad |
|
- | 4808 | mov edx, [d_width_calc_area + ebx*4] |
|
- | 4809 | add edx, [_WinMapAddress] |
|
- | 4810 | movzx edx, byte [eax+edx] |
|
- | 4811 | cmp dl, byte 1 |
|
- | 4812 | jne @f |
|
- | 4813 | ||
- | 4814 | call dword [PUTPIXEL]; eax - x, ebx - y |
|
- | 4815 | ;-------------------------------------- |
|
- | 4816 | align 4 |
|
- | 4817 | @@: |
|
- | 4818 | popad |
|
4752 | 4819 | ;-------------------------------------- |
|
- | 4820 | align 4 |
|
- | 4821 | .no_put: |
|
Line -... | Line 4822... | ||
- | 4822 | pop ecx eax |
|
- | 4823 | ||
- | 4824 | sub ebp, 4 |
|
- | 4825 | dec ecx |
|
- | 4826 | jnz .start_x |
|
- | 4827 | ||
- | 4828 | pop edx ecx |
|
- | 4829 | dec ebx |
|
- | 4830 | dec edx |
|
- | 4831 | jnz .start_y |
|
- | 4832 | ||
- | 4833 | popad |
|
- | 4834 | ret |
|
4753 | align 4 |
4835 | ;----------------------------------------------------------------------------- |
Line 4754... | Line 4836... | ||
4754 | 4836 | align 4 |
|
4755 | syscall_drawline: ; DrawLine |
4837 | syscall_drawline: ; DrawLine |
4756 | 4838 |