diff --git a/kernel/trunk/core/syscall.inc b/kernel/trunk/core/syscall.inc index cb3b9b2394..8ae056bdea 100644 --- a/kernel/trunk/core/syscall.inc +++ b/kernel/trunk/core/syscall.inc @@ -141,7 +141,7 @@ iglobal dd 0 dd 0 dd readmousepos ; 37-GetMousePosition_ScreenRelative,. - dd syscall_drawline ; 38-DrawLine + dd 0 ; 38-DrawLine dd sys_getbackground ; 39-GetBackgroundSize,ReadBgrData,. dd 0 dd 0 @@ -221,7 +221,7 @@ iglobal dd syscall_getpixel ; 35-GetPixel dd undefined_syscall ; 36-reserved dd cross_order ; 37-GetMousePosition_ScreenRelative,. - dd cross_order ; 38-DrawLine + dd syscall_drawline ; 38-DrawLine dd cross_order ; 39-GetBackgroundSize,ReadBgrData,. dd set_app_param ; 40-WantEvents dd syscall_getirqowner ; 41-GetIrqOwner diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index f024cc23ca..b79ccc4921 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -5077,22 +5077,23 @@ align 4 syscall_drawline: ; DrawLine mov edi, [TASK_BASE] - movzx edx, word[edi-twdw+WDATA.box.left] - mov ebp, edx + movzx eax, word[edi-twdw+WDATA.box.left] + mov ebp, eax mov esi, [current_slot] add ebp, [esi+APPDATA.wnd_clientbox.left] - add dx, word[esi+APPDATA.wnd_clientbox.left] - shl edx, 16 - add ebp, edx - movzx edx, word[edi-twdw+WDATA.box.top] + add ax, word[esi+APPDATA.wnd_clientbox.left] + add ebp,ebx + shl eax, 16 + movzx ebx, word[edi-twdw+WDATA.box.top] add eax, ebp - mov ebp, edx + mov ebp, ebx add ebp, [esi+APPDATA.wnd_clientbox.top] - add dx, word[esi+APPDATA.wnd_clientbox.top] - shl edx, 16 + add bx, word[esi+APPDATA.wnd_clientbox.top] + add ebp, ecx + shl ebx, 16 xor edi, edi - add edx, ebp - add ebx, edx + add ebx, ebp + mov ecx, edx jmp [draw_line] align 4