diff --git a/Asuro.iso b/Asuro.iso index ab781191..147bd455 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 9fd93488..b7356291 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 9fd93488..b7356291 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/console.ppu b/lib/console.ppu index 74363dea..2a8f1bc1 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index d6fe9503..07ad4788 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index c6cca14d..fca17a82 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isr0.ppu b/lib/isr0.ppu index e89e9ad6..2dde928f 100644 Binary files a/lib/isr0.ppu and b/lib/isr0.ppu differ diff --git a/lib/isr1.ppu b/lib/isr1.ppu index a23058fd..732df46c 100644 Binary files a/lib/isr1.ppu and b/lib/isr1.ppu differ diff --git a/lib/isr10.ppu b/lib/isr10.ppu index 9b5a1b88..0d3982f5 100644 Binary files a/lib/isr10.ppu and b/lib/isr10.ppu differ diff --git a/lib/isr11.ppu b/lib/isr11.ppu index ca654e91..1282659b 100644 Binary files a/lib/isr11.ppu and b/lib/isr11.ppu differ diff --git a/lib/isr12.ppu b/lib/isr12.ppu index ee81d54c..b6e34812 100644 Binary files a/lib/isr12.ppu and b/lib/isr12.ppu differ diff --git a/lib/isr13.ppu b/lib/isr13.ppu index b4369749..04c91d05 100644 Binary files a/lib/isr13.ppu and b/lib/isr13.ppu differ diff --git a/lib/isr14.ppu b/lib/isr14.ppu index d7947cb4..bdd9cd39 100644 Binary files a/lib/isr14.ppu and b/lib/isr14.ppu differ diff --git a/lib/isr15.ppu b/lib/isr15.ppu index ed43f454..03f68c7a 100644 Binary files a/lib/isr15.ppu and b/lib/isr15.ppu differ diff --git a/lib/isr16.ppu b/lib/isr16.ppu index 8e39a322..65e81bf7 100644 Binary files a/lib/isr16.ppu and b/lib/isr16.ppu differ diff --git a/lib/isr17.ppu b/lib/isr17.ppu index 36e621c5..f1d1a9b0 100644 Binary files a/lib/isr17.ppu and b/lib/isr17.ppu differ diff --git a/lib/isr18.ppu b/lib/isr18.ppu index 4439aa49..720459cf 100644 Binary files a/lib/isr18.ppu and b/lib/isr18.ppu differ diff --git a/lib/isr2.ppu b/lib/isr2.ppu index 3f3b5ac8..3e5e13ea 100644 Binary files a/lib/isr2.ppu and b/lib/isr2.ppu differ diff --git a/lib/isr3.ppu b/lib/isr3.ppu index a244486d..725c0378 100644 Binary files a/lib/isr3.ppu and b/lib/isr3.ppu differ diff --git a/lib/isr32.ppu b/lib/isr32.ppu index 42ea1f01..f0aba139 100644 Binary files a/lib/isr32.ppu and b/lib/isr32.ppu differ diff --git a/lib/isr33.ppu b/lib/isr33.ppu index 71d3b4d9..b4a524fa 100644 Binary files a/lib/isr33.ppu and b/lib/isr33.ppu differ diff --git a/lib/isr4.ppu b/lib/isr4.ppu index 07921b8b..0a5d950f 100644 Binary files a/lib/isr4.ppu and b/lib/isr4.ppu differ diff --git a/lib/isr40.ppu b/lib/isr40.ppu index c82b5acb..9537f1eb 100644 Binary files a/lib/isr40.ppu and b/lib/isr40.ppu differ diff --git a/lib/isr5.ppu b/lib/isr5.ppu index 3e0386cb..6b1fa541 100644 Binary files a/lib/isr5.ppu and b/lib/isr5.ppu differ diff --git a/lib/isr6.ppu b/lib/isr6.ppu index a75d23f0..72663fb6 100644 Binary files a/lib/isr6.ppu and b/lib/isr6.ppu differ diff --git a/lib/isr7.ppu b/lib/isr7.ppu index 083e423f..7a99a337 100644 Binary files a/lib/isr7.ppu and b/lib/isr7.ppu differ diff --git a/lib/isr8.ppu b/lib/isr8.ppu index 2d948be8..05899f7d 100644 Binary files a/lib/isr8.ppu and b/lib/isr8.ppu differ diff --git a/lib/isr9.ppu b/lib/isr9.ppu index 5978b178..1e6811ac 100644 Binary files a/lib/isr9.ppu and b/lib/isr9.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index c14d3a6d..7638a71e 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 5eaacf0e..100b457e 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index e5ef38d8..c4235bcc 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index b0894276..ffbf49cf 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index b686df07..629c1c92 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/memorymanager.ppu b/lib/memorymanager.ppu index f51fd2fb..8552070d 100644 Binary files a/lib/memorymanager.ppu and b/lib/memorymanager.ppu differ diff --git a/lib/paging.ppu b/lib/paging.ppu index 97047017..74f2d03d 100644 Binary files a/lib/paging.ppu and b/lib/paging.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 4187a1c4..20e05682 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/src/kernel.pas b/src/kernel.pas index ffc46138..5aee4dd9 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -54,6 +54,9 @@ begin memorymanager.init(); scheduler.init(); + pint:= puint32(0); + pint^:= 10; + STI; isr32.hook(uint32(@bios_data_area.tick_update)); @@ -67,6 +70,12 @@ begin //drivers keyboard.init(keyboard_layout); + if PageDirectory[KERNEL_PAGE_NUMBER].Present then begin + console.writestringln('!'); + end else begin + console.writestringln('?'); + end; + while true do begin end; asm MOV dds, CS diff --git a/src/paging.pas b/src/paging.pas index a8e7294e..6123859c 100644 --- a/src/paging.pas +++ b/src/paging.pas @@ -6,20 +6,32 @@ type PPageTableEntry = ^TPageTableEntry; TPageTableEntry = bitpacked record - Present, Writable, UserMode, WriteThrough, - NotCacheable, Accessed, Dirty, AttrIndex, + Present, + Writable, + UserMode, + WriteThrough, + NotCacheable, + Accessed, + Dirty, + AttrIndex, GlobalPage: Boolean; - Avail: UBit3; - FrameAddr: UBit20; + Available: UBit3; + FrameAddress: UBit20; end; PPageDirEntry = ^TPageDirEntry; TPageDirEntry = bitpacked record - Present, Writable, UserMode, WriteThrough, - NotCacheable, Accessed, Reserved, PageSize, + Present, + Writable, + UserMode, + WriteThrough, + NotCacheable, + Accessed, + Reserved, + PageSize, GlobalPage: Boolean; - Avail: UBit3; - TableAddr: UBit20; + Available: UBit3; + TableAddress: UBit20; end; TPageDirectory = Array[1..1024] of TPageDirEntry; diff --git a/src/util.pas b/src/util.pas index 7c625ab4..3f5d7351 100644 --- a/src/util.pas +++ b/src/util.pas @@ -32,7 +32,8 @@ function inl(port : uint16) : uint32; procedure memset(location : uint32; value : uint8; size : uint32); procedure psleep(t : uint16); -procedure endptr(); external '__end' name '__end'; +var + endptr : uint32; external name '__end'; implementation @@ -174,7 +175,7 @@ var i : uint32; begin - for i:=0 to size do begin + for i:=0 to size-1 do begin loc:= puint8(location + i); loc^:= value; end;