diff --git a/Asuro.iso b/Asuro.iso index af0ea898..e2fbc54b 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index ee3c1a34..cd1a4ea1 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 ee3c1a34..cd1a4ea1 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 7af67a50..0bd8c818 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index 739c3e37..5ab1f7bc 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 3c5dbf58..36316810 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index 21a77e45..c40ba6b7 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index 973945a5..5baebecd 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index d1018fce..276faede 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index aef28b04..43a627a0 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index d7be5c67..47bf77fb 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index de431417..54728150 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index 074c9b32..0194c83c 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index aa5506b8..2a1a5f2d 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index 20dea995..d7260008 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index 1ddc4035..3da9f804 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index d8b2b36c..abc5df49 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index 5e0af501..0cd8676c 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index b2c25f1b..a490b2fe 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index 1359d0c7..32d025da 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 3d88f1c4..977d2336 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 2006eaf7..50ae20ff 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 17ce2c5e..324c7eef 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 1b672354..29077112 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index 3e3ee304..3a4f183d 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index c97ab488..40cb840c 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 2d25bea0..06b19667 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 0b7ad72a..9a23c3f9 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index ed36a1d9..fb8c7eb0 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index 388e7f05..d365b89b 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 80911f4a..cab224d8 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/bios_data_area.ppu b/lib/bios_data_area.ppu index 14b9600c..9f6c7cab 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 7aa70af6..7526bc70 100644 Binary files a/lib/console.o and b/lib/console.o differ diff --git a/lib/console.ppu b/lib/console.ppu index 05f744a9..daf36900 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index 9095d64e..740e134c 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index 1134a0da..df7db343 100644 Binary files a/lib/eth2.ppu and b/lib/eth2.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index 8b99239c..c9e4a62a 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/gdt.ppu b/lib/gdt.ppu index 2cfbbb3c..5ecbb0c2 100644 Binary files a/lib/gdt.ppu and b/lib/gdt.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index 90ac4ced..be6e6b96 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index a14a98a8..586c7d8e 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 6d9021cd..02f5f323 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isr.ppu b/lib/isr.ppu index 64a9deae..50450550 100644 Binary files a/lib/isr.ppu and b/lib/isr.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 9b1fcf8d..7d44dae6 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index e633779c..49c197bb 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 48fbc963..27044604 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index ae432236..f2e8b856 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 234f7e89..99f49234 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index 01a8e028..cd7757b4 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index cd192377..32e1275f 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/memview.ppu b/lib/memview.ppu index db71e6b5..99bcc110 100644 Binary files a/lib/memview.ppu and b/lib/memview.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 33d9dda2..5b137f5e 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/net.ppu b/lib/net.ppu index 4cb35c0f..6b3a8a29 100644 Binary files a/lib/net.ppu and b/lib/net.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index 9f20813d..e04a4f39 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index a685b341..f0776905 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu index 518d8b7b..bdf989c0 100644 Binary files a/lib/scheduler.ppu and b/lib/scheduler.ppu differ diff --git a/lib/serial.ppu b/lib/serial.ppu index 2f600a74..cfaff7ee 100644 Binary files a/lib/serial.ppu and b/lib/serial.ppu differ diff --git a/lib/shell.ppu b/lib/shell.ppu index 37eb5c08..12ed8fba 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/splash.ppu b/lib/splash.ppu new file mode 100644 index 00000000..61666bfe Binary files /dev/null and b/lib/splash.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index d4cc2f2b..8cb98fe2 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index ace28d3f..1eaa4643 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index c086ec19..e8317790 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/testdriver.ppu b/lib/testdriver.ppu index 422a57fd..48661c03 100644 Binary files a/lib/testdriver.ppu and b/lib/testdriver.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index 962ad204..59e82b00 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/tss.ppu b/lib/tss.ppu index 03904103..22243ef8 100644 Binary files a/lib/tss.ppu and b/lib/tss.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index 65aec670..62525373 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index 508918c0..8f4d0462 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/console.pas b/src/console.pas index 57ca8cb3..427d8acf 100644 --- a/src/console.pas +++ b/src/console.pas @@ -193,6 +193,8 @@ procedure bordersEnabled(WND : HWND; enabled : boolean); procedure SetShellWindow(WND : HWND; b : boolean); function getWindowName(WND : HWND) : pchar; +procedure mouseEnabled(b : boolean); + procedure _MouseDown(); procedure _MouseUp(); procedure _MouseClick(left : boolean); @@ -311,7 +313,12 @@ var MovingWindow : uint32; UnhandledClick : Boolean = false; UnhandledClickLeft : Boolean = false; + MouseCursorEnabled : Boolean = true; +procedure mouseEnabled(b : boolean); +begin + MouseCursorEnabled:= b; +end; procedure _MouseDown(); begin @@ -674,7 +681,7 @@ begin end; end; end; - outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); + if MouseCursorEnabled then outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); end; procedure setMousePosition(x : uint32; y : uint32); diff --git a/src/include/asuro.pas b/src/include/asuro.pas index 2e0b98a0..124e6fac 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -3,11 +3,11 @@ unit asuro; interface const - VERSION = '1.0.0-642a'; + VERSION = '1.0.0-645a'; VERSION_MAJOR = '1'; VERSION_MINOR = '0'; VERSION_SUB = '0'; - REVISION = '642'; + REVISION = '645'; RELEASE = 'a'; implementation diff --git a/src/kernel.pas b/src/kernel.pas index 8110fe58..53f11f84 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -47,7 +47,8 @@ uses RTC, serial, shell, - memview; + memview, + splash; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; @@ -216,6 +217,9 @@ begin shell.init(); memview.init(); + { Init Splash } + splash.init(); + //console.writehexln(uint32(multibootinfo^.framebuffer_addr)); //tracer.push_trace('kmain.KEYHOOK'); //keyboard.hook(@temphook); diff --git a/src/prog/splash.pas b/src/prog/splash.pas new file mode 100644 index 00000000..fdcbc534 --- /dev/null +++ b/src/prog/splash.pas @@ -0,0 +1,86 @@ +unit splash; + +interface + +uses + console, keyboard; + +procedure init(); + +implementation + +var + Splash_Handle : HWND; + Tick : uint32; + Colors : uint32; + Loops : uint32 = 0; + +procedure quit(); +begin + closeWindow(Splash_Handle); + mouseEnabled(true); +end; + +procedure keypress(info : TKeyInfo); +begin + quit(); +end; + +procedure animate(); +var + Delta : uint32; + +begin + inc(Tick); + Delta:= Tick div 100; + Delta:= Delta mod 15; + ClearWNDEx(Splash_Handle, Colors); + if Delta > 1 then begin + setCursorPosWND(45, 27, Splash_Handle); + writestringExWND(' db ', Colors, Splash_Handle); + end; + if Delta > 2 then begin + setCursorPosWND(45, 28, Splash_Handle); + writestringExWND(' d88b ', Colors, Splash_Handle); + end; + if Delta > 3 then begin + setCursorPosWND(45, 29, Splash_Handle); + writestringExWND(' d8''`8b ', Colors, Splash_Handle); + end; + if Delta > 4 then begin + setCursorPosWND(45, 30, Splash_Handle); + writestringExWND(' d8'' `8b ,adPPYba, 88 88 8b,dPPYba, ,adPPYba,', Colors, Splash_Handle); + end; + if Delta > 5 then begin + setCursorPosWND(45, 31, Splash_Handle); + writestringExWND(' d8YaaaaY8b I8[ "" 88 88 88P'' "Y8 a8" "8a', Colors, Splash_Handle); + end; + if Delta > 6 then begin + setCursorPosWND(45, 32, Splash_Handle); + writestringExWND(' d8""""""""8b `"Y8ba, 88 88 88 8b d8', Colors, Splash_Handle); + end; + if Delta > 7 then begin + setCursorPosWND(45, 33, Splash_Handle); + writestringExWND(' d8'' `8b aa ]8I "8a, ,a88 88 "8a, ,a8"', Colors, Splash_Handle); + end; + if Delta > 8 then begin + setCursorPosWND(45, 34, Splash_Handle); + writestringExWND('d8'' `8b `"YbbdP"'' `"YbbdP''Y8 88 `"YbbdP"''', Colors, Splash_Handle); + end; + if Tick > 2100 then begin + quit(); + end; +end; + +procedure init(); +begin + Colors:= combineColors($FFFF, $5CDE); + Splash_Handle:= newWindow(0, 0, 159, 63, 'SPLASH'); + SetShellWindow(Splash_Handle, false); + BordersEnabled(Splash_Handle, false); + registerEventHandler(Splash_Handle, EVENT_DRAW, void(@animate)); + registerEventHandler(Splash_Handle, EVENT_KEY_PRESSED, void(@keypress)); + mouseEnabled(false); +end; + +end. \ No newline at end of file