diff --git a/Asuro.iso b/Asuro.iso index 923d4f3b..397b6c7a 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 5e883368..880f871a 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 5e883368..880f871a 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 fb904f75..0cbe51f4 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index 5372d3c7..461e6686 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 7ec0e9b0..804cfb70 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index 393f601f..4614bdf2 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index fb321a5f..a0d47c95 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index 2c74b213..b21a8f40 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index 4fdb170b..f23b18af 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index 9aa2de95..c7c2429c 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 6e5253a6..18e15752 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index 3ad0b7ce..57fcbce2 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 8072e4af..321ed48a 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index 87941e6a..2be705c3 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index 56c4fb0f..2546f6f1 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index 6cca51bb..aea33f3b 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index 0b60cade..f416e309 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index 6e51783f..d8c5c55c 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index 3ddef5f7..b35c5b13 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 362d760a..2bacfcc1 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 25ec827d..ba8a5f54 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 49d13d2e..080d9727 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 1f0f0c22..f65dc067 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index 97ec83ce..bb01dbd5 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index 2fd7687a..981c8de3 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 0bef30cc..c75365bd 100644 Binary files a/lib/TMR_0_ISR.ppu and b/lib/TMR_0_ISR.ppu differ diff --git a/lib/UIE.ppu b/lib/UIE.ppu index 62860a35..1abadfec 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index e7718f85..73dae1c5 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index e837eb83..b1fbb059 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 0efa9767..a0b8c9c9 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/console.ppu b/lib/console.ppu index 220b452b..4a6b3835 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index b78f1bf1..f75a4937 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index fff44511..9603ee81 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index 6605f394..ebab959a 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 3d38bc82..d74fb2ef 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 62d0c84d..817643ce 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isrmanager.ppu b/lib/isrmanager.ppu index 717571c4..352e81d8 100644 Binary files a/lib/isrmanager.ppu and b/lib/isrmanager.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index f9840ab5..2199dac6 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 90aaa25f..632a2ba9 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index b1b7ef23..55f719c8 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 1ee6493e..428434b6 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 167f506f..fefd6689 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index a83d8f82..55ae8e25 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index e440e2f2..a803fc99 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 5e8b2a27..0123a4c8 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index f5257f6b..0d2429ff 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index b8c8666b..22138c06 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index e9237dfb..90c1419b 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index 8460b2a5..d4fd1f59 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index df5b8c37..42617fec 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index 2375a027..302d9dee 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index c470a40a..49a62666 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index 17d3900b..e4289215 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/include/asuro.pas b/src/include/asuro.pas index c64102be..8fb9d73c 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -3,11 +3,11 @@ unit asuro; interface const - VERSION = '1.0.0-580a'; + VERSION = '1.0.0-583a'; VERSION_MAJOR = '1'; VERSION_MINOR = '0'; VERSION_SUB = '0'; - REVISION = '580'; + REVISION = '583'; RELEASE = 'a'; implementation diff --git a/src/include/util.pas b/src/include/util.pas index f879945e..ee48f336 100644 --- a/src/include/util.pas +++ b/src/include/util.pas @@ -44,6 +44,7 @@ procedure halt_and_catch_fire(); procedure halt_and_dont_catch_fire(); procedure BSOD(fault : pchar; info : pchar); procedure psleep(t : uint16); +procedure sleep(seconds : uint32); function BCDToUint8(bcd : uint8) : uint8; @@ -54,7 +55,30 @@ var implementation uses - console; + console, RTC; + +procedure sleep1; +var + DateTimeStart, DateTimeEnd : TDateTime; + + +begin + DateTimeStart:= getDateTime; + DateTimeEnd:= DateTimeStart; + while DateTimeStart.seconds = DateTimeEnd.seconds do begin + DateTimeEnd:= getDateTime; + end; +end; + +procedure sleep(seconds : uint32); +var + i : uint32; + +begin + for i:=1 to seconds do begin + sleep1; + end; +end; function INTE : boolean; var diff --git a/src/kernel.pas b/src/kernel.pas index 5ff0cc97..295479e3 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -86,72 +86,6 @@ begin pop_trace; end; -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - fgcolor32:= fgcolor OR (fgcolor SHL 8) OR (fgcolor SHL 16) OR (fgcolor SHL 24); - bgcolor32:= bgcolor OR (bgcolor SHL 8) OR (bgcolor SHL 16) OR (bgcolor SHL 24); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; -end; - -procedure GraphicsTesting(); -var - i : uint32; - z : uint32; - atmp : puint32; - fb : puint32; - val : uint32; - test : pchar = 'helloworld'; - mask : puint32; - -begin - fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); - kpalloc(uint32(fb)); - - outputChar('T', 0, 0, $FFFF, $0000); - outputChar('E', 0, 1, $FFFF, $0000); - outputChar('S', 0, 2, $FFFF, $0000); - outputChar('T', 0, 3, $FFFF, $0000); - outputChar('E', 1, 0, $FFFF, $0000); - outputChar('S', 2, 0, $FFFF, $0000); - outputChar('T', 3, 0, $FFFF, $0000); - - {mask:= puint32(@Std_Mask[uint32(test[0]) * (16 * 8)]); - for i:=0 to 15 do begin - fb[(i*640)+0]:= mask[(i*4)+0]; - fb[(i*640)+1]:= mask[(i*4)+1]; - fb[(i*640)+2]:= mask[(i*4)+2]; - fb[(i*640)+3]:= mask[(i*4)+3]; - end;} - - //for z:=0 to 15 do begin - // for i:=0 to 8 do begin - // val:= $0000; - // //if ((Std_Font[(37*16)+z] SHR i) AND $1) = $1 then val:= $FFFF; - // - // //if ((Std_Font[(38 * 16)+z]) AND ($1 SHL ((8-i)+1))) > 0 then val:= $FFFF; - // //if val <> 0 then fb[(z * 1280)+i]:= val; - // end; - //end; - while true do begin - end; -end; - procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; var c : uint8; @@ -209,16 +143,14 @@ begin irq.init(); isrmanager.init(); faults.init(); + RTC.init(); pmemorymanager.init(); vmemorymanager.init(); lmemorymanager.init(); tss.init(); scheduler.init(); - { Graphics Mode Test Stuff } - //GraphicsTesting(); { Console Init } - //windowmanager.init(); console.init(); { Call Tracer } @@ -232,8 +164,6 @@ begin storagemanagement.init(); tracer.pop_trace; - RTC.init(); - { Hook Timer for Ticks } tracer.push_trace('kmain.TMR'); STI; @@ -273,30 +203,19 @@ begin console.setdefaultattribute(console.combinecolors($17E0, $0000)); console.writestringln('Asuro Booted Correctly!'); console.setdefaultattribute(console.combinecolors($FFFF, $0000)); - //if INTE then console.writestringln('Interrupts are enabled.') else console.writestringln('Interrupts are disabled.'); console.writestringln(''); console.writestringln('Press any key to boot in to Asuro Terminal...'); tracer.pop_trace; - //writeint(DateTime.Hours); - //writestring(':'); - //writeintln(DateTime.Minutes); - tracer.push_trace('kmain.KEYHOOK'); keyboard.hook(@temphook); tracer.pop_trace; tracer.push_trace('kmain.END'); - //outputCharToScreenSpace(char(0), 10, 10, $FFFF); - while true do begin console.redrawWindows; - //windowmanager.redraw(); - //mouse.DrawCursor(); end; - - //util.halt_and_dont_catch_fire; end; end.