summaryrefslogtreecommitdiffhomepage
path: root/dev/Boot/Modules/SysChk/Module.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 21:19:14 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 21:19:14 +0100
commit486425ed00acec134f8799bdde64bfd093c5fb55 (patch)
tree5104af49b56f39d0b14941d76f9d6d746cd1677b /dev/Boot/Modules/SysChk/Module.cc
parentc0f7f3f300d603d355fc7ec5be317afe1f0ee1b6 (diff)
IMPL: A lot of new changes, see details.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot/Modules/SysChk/Module.cc')
-rw-r--r--dev/Boot/Modules/SysChk/Module.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/dev/Boot/Modules/SysChk/Module.cc b/dev/Boot/Modules/SysChk/Module.cc
new file mode 100644
index 00000000..a48e524c
--- /dev/null
+++ b/dev/Boot/Modules/SysChk/Module.cc
@@ -0,0 +1,47 @@
+/*
+ * ========================================================
+ *
+ * NetBoot
+ * Copyright (C) 2024, Theater Quality Inc, all rights reserved., all rights reserved.
+ *
+ * ========================================================
+ */
+
+#include <BootKit/BootKit.h>
+#include <Mod/GfxMgr/FBMgr.h>
+#include <Mod/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 <Mod/GfxMgr/FBMgr.h>
+
+EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* Handover)
+{
+ EfiSystemTable* system_table = (EfiSystemTable*)Handover->f_FirmwareCustomTables[1];
+
+ EfiInputKey key{};
+
+ system_table->ConIn->ReadKeyStroke(system_table->ConIn, &key);
+
+ 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;
+}