Subversion Repositories Kolibri OS

Rev

Rev 133 | Rev 283 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 133 Rev 205
Line 1031... Line 1031...
1031
 
1031
 
Line 1032... Line 1032...
1032
     call calculate_edi
1032
     call calculate_edi
1033
 
-
 
1034
 
1033
 
1035
   sdp3:                            ; MAIN LOOP
1034
 
1036
 
-
 
1037
     cmp [edi+WinMapAddress],byte 1     ; ptrBuffer^<>byte(1)
1035
sdp3: ; MAIN LOOP 
1038
     jne snbgp
1036
cmp [edi+WinMapAddress],byte 1 ; ptrBuffer^<>byte(1) 
1039
 
-
 
1040
     push eax
1037
jne snbgp 
1041
     push ebx
1038
push eax 
1042
 
1039
push ebx 
1043
     mov   eax,dword [WinMapAddress-8]
1040
mov eax,dword [WinMapAddress-8] 
1044
     imul  eax, [esp+4]      ;4
1041
imul eax, [esp+4] ;4 
-
 
1042
xor edx,edx 
1045
     xor   edx,edx
1043
mov ebx,[ScreenWidth] 
1046
     mov   ebx,[ScreenWidth]
1044
div ebx 
1047
     div   ebx
1045
mov cx,dx 
1048
     lea   esi,[eax+eax*2]
1046
lea esi,[eax+eax*2] 
1049
     mov   eax,dword [WinMapAddress-4]
1047
mov eax,dword [WinMapAddress-4] 
1050
     imul  eax, [esp+0]      ;0
1048
imul eax, [esp+0] ;0 
-
 
1049
xor edx,edx 
-
 
1050
mov ebx,[ScreenHeight] 
1051
     xor   edx,edx
1051
div ebx 
1052
     mov   ebx,[ScreenHeight]
1052
shl ecx,16 
1053
     div   ebx
-
 
1054
     imul  eax, [esp+8]      ;8
1053
mov cx,dx 
-
 
1054
imul eax, [esp+8] ;8 
-
 
1055
add esi,eax 
-
 
1056
mov eax,[esi+0x300000] 
-
 
1057
push eax 
-
 
1058
ror ecx,16 
-
 
1059
xor eax,eax 
-
 
1060
mov ax,cx 
-
 
1061
shl eax,1 ; óìíîæåíèå íà 2 
-
 
1062
lea eax,[eax+eax*4] ; óìíîæåíèå íà 5 
-
 
1063
xor edx,edx 
-
 
1064
mov ebx,[ScreenWidth] 
-
 
1065
div ebx 
-
 
1066
cmp eax,5 
-
 
1067
pop eax 
-
 
1068
jb @f 
-
 
1069
mov ebx,[esi+0x300000+3] 
-
 
1070
call overlapping_of_points 
-
 
1071
@@: 
-
 
1072
push eax 
-
 
1073
ror ecx,16 
-
 
1074
xor eax,eax 
-
 
1075
mov ax,cx 
-
 
1076
shl eax,1 ; óìíîæåíèå íà 2 
-
 
1077
lea eax,[eax+eax*4] ; óìíîæåíèå íà 
-
 
1078
xor edx,edx 
-
 
1079
mov ebx,[ScreenHeight] 
-
 
1080
div ebx 
-
 
1081
cmp eax,5 
-
 
1082
pop eax 
-
 
1083
jb @f 
-
 
1084
mov ebx,[display_data-8] 
-
 
1085
shl ebx,1 
-
 
1086
add ebx,[display_data-8] 
-
 
1087
add ebx,0x300000 
-
 
1088
add ebx,esi 
1055
     add   esi,eax
1089
mov ebx,[ebx] 
1056
 
-
 
1057
     mov   eax,[esi+0x300000]
1090
call overlapping_of_points 
1058
     and   eax,0xffffff
1091
@@: 
1059
 
1092
and eax,0xffffff 
1060
     xchg edi, ebp
1093
xchg edi, ebp 
1061
     stosw
1094
stosw 
1062
     shr eax,16
1095
shr eax,16 
1063
     stosb
1096
stosb 
1064
     xchg ebp, edi                 ; ebp+=3
1097
xchg ebp, edi ; ebp+=3 
1065
     cmp [ScreenBPP],byte 24       ; 24 or 32 bpp ? - x size
1098
cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size 
1066
     jz  @f
-
 
1067
     inc ebp ; +1
1099
jz @f 
1068
   @@:
1100
inc ebp ; +1 
1069
 
-
 
1070
     pop ebx
1101
@@: 
Line -... Line 1102...
-
 
1102
pop ebx 
-
 
1103
pop eax 
-
 
1104
jmp shook1 
-
 
1105
 
-
 
1106
overlapping_of_points: 
-
 
1107
push ecx edi 
-
 
1108
mov ecx,eax 
-
 
1109
mov edx,ebx 
-
 
1110
xor eax,eax 
-
 
1111
mov al,cl 
-
 
1112
xor ebx,ebx 
-
 
1113
mov bl,dl 
-
 
1114
add eax,ebx 
-
 
1115
rcr eax,1 
-
 
1116
xor edi,edi 
-
 
1117
mov di,ax 
-
 
1118
xor eax,eax 
-
 
1119
mov al,ch 
-
 
1120
xor ebx,ebx 
-
 
1121
mov bl,dh 
-
 
1122
add eax,ebx 
-
 
1123
rcr eax,1 
-
 
1124
ror edi,8 
-
 
1125
add edi,eax 
-
 
1126
ror ecx,8 
-
 
1127
ror edx,8 
-
 
1128
xor eax,eax 
-
 
1129
mov al,ch 
-
 
1130
xor ebx,ebx 
-
 
1131
mov bl,dh 
-
 
1132
add eax,ebx 
-
 
1133
rcr eax,1 
-
 
1134
ror edi,8 
-
 
1135
add eax,edi 
1071
     pop eax
1136
ror eax,16 
1072
 
1137
pop edi ecx 
1073
     jmp shook1
1138
ret
1074
 
1139
 
1075
   snbgp:
1140
   snbgp: