Start to code memPrint

This commit is contained in:
manzerbredes 2015-07-22 19:45:08 +04:00
parent c10137539f
commit 81d1351c73
3 changed files with 113 additions and 4 deletions

View file

@ -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++;
}
}

View file

@ -1,6 +1,13 @@
#ifndef __memPrint__
#define __memPrint__
#include "./types.hpp"
#define MEMPRINTSTARTADR 0xB8000
#define MAXCURSORX 80
#define MAXCURSORY 25
//Define the bios color
enum colorBios{
@ -32,6 +39,15 @@ class memPrint{
private:
//Cursor position
u8 m_cursorX;
u8 m_cursorY;
//Current colors (background and foreground):
u8 m_colors;
//Methods
void updateCursor();
public:
@ -40,6 +56,17 @@ class memPrint{
//Destructor
~memPrint();
//Set color
void setBackground(colorBios color);
void setForeground(colorBios color);
//Putchar
void putChar(u8 character);
//Print
void print(char *str);
};
#endif