PiegOS/kernel/Helpers/memPrint.hpp
2015-07-23 08:47:32 +04:00

81 lines
1.1 KiB
C++

#ifndef __memPrint__
#define __memPrint__
#include "./types.hpp"
#define MEMPRINTSTARTADR 0xB8000
#define MAXCURSORX 80
#define MAXCURSORY 25
//Define the bios color
enum colorBios{
BLACK=0x0,
BLUE=0x1,
GREEN=0x2,
CYAN=0x3,
RED=0x4,
MAGENTA=0x5,
BROWN=0x6,
LIGHTGRAY=0x7,
DARKGRAY=0x8,
LIGHTBLUE=0x9,
LIGHTGREEN=0xA,
LIGHTCYAN=0xB,
LIGHTRED=0xC,
LIGHTMAGENTA=0xD,
YELLOW=0xE,
WHITE=0xF
};
//Type def for biosColor
typedef enum colorBios colorBios;
//Class to print char on screen using Video Ram mapping
class memPrint{
private:
//Cursor position
u8 m_cursorX;
u8 m_cursorY;
//Current colors (background and foreground):
u8 m_colors;
//Methods
void updateCursor();
public:
//Constructor
memPrint();
//Destructor
~memPrint();
//Set color
void setBackground(colorBios color);
void setForeground(colorBios color);
//Putchar
void putChar(u8 character);
//Print
void print(char *str);
//Scroll up
void scrollUp(u8 number);
//Clear screen
void clear();
};
#endif