summaryrefslogtreecommitdiff
path: root/kernel/Helpers/memPrint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/Helpers/memPrint.cpp')
-rw-r--r--kernel/Helpers/memPrint.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/kernel/Helpers/memPrint.cpp b/kernel/Helpers/memPrint.cpp
index bde4702..f6cc397 100644
--- a/kernel/Helpers/memPrint.cpp
+++ b/kernel/Helpers/memPrint.cpp
@@ -3,9 +3,69 @@
//Constructor
memPrint::memPrint(){
+ //Initialise position
+ this->m_cursorX=0;
+ this->m_cursorY=0;
+
+ //Initialise color
+ this->setBackground(BLACK);
+ this->setForeground(WHITE);
+
}
//Destructor
memPrint::~memPrint(){
}
+
+
+//Move cursor
+void memPrint::updateCursor(){
+ this->m_cursorX++;
+
+ if(this->m_cursorX > MAXCURSORX){
+ this->m_cursorX=0;
+ this->m_cursorY++;
+
+ if(this->m_cursorY > MAXCURSORY){
+ //Scroll screen
+ }
+
+
+ }
+
+
+}
+
+void memPrint::setBackground(colorBios color){
+ u8 newColor= (color << 4);
+ this->m_colors= newColor | ((this->m_colors << 4) >> 4);
+}
+
+void memPrint::setForeground(colorBios color){
+ u8 newColor= color;
+ this->m_colors= newColor | ((this->m_colors >> 4) << 4);
+}
+
+//Print a char
+
+void memPrint::putChar(u8 character){
+
+ char *adress= ((char *) MEMPRINTSTARTADR) + (this->m_cursorX * 2) + (this->m_cursorY * 80 * 2);
+
+ *adress=character;
+
+ adress++;
+
+ *adress=this->m_colors;
+
+ this->updateCursor();
+
+}
+
+void memPrint::print(char *str){
+ while(*str!=0x0){
+ this->putChar(*str);
+ str++;
+ }
+}