diff --git a/Asuro.iso b/Asuro.iso index 7c85dcd7..85cbc758 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 543bf993..b7812af1 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 543bf993..b7812af1 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 6db025ff..c6b11de9 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 7fff212c..027a8dce 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 44cf50e6..65454e97 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 87849284..4f3db07b 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index c729a056..a5e15481 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index f4c5b532..5bcaaee9 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/src/driver/PCI.pas b/src/driver/PCI.pas index 09509f24..a8b99638 100644 --- a/src/driver/PCI.pas +++ b/src/driver/PCI.pas @@ -99,16 +99,17 @@ end; procedure scanBus(bus : uint8); var - i : uint16; - ii : uint16; + slot : uint16; + func : uint16; result : boolean; + begin - for i := 0 to 31 do begin - result := loadDeviceConfig(bus, i, 0); + for slot := 0 to 31 do begin + result := loadDeviceConfig(bus, slot, 0); if result = true then begin if devices[device_count - 1].header_type and $40 = 40 then begin - for ii := 1 to 8 do begin - loadDeviceConfig(bus, i, ii); + for func := 1 to 8 do begin + loadDeviceConfig(bus, slot, func); psleep(1000); end; end; @@ -119,6 +120,7 @@ end; procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8); var packet : uint32; + begin packet := ($1 shl 31); packet := packet or (bus shl 16); @@ -133,6 +135,7 @@ procedure loadBusConfig(bus : uint8; slot : uint8; func : uint8; device : TPCI_D var busT : TPCI_Device_Bridge; data : uint32; + begin busT.device_id := device.device_id; @@ -210,6 +213,7 @@ function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean; var device : TPCI_Device; data : uint32; + begin loadDeviceConfig := false; @@ -311,6 +315,7 @@ function getDeviceInfo(class_code : uint8; subclass_code : uint8; count : intptr var i : uint16; devices_out : array[0..31] of TPCI_Device; + begin count^ := 0; for i:=0 to device_count do begin