From f8f6322363935639fef29ea5e26834827deebece Mon Sep 17 00:00:00 2001 From: jaby Date: Sat, 30 Mar 2024 14:42:32 -0500 Subject: [PATCH] Print all BIOS information --- .../application/src/Overlay/BIOSInfo/bios_info.cpp | 9 +++++---- include/PSX/System/syscalls.hpp | 1 + src/Library/src/System/syscall.cpp | 11 +++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/examples/PoolBox/application/src/Overlay/BIOSInfo/bios_info.cpp b/examples/PoolBox/application/src/Overlay/BIOSInfo/bios_info.cpp index 53d3f76c..be037c4e 100644 --- a/examples/PoolBox/application/src/Overlay/BIOSInfo/bios_info.cpp +++ b/examples/PoolBox/application/src/Overlay/BIOSInfo/bios_info.cpp @@ -52,15 +52,16 @@ namespace BIOSInfo { const BIOSStringOffset bios_str_offset; const char*const display_str; FontSlider font_slider; - } BIOSStringInfo[3] = { + } BIOSStringInfo[] = { {.bios_str_offset = &SysCall::BIOSVersion::kernel_maker, .display_str = "Kernel-Maker"}, + {.bios_str_offset = &SysCall::BIOSVersion::version_str, .display_str = "Version"}, {.bios_str_offset = &SysCall::BIOSVersion::gui_version, .display_str = "GUI-Version"}, - {.bios_str_offset = &SysCall::BIOSVersion::copyright, .display_str = "Copyright"} + {.bios_str_offset = &SysCall::BIOSVersion::copyright, .display_str = "Copyright"}, }; static GPU::TILE::Linked border_tiles[2] = { - Make::TILE(Make::AreaI16(0, 0, TextOffset.x, GPU::Display::Height), GPU::Color24::Black()).linked(), - Make::TILE(Make::AreaI16(GPU::Display::Width - TextOffset.x, 0, TextOffset.x, GPU::Display::Height), GPU::Color24::Black()).linked() + Make::TILE(Make::AreaI16(0, 0, TextOffset.x, GPU::Display::Height - 32), GPU::Color24::Black()).linked(), + Make::TILE(Make::AreaI16(GPU::Display::Width - TextOffset.x, 0, TextOffset.x, GPU::Display::Height - 32), GPU::Color24::Black()).linked() }; static SysCall::BIOSVersion setup() { diff --git a/include/PSX/System/syscalls.hpp b/include/PSX/System/syscalls.hpp index 74bdfe5a..cd1aa7b2 100644 --- a/include/PSX/System/syscalls.hpp +++ b/include/PSX/System/syscalls.hpp @@ -62,6 +62,7 @@ namespace JabyEngine { uint16_t year; } date; const char* kernel_maker; + const char* version_str; const char* gui_version; const char* copyright; }; diff --git a/src/Library/src/System/syscall.cpp b/src/Library/src/System/syscall.cpp index dc006ffb..5cf3c660 100644 --- a/src/Library/src/System/syscall.cpp +++ b/src/Library/src/System/syscall.cpp @@ -5,6 +5,14 @@ namespace JabyEngine { namespace SysCall { BIOSVersion get_bios_version() { + static const auto get_version_str = [](const char* kernel_maker) -> const char* { + const char* start = kernel_maker + (strlen(kernel_maker) + 1); + + while(*start == 0) { + start++; + } + return start; + }; BIOSVersion version; const auto date_bcd = *reinterpret_cast(0xBFC00100); @@ -13,10 +21,9 @@ namespace JabyEngine { version.date.month = from_bcd(static_cast((date_bcd >> 8) & 0xFF)); version.date.year = from_bcd(static_cast(date_bcd >> 16)); version.kernel_maker = reinterpret_cast(0xBFC00108); + version.version_str = get_version_str(version.kernel_maker); version.gui_version = reinterpret_cast(0xBFC7FF32); version.copyright = version.gui_version + (strlen(version.gui_version) + 1); - - printf(">>> \"%s\"\n", version.copyright); return version; } }