summaryrefslogtreecommitdiffhomepage
path: root/Private
diff options
context:
space:
mode:
Diffstat (limited to 'Private')
-rw-r--r--Private/Builtins/Toolbox/Toolbox.hxx77
-rw-r--r--Private/Builtins/Toolbox/Utils.hxx70
-rw-r--r--Private/KernelRsrc.rc25
-rw-r--r--Private/NewKit/Application.hxx2
-rw-r--r--Private/Root/Boot/kernel-logo.icobin0 -> 150570 bytes
-rw-r--r--Private/Root/Boot/kernel-logo.svg10
-rw-r--r--Private/makefile1
7 files changed, 106 insertions, 79 deletions
diff --git a/Private/Builtins/Toolbox/Toolbox.hxx b/Private/Builtins/Toolbox/Toolbox.hxx
index f831acb5..2ac23267 100644
--- a/Private/Builtins/Toolbox/Toolbox.hxx
+++ b/Private/Builtins/Toolbox/Toolbox.hxx
@@ -8,11 +8,72 @@
#include <NewKit/Defines.hpp>
-EXTERN_C NewOS::Void _hal_init_mouse();
-EXTERN_C NewOS::Boolean _hal_draw_mouse();
-EXTERN_C NewOS::Void _hal_handle_mouse();
-EXTERN_C NewOS::Boolean _hal_left_button_pressed();
-EXTERN_C NewOS::Boolean _hal_middle_button_pressed();
-EXTERN_C NewOS::Boolean _hal_right_button_pressed();
-
-#include <Builtins/Toolbox/Utils.hxx>
+EXTERN_C NewOS::Void _hal_init_mouse();
+EXTERN_C NewOS::Boolean _hal_draw_mouse();
+EXTERN_C NewOS::Void _hal_handle_mouse();
+EXTERN_C NewOS::Boolean _hal_left_button_pressed();
+EXTERN_C NewOS::Boolean _hal_middle_button_pressed();
+EXTERN_C NewOS::Boolean _hal_right_button_pressed();
+
+#define ToolboxInitRsrc() NewOS::SizeT uA = 0
+
+#define kClearClr RGB(00, 00, 00)
+
+#define ToolboxClearRsrc() uA = 0
+
+/// @brief Draws a resource.
+#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \
+ uA = 0; \
+ \
+ for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
+ for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
+ if (ImgPtr[uA] == 0) { \
+ *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) |= ImgPtr[uA]; \
+ } else { \
+ *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) = ImgPtr[uA]; \
+ } \
+ \
+ ++uA; \
+ } \
+ }
+
+
+/// @brief Cleans a resource.
+#define ToolboxClearZone(_Height, _Width, BaseX, BaseY) \
+ \
+ for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
+ for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
+ *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) = kClearClr; \
+ } \
+ }
+
+
+/// @brief Draws inside a zone.
+#define ToolboxDrawZone(_Clr, _Height, _Width, BaseX, BaseY) \
+ \
+ for (NewOS::SizeT i = BaseX; i < _Width + BaseX; ++i) { \
+ for (NewOS::SizeT u = BaseY; u < _Height + BaseY; ++u) { \
+ *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
+ 4 * \
+ kHandoverHeader->f_GOP \
+ .f_PixelPerLine * \
+ i + \
+ 4 * u))) = _Clr; \
+ } \
+ }
+
diff --git a/Private/Builtins/Toolbox/Utils.hxx b/Private/Builtins/Toolbox/Utils.hxx
deleted file mode 100644
index 29ca585a..00000000
--- a/Private/Builtins/Toolbox/Utils.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef __RSRC_UTIL__
-#define __RSRC_UTIL__
-
-// Last Rev
-// Sat Feb 24 CET 2024
-
-#define ToolboxInitRsrc() NewOS::SizeT uA = 0
-
-#define kClearClr RGB(00, 00, 00)
-
-#define ToolboxClearRsrc() uA = 0
-
-/// @brief Draws a resource.
-#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \
- uA = 0; \
- \
- for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
- for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
- if (ImgPtr[uA] == 0) { \
- *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) |= ImgPtr[uA]; \
- } else { \
- *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) = ImgPtr[uA]; \
- } \
- \
- ++uA; \
- } \
- }
-
-
-/// @brief Cleans a resource.
-#define ToolboxClearZone(_Height, _Width, BaseX, BaseY) \
- \
- for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \
- for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \
- *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) = kClearClr; \
- } \
- }
-
-
-/// @brief Draws inside a zone.
-#define ToolboxDrawZone(_Clr, _Height, _Width, BaseX, BaseY) \
- \
- for (NewOS::SizeT i = BaseX; i < _Width + BaseX; ++i) { \
- for (NewOS::SizeT u = BaseY; u < _Height + BaseY; ++u) { \
- *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \
- 4 * \
- kHandoverHeader->f_GOP \
- .f_PixelPerLine * \
- i + \
- 4 * u))) = _Clr; \
- } \
- }
-
-
-#endif
diff --git a/Private/KernelRsrc.rc b/Private/KernelRsrc.rc
new file mode 100644
index 00000000..3f5fffd3
--- /dev/null
+++ b/Private/KernelRsrc.rc
@@ -0,0 +1,25 @@
+1 ICON "Root/Boot/kernel-logo.ico"
+
+1 VERSIONINFO
+FILEVERSION 1,0,0,0
+PRODUCTVERSION 1,0,0,0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080904E4"
+ BEGIN
+ VALUE "CompanyName", "Mahrouss Logic"
+ VALUE "FileDescription", "NewOS Microkernel for AMD64"
+ VALUE "FileVersion", "1.0"
+ VALUE "InternalName", "NewKernel"
+ VALUE "LegalCopyright", "Mahrouss Logic"
+ VALUE "OriginalFilename", "NewKernel.exe"
+ VALUE "ProductName", "NewKernel"
+ VALUE "ProductVersion", "1.0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x809, 1252
+ END
+END \ No newline at end of file
diff --git a/Private/NewKit/Application.hxx b/Private/NewKit/Application.hxx
index 8075e8ac..f19dbd97 100644
--- a/Private/NewKit/Application.hxx
+++ b/Private/NewKit/Application.hxx
@@ -27,4 +27,4 @@ typedef struct Application final {
NewOS::Void(*Query)(struct Application* Self, NewOS::VoidPtr* Dst, NewOS::SizeT SzDst, NewOS::XRN::GUIDSequence GuidOf);
} Application, *ApplicationRef;
-#define object_cast reinterpret_cast<ApplicationRef>
+#define app_cast reinterpret_cast<ApplicationRef>
diff --git a/Private/Root/Boot/kernel-logo.ico b/Private/Root/Boot/kernel-logo.ico
new file mode 100644
index 00000000..945049b9
--- /dev/null
+++ b/Private/Root/Boot/kernel-logo.ico
Binary files differ
diff --git a/Private/Root/Boot/kernel-logo.svg b/Private/Root/Boot/kernel-logo.svg
new file mode 100644
index 00000000..751ec02c
--- /dev/null
+++ b/Private/Root/Boot/kernel-logo.svg
@@ -0,0 +1,10 @@
+<svg width="61" height="61" viewBox="0 0 61 61" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="0.5" y="0.5" width="60" height="60" rx="9.5" fill="#302929" fill-opacity="0.7" stroke="#323232"/>
+<circle cx="31" cy="30" r="14.5" fill="url(#paint0_radial_0_1)" stroke="#323232"/>
+<defs>
+<radialGradient id="paint0_radial_0_1" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(31 30) rotate(90) scale(15)">
+<stop stop-color="#820F0F"/>
+<stop offset="1" stop-color="#FF0000" stop-opacity="0.52"/>
+</radialGradient>
+</defs>
+</svg>
diff --git a/Private/makefile b/Private/makefile
index af311d44..0a47157a 100644
--- a/Private/makefile
+++ b/Private/makefile
@@ -43,6 +43,7 @@ MOVEALL=./MoveAll.sh
.PHONY: h-core-amd64-epm
h-core-amd64-epm: clean
+ windres KernelRsrc.rc -O coff -o KernelRsrc.obj
$(CC) $(CCFLAGS) $(DISKDRIVER) $(DEBUG) $(wildcard Source/*.cxx HALKit/AMD64/Storage/*.cxx) $(wildcard HALKit/AMD64/PCI/*.cxx) $(wildcard Source/Network/*.cxx) $(wildcard Source/Storage/*.cxx) $(wildcard HALKit/AMD64/*.cxx) $(wildcard HALKit/AMD64/*.cpp) $(wildcard HALKit/AMD64/*.s)
$(ASM) $(ASMFLAGS) HALKit/AMD64/HalInterruptAPI.asm
$(ASM) $(ASMFLAGS) HALKit/AMD64/HalSMPCoreManager.asm