diff --git a/kernel/trunk/boot/bootru.inc b/kernel/trunk/boot/bootru.inc index f94f5ad36b..bab32a9996 100644 --- a/kernel/trunk/boot/bootru.inc +++ b/kernel/trunk/boot/bootru.inc @@ -10,7 +10,7 @@ $Revision$ d80x25_bottom: db 186,' Kolibri OS основана на Menuet OS и не предоставляет ' db 'никаких гарaнтий. ',186 - db 186,' Подробнее смотрите файл GNU.TXT ' + db 186,' Подробнее смотрите в файле COPYING.TXT ' db ' ',186 line_full_bottom d80x25_bottom_num = 3 diff --git a/kernel/trunk/hid/mousedrv.inc b/kernel/trunk/hid/mousedrv.inc index d9a5f4c75e..1468dfc870 100644 --- a/kernel/trunk/hid/mousedrv.inc +++ b/kernel/trunk/hid/mousedrv.inc @@ -322,18 +322,18 @@ yes_mouse_disable: movzx eax, word [MOUSE_X] movzx ebx, word [MOUSE_Y] mov ecx,[edx+0] ; mouse inside the area ? - add eax,14 + add eax,10 cmp eax,ecx jb no_mouse_disable - sub eax,14 + sub eax,10 add ecx,[edx+8] cmp eax,ecx jg no_mouse_disable mov ecx,[edx+4] - add ebx,20 + add ebx,14 cmp ebx,ecx jb no_mouse_disable - sub ebx,20 + sub ebx,14 add ecx,[edx+12] cmp ebx,ecx jg no_mouse_disable diff --git a/kernel/trunk/network/eth_drv/arp.inc b/kernel/trunk/network/eth_drv/arp.inc index 4d116d9ed9..dee6457cca 100644 --- a/kernel/trunk/network/eth_drv/arp.inc +++ b/kernel/trunk/network/eth_drv/arp.inc @@ -343,11 +343,29 @@ proc arp_table_manager stdcall uses ebx esi edi ecx edx,\ stosd stosw + + ; first, check destination IP to see if it is on 'this' network. + ; The test is: + ; if ( destIP & subnet_mask == stack_ip & subnet_mask ) + ; destination is local + ; else + ; destination is remote, so pass to gateway + + mov eax, [Index] ;eax=required IP + mov esi, eax + and esi, [subnet_mask] + mov ecx, [stack_ip] + and ecx, [subnet_mask] + cmp esi, ecx + je @f ;if we and target IP are located in the same network + mov eax, [gateway_ip] + mov [Index], eax + @@: + cmp dword[NumARP], 0 je .ip_to_mac_send_request ;if ARP-table not contain an entries, we have to request IP. ;EAX will be containing a zero, it's equal to ARP_NO_ENTRY - mov eax, [Index] ;eax=required IP mov ecx, dword[NumARP] imul esi, ecx, ARP_ENTRY_SIZE ;esi=current ARP-table size diff --git a/kernel/trunk/network/eth_drv/ethernet.inc b/kernel/trunk/network/eth_drv/ethernet.inc index c08d2e5254..b296f2ff7b 100644 --- a/kernel/trunk/network/eth_drv/ethernet.inc +++ b/kernel/trunk/network/eth_drv/ethernet.inc @@ -281,23 +281,6 @@ local MACAddress dp ? ;allocate 6 bytes in the stack cmp edx, 0xffffffff je .send ; If it is broadcast, just send - ; first, check destination IP to see if it is on 'this' network. - ; The test is: - ; if ( destIP & subnet_mask == stack_ip & subnet_mask ) - ; destination is local - ; else - ; destination is remote, so pass to gateway - - mov eax, edx - and eax, [subnet_mask] - mov ecx, [stack_ip] - and ecx, [subnet_mask] - cmp eax, ecx - je .local - - mov edx, [gateway_ip] - .local: - lea eax, [MACAddress] ;cause this is local variable stdcall arp_table_manager, ARP_TABLE_IP_TO_MAC, edx, eax ;opcode,IP,MAC_ptr - Get the MAC address. diff --git a/kernel/trunk/video/arrow.cur b/kernel/trunk/video/arrow.cur index 5e07900955..669962c722 100644 Binary files a/kernel/trunk/video/arrow.cur and b/kernel/trunk/video/arrow.cur differ