diff options
Diffstat (limited to 'dev/BootLoader/Modules/SysChk/Module.cc')
| -rw-r--r-- | dev/BootLoader/Modules/SysChk/Module.cc | 33 |
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; } |
