92
« am: 04. January 2011, 11:11 »
Hi,
ich habe in meinem OS eine print-Funktion.
Allerdings funktioniert \n nicht.
Code im Header:
int csr_x = 0,csr_y = 0;
char *video = (char*)0xB8000;
void print(char *str,unsigned char fc,unsigned char bc);
Code unten:
void print(char *str,unsigned char fc,unsigned char bc) {
while (*str) {
if(*str >= ' ') {
char* vid = (char*) video;
vid += csr_y * 80 + csr_x;
*vid = *str;
vid++;
csr_x++; //Wenn 'vid++' dann auch 'csr_x++'
*vid = (bc << 4) | (fc & 0x0F);
str++;
csr_x++;
}
if(*str == '\n') {
csr_y++;
csr_y++;
csr_x = 0;
}
if(*str == '\r') {
csr_x = 0;
}
if(*str == '\b') {
csr_x--;
}
}
}