From 94a8f74ada9562f152fffb8e162d306c2fef313d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 28 Feb 2016 22:49:45 -0500 Subject: [PATCH] System console is back --- src/Console.cc | 23 +++++++++++++++++------ src/Console.hh | 4 +++- src/Main.cc | 2 +- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/Console.cc b/src/Console.cc index deeafad..887cffc 100644 --- a/src/Console.cc +++ b/src/Console.cc @@ -30,15 +30,19 @@ makeVGAEntry(char c, } /* - * Public + * Static */ -Console::Console() - : mBase(reinterpret_cast(0xB8000)), - mCursor{0, 0}, - mColor(makeVGAColor(Console::Color::LightGray, Console::Color::Black)) -{ } +Console & +Console::systemConsole() +{ + static Console sSystemConsole; + return sSystemConsole; +} +/* + * Public + */ void Console::clear() @@ -114,6 +118,13 @@ Console::setColor(Console::Color fg, * Private */ +Console::Console() + : mBase(reinterpret_cast(0xB8000)), + mCursor{0, 0}, + mColor(makeVGAColor(Console::Color::LightGray, Console::Color::Black)) +{ } + + void Console::putEntryAt(size_t x, size_t y, diff --git a/src/Console.hh b/src/Console.hh index dcc0537..de91e10 100644 --- a/src/Console.hh +++ b/src/Console.hh @@ -41,7 +41,7 @@ struct Console static const size_t Width = 80; static const size_t Height = 25; - Console(); + static Console &systemConsole(); /** Clear the console to the provided color. */ void clear(); @@ -60,6 +60,8 @@ private: Cursor mCursor; uint8_t mColor; + Console(); + void putEntryAt(size_t x, size_t y, char c, uint8_t color); void scroll(size_t lines = 1); }; diff --git a/src/Main.cc b/src/Main.cc index 35e378a..b75b1c7 100644 --- a/src/Main.cc +++ b/src/Main.cc @@ -15,7 +15,7 @@ extern "C" void kearly() { - kernel::Console console; + auto console = kernel::Console::systemConsole(); console.clear(kernel::Console::Color::Blue); console.writeString("Loading system ...\n");