diff --git a/Asuro.iso b/Asuro.iso index 1aa5a570..5f70153b 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 9e0f6d47..50506ce5 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 9e0f6d47..50506ce5 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/bios_data_area.ppu b/lib/bios_data_area.ppu index 9a090a01..526b336e 100644 Binary files a/lib/bios_data_area.ppu and b/lib/bios_data_area.ppu differ diff --git a/lib/console.o b/lib/console.o index 951309c4..95001e8f 100644 Binary files a/lib/console.o and b/lib/console.o differ diff --git a/lib/console.ppu b/lib/console.ppu index 2c35851f..16d5fec2 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/gdt.ppu b/lib/gdt.ppu index d1e4ddfd..3b2d2cde 100644 Binary files a/lib/gdt.ppu and b/lib/gdt.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index b398cb01..b5aabbfc 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/isr.ppu b/lib/isr.ppu index ef950b1c..336c27e9 100644 Binary files a/lib/isr.ppu and b/lib/isr.ppu differ diff --git a/lib/isr0.ppu b/lib/isr0.ppu index f2c4616b..8c46808f 100644 Binary files a/lib/isr0.ppu and b/lib/isr0.ppu differ diff --git a/lib/kernel.o b/lib/kernel.o index dc62279a..c27a5e71 100644 Binary files a/lib/kernel.o and b/lib/kernel.o differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 034b5a9f..174b383f 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 6895b552..e86ea236 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index edcc2856..b2cda7c3 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpkernel.a b/lib/libpkernel.a index 992d5272..919cd91a 100644 Binary files a/lib/libpkernel.a and b/lib/libpkernel.a differ diff --git a/lib/util.ppu b/lib/util.ppu index f93c6525..a21b5706 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/src/bios_data_area.pas b/src/bios_data_area.pas index c175b83d..0e933a76 100644 --- a/src/bios_data_area.pas +++ b/src/bios_data_area.pas @@ -38,6 +38,13 @@ type const BDA : PBDA = PBDA($0400); +procedure tick_update(data : void); + implementation +procedure tick_update(data : void); +begin + BDA^.Ticks:= BDA^.Ticks + 1; +end; + end. diff --git a/src/console.pas b/src/console.pas index bdb120e0..9a4b3406 100644 --- a/src/console.pas +++ b/src/console.pas @@ -15,7 +15,7 @@ uses util, bios_data_area; -const DEBUG = FALSE; +var DEBUG : Boolean; type TColor = ( Black = $0, @@ -103,6 +103,7 @@ var procedure init(); [public, alias: 'console_init']; Begin + Debug:= False; Console_Properties.Default_Attribute:= console.combinecolors(White, Black); console.clear(); end; @@ -373,7 +374,7 @@ begin end; Console_Cursor.X:= 0; console._update_cursor; - if DEBUG then psleep(500); + if Debug then psleep(1000); end; procedure _newline(); [public, alias: '_console_newline']; diff --git a/src/kernel.pas b/src/kernel.pas index 0b4a21b3..854ad05d 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -9,7 +9,7 @@ uses idt, isr, irq, - isr0, + isr32, console, bios_data_area, keyboard; @@ -17,17 +17,6 @@ uses procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; implementation - - -procedure test2(data : void); -begin - console.writestringln('It works 2.'); -end; - -procedure test(data : void); -begin - console.writestringln('It works.'); -end; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; var @@ -58,6 +47,10 @@ begin STI; + isr32.hook(uint32(@bios_data_area.tick_update)); + + console.debug:= true; + asm MOV dds, CS end; @@ -85,11 +78,6 @@ begin console.writestringln('MB'); console.setdefaultattribute(console.combinecolors(lYellow, Black)); - isr0.hook(uint32(@test)); - isr0.hook(uint32(@test2)); - isr0.unhook(uint32(@test)); - asm INT 0 end; - util.halt_and_dont_catch_fire; end; diff --git a/src/util.pas b/src/util.pas index b1d13235..f8bfee10 100644 --- a/src/util.pas +++ b/src/util.pas @@ -13,6 +13,9 @@ unit util; interface +uses + bios_data_area; + procedure CLI(); procedure STI(); function hi(b : uint8) : uint8; @@ -31,6 +34,9 @@ procedure psleep(t : uint16); implementation +uses + console; + function hi(b : uint8) : uint8; [public, alias: 'util_hi']; begin hi:= (b AND $F0) SHR 4; @@ -58,13 +64,13 @@ end; procedure psleep(t : uint16); var - i : uint32; - t1, t2 : uint32; + t1, t2 : uint16; begin - for i:=0 to t*t*t do begin - t1:=i; - t2:=t1+4444+i; + t1:= BDA^.Ticks; + t2:= BDA^.Ticks; + while t2-t1 < t do begin + t2:= BDA^.Ticks; end; end;