summaryrefslogtreecommitdiffhomepage
path: root/dev/BootLoader/Modules
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 18:15:54 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 18:15:54 +0100
commitc0f7f3f300d603d355fc7ec5be317afe1f0ee1b6 (patch)
tree87189340d1b6f36474c52c0cf951310862fe9db7 /dev/BootLoader/Modules
parent4ed658c633ce5d7c5bde4acdbe322e5f51592369 (diff)
IMPL: Improvements and fixes.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/BootLoader/Modules')
-rw-r--r--dev/BootLoader/Modules/NetBoot/Module.cc2
-rw-r--r--dev/BootLoader/Modules/NetBoot/build.json2
-rw-r--r--dev/BootLoader/Modules/SysChk/Module.cc33
3 files changed, 31 insertions, 6 deletions
diff --git a/dev/BootLoader/Modules/NetBoot/Module.cc b/dev/BootLoader/Modules/NetBoot/Module.cc
index 1b4a4bb4..6277da70 100644
--- a/dev/BootLoader/Modules/NetBoot/Module.cc
+++ b/dev/BootLoader/Modules/NetBoot/Module.cc
@@ -10,7 +10,7 @@
#include <NetBoot.h>
#include <BootKit/BootKit.h>
-EXTERN_C Int32 main(Kernel::HEL::BootInfoHeader* Handover)
+EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* Handover)
{
return kEfiOk;
}
diff --git a/dev/BootLoader/Modules/NetBoot/build.json b/dev/BootLoader/Modules/NetBoot/build.json
index 3844f9cb..9df27b3c 100644
--- a/dev/BootLoader/Modules/NetBoot/build.json
+++ b/dev/BootLoader/Modules/NetBoot/build.json
@@ -11,7 +11,7 @@
"-fPIC",
"-fno-rtti",
"-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x1000000"
+ "-Wl,--subsystem=17,--image-base,0x10000000,-e,ModuleMain"
],
"cpp_macros": [
"__MINOSKRNL__",
diff --git a/dev/BootLoader/Modules/SysChk/Module.cc b/dev/BootLoader/Modules/SysChk/Module.cc
index b0808fde..28b89859 100644
--- a/dev/BootLoader/Modules/SysChk/Module.cc
+++ b/dev/BootLoader/Modules/SysChk/Module.cc
@@ -8,15 +8,40 @@
*/
#include <BootKit/BootKit.h>
+#include <Modules/GfxMgr/FBMgr.h>
+#include <Modules/GfxMgr/TextMgr.h>
+#include <FirmwareKit/EFI.h>
+#include <FirmwareKit/EFI/API.h>
+#include <FirmwareKit/Handover.h>
+#include <KernelKit/MSDOS.h>
+#include <KernelKit/PE.h>
+#include <KernelKit/PEF.h>
+#include <NewKit/Macros.h>
+#include <NewKit/Ref.h>
+#include <BootKit/Thread.h>
+#include <Modules/GfxMgr/FBMgr.h>
EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* Handover)
{
EfiSystemTable* system_table = (EfiSystemTable*)Handover->f_FirmwareCustomTables[1];
- system_table->ConOut->ClearScreen(system_table->ConOut);
+ EfiInputKey key{};
- system_table->ConOut->OutputString(system_table->ConOut, L"SYSCHK: CHECKING FOR VALID NEFS OR HPFS PARTITIONS...\r\n");
- system_table->ConOut->OutputString(system_table->ConOut, L"SYSCHK: GOOD TO GO!\r\n");
+ system_table->ConIn->ReadKeyStroke(system_table->ConIn, &key);
- return kEfiOk;
+ if (key.UnicodeChar == 'F' ||
+ key.UnicodeChar == 'f')
+ {
+ UI::ui_draw_background();
+
+ fb_init();
+
+ FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2);
+
+ fb_fini();
+
+ return kEfiOk;
+ }
+
+ return kEfiFail;
}