diff --git a/Asuro.iso b/Asuro.iso index e45646a9..2cea462e 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index e6aa5500..31eb380d 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 e6aa5500..31eb380d 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 de63081e..6db025ff 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 794e474f..e85dcba1 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index 5f7a15e4..ac9d09a5 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 1b3f02c1..ab1e55d9 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isr0.ppu b/lib/isr0.ppu index 5f758c18..15ec5577 100644 Binary files a/lib/isr0.ppu and b/lib/isr0.ppu differ diff --git a/lib/isr1.ppu b/lib/isr1.ppu index 616fe89e..6e8dd7b7 100644 Binary files a/lib/isr1.ppu and b/lib/isr1.ppu differ diff --git a/lib/isr10.ppu b/lib/isr10.ppu index d1d7eba3..2baab8d0 100644 Binary files a/lib/isr10.ppu and b/lib/isr10.ppu differ diff --git a/lib/isr11.ppu b/lib/isr11.ppu index 4740ef31..74ca31d4 100644 Binary files a/lib/isr11.ppu and b/lib/isr11.ppu differ diff --git a/lib/isr12.ppu b/lib/isr12.ppu index 68187739..0f2dcfcf 100644 Binary files a/lib/isr12.ppu and b/lib/isr12.ppu differ diff --git a/lib/isr13.ppu b/lib/isr13.ppu index bf28ce92..493c18b1 100644 Binary files a/lib/isr13.ppu and b/lib/isr13.ppu differ diff --git a/lib/isr14.ppu b/lib/isr14.ppu index 923cd258..1e5f8c1b 100644 Binary files a/lib/isr14.ppu and b/lib/isr14.ppu differ diff --git a/lib/isr15.ppu b/lib/isr15.ppu index 80751d43..d2de3a3c 100644 Binary files a/lib/isr15.ppu and b/lib/isr15.ppu differ diff --git a/lib/isr16.ppu b/lib/isr16.ppu index e328e95f..96972616 100644 Binary files a/lib/isr16.ppu and b/lib/isr16.ppu differ diff --git a/lib/isr17.ppu b/lib/isr17.ppu index f6068802..2df6eecb 100644 Binary files a/lib/isr17.ppu and b/lib/isr17.ppu differ diff --git a/lib/isr18.ppu b/lib/isr18.ppu index a961a149..d30ff088 100644 Binary files a/lib/isr18.ppu and b/lib/isr18.ppu differ diff --git a/lib/isr2.ppu b/lib/isr2.ppu index 791cdf79..a71deadf 100644 Binary files a/lib/isr2.ppu and b/lib/isr2.ppu differ diff --git a/lib/isr3.ppu b/lib/isr3.ppu index 12d2f7e7..546ce84e 100644 Binary files a/lib/isr3.ppu and b/lib/isr3.ppu differ diff --git a/lib/isr32.ppu b/lib/isr32.ppu index ed8146d3..dcaf3f95 100644 Binary files a/lib/isr32.ppu and b/lib/isr32.ppu differ diff --git a/lib/isr33.ppu b/lib/isr33.ppu index 9f617c1d..d3686b88 100644 Binary files a/lib/isr33.ppu and b/lib/isr33.ppu differ diff --git a/lib/isr4.ppu b/lib/isr4.ppu index 9fe47138..76036240 100644 Binary files a/lib/isr4.ppu and b/lib/isr4.ppu differ diff --git a/lib/isr40.ppu b/lib/isr40.ppu index cd156e47..b502d4fc 100644 Binary files a/lib/isr40.ppu and b/lib/isr40.ppu differ diff --git a/lib/isr44.ppu b/lib/isr44.ppu index 7e7fa250..463e7aa0 100644 Binary files a/lib/isr44.ppu and b/lib/isr44.ppu differ diff --git a/lib/isr5.ppu b/lib/isr5.ppu index bcd0190b..86a259d4 100644 Binary files a/lib/isr5.ppu and b/lib/isr5.ppu differ diff --git a/lib/isr6.ppu b/lib/isr6.ppu index b5e0290e..6fb65ea6 100644 Binary files a/lib/isr6.ppu and b/lib/isr6.ppu differ diff --git a/lib/isr7.ppu b/lib/isr7.ppu index 346a2023..abb7a931 100644 Binary files a/lib/isr7.ppu and b/lib/isr7.ppu differ diff --git a/lib/isr8.ppu b/lib/isr8.ppu index 64a4fab8..915817e5 100644 Binary files a/lib/isr8.ppu and b/lib/isr8.ppu differ diff --git a/lib/isr9.ppu b/lib/isr9.ppu index 6b533b59..cd3fdaae 100644 Binary files a/lib/isr9.ppu and b/lib/isr9.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index fb9fd3b4..c9519b14 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 310f11e3..3ade3297 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 480251f9..bb523729 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 4dfb2fb5..1b203045 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index a76df528..c1958e2c 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index caca6bfc..c269de79 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 367f13ab..f4c5b532 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index 301518ad..8ca9c164 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 705ed0a3..68094c83 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 6a5bc704..d7fe13dc 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index e86570f7..38855212 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/util.pas b/src/util.pas index dff19e6c..7480ed11 100644 --- a/src/util.pas +++ b/src/util.pas @@ -19,19 +19,25 @@ uses procedure CLI(); procedure STI(); procedure GPF(); + function hi(b : uint8) : uint8; function lo(b : uint8) : uint8; function switchendian(b : uint8) : uint8; +function getWord(i : uint32; hi : boolean) : uint16; +function getByte(i : uint32; index : uint8) : uint8; + procedure outb(port : uint16; val : uint8); procedure outw(port : uint16; val : uint16); procedure outl(port : uint16; val : uint32); -procedure halt_and_catch_fire(); -procedure halt_and_dont_catch_fire(); function inb(port : uint16) : uint8; function inw(port : uint16) : uint16; function inl(port : uint16) : uint32; + procedure memset(location : uint32; value : uint8; size : uint32); procedure memcpy(source : uint32; dest : uint32; size : uint32); + +procedure halt_and_catch_fire(); +procedure halt_and_dont_catch_fire(); procedure psleep(t : uint16); var @@ -203,4 +209,22 @@ begin end; end; +function getWord(i : uint32; hi : boolean) : uint16; +begin + if hi then begin + getWord:= (i AND $FFFF0000) SHR 16; + end else begin + getWord:= (i AND $0000FFFF); + end; +end; + +function getByte(i : uint32; index : uint8) : uint8; +var + mask : uint32; + +begin + mask:= ($FF SHL (8*index)); + getByte:= (i AND mask) SHR (8*index); +end; + end.