(Changed last time the 26/02/09 at 11.51)
Code: Select all
struct s_char{
char s_char; //The character
char s_add; //Color and blinking (I think..)
};
s_char video[25][80]; //Virtual screen for debug
class s_screen{
s_char temp;
s_char *screen;
unsigned char xPointer;
unsigned char yPointer;
long int x;
long int y;
s_char nullChar;
public:
s_screen(long int s_x=80, long int s_y=25){
//screen=(s_char*)0xb8000;
screen=(s_char*)video;
xPointer=0;
yPointer=0;
x=s_x;
y=s_y;
nullChar.s_char='\0';
nullChar.s_add='\0';
}
void inline setPoiter(unsigned char s_xPointer, unsigned char s_yPointer){
xPointer=s_xPointer;
yPointer=s_yPointer;
}
long int lenghtOfchar(char *string);
long int lenghtOfs_char(s_char *string);
void write(s_char *string){
}
void write(char *string, char *adds){
for(int i=0;*(string+i)!=0;i++){
if(*(string+i)==' '){
if(yPointer<y){
if(xPointer<(x-1))xPointer++;
else{
xPointer=0;
yPointer++;
}
}
else yPointer=0;
}
else if(*(string+i)=='\n'){
if(yPointer<y)yPointer++;
else yPointer=0;
xPointer=0;
}
else{
//std::cout<<"i:"<<(xPointer+yPointer*x);
temp.s_char=*(string+i);
temp.s_add=*(adds+i);
*(screen+(xPointer+yPointer*x))=temp;
}
if(yPointer<25){
if(xPointer<(x-1))xPointer++;
else{
xPointer=0;
yPointer++;
}
}
else yPointer=0;
}
}
void inline convertCto_C(char *string, char *adds, s_char *result){
}
void inline clear(){for(int i=0;i!=y;i++){for(int i2=0;i2!=x;i2++)*(screen+i*x+i2)=nullChar;}}
};