summaryrefslogtreecommitdiffhomepage
path: root/dev/BootLoader/Modules/SysChk/Module.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/BootLoader/Modules/SysChk/Module.cc')
-rw-r--r--dev/BootLoader/Modules/SysChk/Module.cc33
1 files changed, 29 insertions, 4 deletions
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;
}