diff --git a/Asuro.iso b/Asuro.iso index e177b60f..454af539 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 596fe4b6..1042a787 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 596fe4b6..1042a787 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/ACE.ppu b/lib/ACE.ppu index 1baa2f06..b038e1d6 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index 8a1fbb5e..944ea193 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 7908ebf4..0cb77a81 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index dddc4d02..1e0670bd 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index 4d47d189..e61e1beb 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index 1e7df6ec..e344e500 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index 7b2353a2..c0d53974 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index 2991fea6..de4061f4 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 03bc3721..ad2a7318 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/EHCI.ppu b/lib/EHCI.ppu index 2f871546..3050b1b4 100644 Binary files a/lib/EHCI.ppu and b/lib/EHCI.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index e654139f..cda5f150 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 51aef25f..b4e1505b 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index 95f46cc2..fbcd22ad 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index 3f7eb681..f25f4f1e 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index 7867d345..6a151f1e 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index 3c51ce42..07d78d15 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index 7f8423af..cf5101a3 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OHCI.ppu b/lib/OHCI.ppu index cd17906b..bce9f75a 100644 Binary files a/lib/OHCI.ppu and b/lib/OHCI.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index a4248834..bc30139b 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 86f47f4e..61779621 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 33215eda..e241dd03 100644 Binary files a/lib/PF.ppu and b/lib/PF.ppu differ diff --git a/lib/PS2_KEYBOARD_ISR.ppu b/lib/PS2_KEYBOARD_ISR.ppu index 5555c4b9..7af4a014 100644 Binary files a/lib/PS2_KEYBOARD_ISR.ppu and b/lib/PS2_KEYBOARD_ISR.ppu differ diff --git a/lib/RTC.ppu b/lib/RTC.ppu index 690a930e..717fc443 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index a78c7ab1..5a25e037 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index 6133030a..5b44d8a8 100644 Binary files a/lib/SNPE.ppu and b/lib/SNPE.ppu differ diff --git a/lib/TMR_0_ISR.ppu b/lib/TMR_0_ISR.ppu index 864efdc7..d7ec8ae1 100644 Binary files a/lib/TMR_0_ISR.ppu and b/lib/TMR_0_ISR.ppu differ diff --git a/lib/UHCI.ppu b/lib/UHCI.ppu index fad0e3b1..23714b50 100644 Binary files a/lib/UHCI.ppu and b/lib/UHCI.ppu differ diff --git a/lib/UIE.ppu b/lib/UIE.ppu index 0d258ed6..692f639e 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index b70f35c5..5caad8ff 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/XHCI.ppu b/lib/XHCI.ppu index 136936ee..897d5eb1 100644 Binary files a/lib/XHCI.ppu and b/lib/XHCI.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index 981cea91..b96ef865 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index ef6442b0..c901dfea 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 131ba5d1..16a1cc3a 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/cpu.ppu b/lib/cpu.ppu index 030b3471..b3dbfad5 100644 Binary files a/lib/cpu.ppu and b/lib/cpu.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index db1fea73..dc0e2257 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index b4db050c..6f67f296 100644 Binary files a/lib/eth2.ppu and b/lib/eth2.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index 431257e7..53c609bf 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index 9978973d..5f865cbf 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index b7728e6c..7c1ce197 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 9b90e504..8a0df563 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isrmanager.ppu b/lib/isrmanager.ppu index 04cdea4a..f519a975 100644 Binary files a/lib/isrmanager.ppu and b/lib/isrmanager.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 4188c7ba..8a77ec91 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 4dc0aaf4..e261543e 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 43d3c6d1..9844e833 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index e9254778..55663216 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 26ee6611..17b58524 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index c721e0b8..26f83f09 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index f5860866..21a401e4 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/memview.ppu b/lib/memview.ppu index 3fbc8f6c..eac2397e 100644 Binary files a/lib/memview.ppu and b/lib/memview.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index b5850640..8ed11a8d 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/net.ppu b/lib/net.ppu index 30edb273..550c5e01 100644 Binary files a/lib/net.ppu and b/lib/net.ppu differ diff --git a/lib/netlog.ppu b/lib/netlog.ppu index 139c892a..ba2e55e8 100644 Binary files a/lib/netlog.ppu and b/lib/netlog.ppu differ diff --git a/lib/nettypes.ppu b/lib/nettypes.ppu index 54a50249..47460cb0 100644 Binary files a/lib/nettypes.ppu and b/lib/nettypes.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index 05d15846..53e48575 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index e0026946..34326464 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/serial.ppu b/lib/serial.ppu index 7ed78800..74daf61a 100644 Binary files a/lib/serial.ppu and b/lib/serial.ppu differ diff --git a/lib/shell.ppu b/lib/shell.ppu index a7ef9fbb..a130afdd 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index 3248f719..1d8e6d99 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index 2cf61e3b..b2479cfa 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 3d9416b0..e45c0801 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index cb29e758..4687d23c 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index ac436989..043bc1ff 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index 6042993b..eed426b3 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/driver/net/include/nettypes.pas b/src/driver/net/include/nettypes.pas index f836822a..59447401 100644 --- a/src/driver/net/include/nettypes.pas +++ b/src/driver/net/include/nettypes.pas @@ -117,6 +117,7 @@ type const BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF); NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00); + FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81); implementation diff --git a/src/driver/net/l2/eth2.pas b/src/driver/net/l2/eth2.pas index fac24862..f92ab169 100644 --- a/src/driver/net/l2/eth2.pas +++ b/src/driver/net/l2/eth2.pas @@ -56,9 +56,10 @@ begin memcpy(uint32(@hdr), uint32(buffer), sizeof(TEthernetHeader)); memcpy(uint32(p_data), uint32(buffer)+sizeof(TEthernetHeader), p_len); FCS:= puint32((uint32(buffer) + size) - 4); - FCS^:= crc32(puint8(buffer), size - 5); + FCS^:= switchendian32(crc32(puint8(buffer), size - 4)); //writehexlnWND(FCS^, getTerminalHWND); net.send(buffer, size); + //printmemoryWND(uint32(buffer), size, 16, ' ', true, getTerminalHWND); kfree(buffer); end; end; diff --git a/src/driver/net/l3/arp.pas b/src/driver/net/l3/arp.pas index e082b638..568ebad2 100644 --- a/src/driver/net/l3/arp.pas +++ b/src/driver/net/l3/arp.pas @@ -95,6 +95,7 @@ begin hdr^.Operation_Hi:= op SHR 8; hdr^.Operation_Lo:= op AND $FF; copyMAC(@p_context^.MAC.Source[0], @hdr^.Source_Hardware[0]); + //copyMAC(@FORCE_MAC[0], @hdr^.Source_Hardware[0]); copyIPv4(@p_context^.IP.Source[0], @hdr^.Source_Protocol[0]); copyMAC(@p_context^.MAC.Destination[0], @hdr^.Destination_Hardware[0]); copyIPv4(@p_context^.IP.Destination[0], @hdr^.Destination_Protocol[0]); diff --git a/src/driver/net/l3/ipv4.pas b/src/driver/net/l3/ipv4.pas index 6a6af49f..4f8956c9 100644 --- a/src/driver/net/l3/ipv4.pas +++ b/src/driver/net/l3/ipv4.pas @@ -118,6 +118,7 @@ begin CopyIPv4(@Config.Gateway[0], @context^.IP.Destination[0]); CopyIPv4(@Config.Address[0], @context^.IP.Source[0]); CopyMAC(GetMAC, @context^.MAC.Source[0]); + //copyMAC(@FORCE_MAC[0], @context^.MAC.Source[0]); CopyMAC(@NULL_MAC[0], @context^.MAC.Destination[0]); arp.send($1, $0800, $1, context); freePacketContext(context); diff --git a/src/include/asuro.pas b/src/include/asuro.pas index a4e7d2ce..5b8d4c71 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -9,14 +9,14 @@ const VERSION_SUB = '1'; REVISION = '677'; RELEASE = 'ia'; - LINE_COUNT = 28005; + LINE_COUNT = 28002; FILE_COUNT = 90; DRIVER_COUNT = 32; FPC_VERSION = '2.6.4'; NASM_VERSION = '2.10.09'; MAKE_VERSION = '3.81'; COMPILE_DATE = '10/05/18'; - COMPILE_TIME = '15:32:53'; + COMPILE_TIME = '16:35:27'; implementation diff --git a/src/include/util.pas b/src/include/util.pas index 5c82d069..702ef0cd 100644 --- a/src/include/util.pas +++ b/src/include/util.pas @@ -24,6 +24,7 @@ procedure GPF(); function hi(b : uint8) : uint8; function lo(b : uint8) : uint8; function switchendian(b : uint8) : uint8; +function switchendian32(b : uint32) : uint32; function getWord(i : uint32; hi : boolean) : uint16; function getByte(i : uint32; index : uint8) : uint8; @@ -69,6 +70,14 @@ implementation uses console, RTC, cpu; +function switchendian32(b : uint32) : uint32; +begin + switchendian32:= ((b AND $FF000000) SHR 24) OR + ((b AND $00FF0000) SHR 8) OR + ((b AND $0000FF00) SHL 8) OR + ((b AND $000000FF) SHL 24); +end; + function getESP : uint32; begin asm