Printing whole strings to screen
This commit is contained in:
parent
b077a17fa4
commit
f0243cb45e
3 changed files with 25 additions and 14 deletions
|
@ -48,8 +48,8 @@ void putpixel(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void putc(
|
static void putc(
|
||||||
unsigned char *character,
|
const unsigned char character,
|
||||||
unsigned short x,
|
unsigned short x,
|
||||||
unsigned short y,
|
unsigned short y,
|
||||||
unsigned char r,
|
unsigned char r,
|
||||||
|
@ -57,19 +57,19 @@ void putc(
|
||||||
unsigned char b
|
unsigned char b
|
||||||
){
|
){
|
||||||
// Limit to ASCII printable
|
// Limit to ASCII printable
|
||||||
if (*character < 0x20) {
|
if (character < 0x20) {
|
||||||
serial_write_string("\nASCII too low");
|
serial_write_string("\nASCII too low");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (*character > 0x7e) {
|
if (character > 0x7e) {
|
||||||
serial_write_string("\nASCII too hihg");
|
serial_write_string("\nASCII too hihg");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *rowdata = font8x8_basic[*character];
|
unsigned char *rowdata = font8x8_basic[character];
|
||||||
unsigned char charx, chary, iy, ix;
|
unsigned char charx, chary, iy, ix;
|
||||||
unsigned char sizex=5;
|
unsigned char sizex=1;
|
||||||
unsigned char sizey=5;
|
unsigned char sizey=1;
|
||||||
for (chary=0;chary<8;chary++) {
|
for (chary=0;chary<8;chary++) {
|
||||||
for (charx=0;charx<8;charx++) {
|
for (charx=0;charx<8;charx++) {
|
||||||
unsigned char pix = rowdata[chary] & 1 << charx;
|
unsigned char pix = rowdata[chary] & 1 << charx;
|
||||||
|
@ -83,3 +83,18 @@ void putc(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void puts(
|
||||||
|
const unsigned char *text,
|
||||||
|
unsigned short x,
|
||||||
|
unsigned short y,
|
||||||
|
unsigned char r,
|
||||||
|
unsigned char g,
|
||||||
|
unsigned char b
|
||||||
|
){
|
||||||
|
unsigned char i = 0;
|
||||||
|
while (text[i]) {
|
||||||
|
putc(text[i], x+i*8, y, r, g, b);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -18,8 +18,8 @@ void putpixel(
|
||||||
unsigned char g,
|
unsigned char g,
|
||||||
unsigned char b
|
unsigned char b
|
||||||
);
|
);
|
||||||
void putc(
|
void puts(
|
||||||
unsigned char *character,
|
const unsigned char *text,
|
||||||
unsigned short x,
|
unsigned short x,
|
||||||
unsigned short y,
|
unsigned short y,
|
||||||
unsigned char r,
|
unsigned char r,
|
||||||
|
|
|
@ -87,11 +87,7 @@ void kmain (unsigned int mbootmagick, multiboot_info_t* mbootinfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
putc("r", 412, 5, 0xff, 0xff, 0xff);
|
puts("rOSka", 0, 0, 0xff, 0x00, 0x00);
|
||||||
putc("O", 452, 5, 0xff, 0xff, 0xff);
|
|
||||||
putc("S", 492, 5, 0xff, 0xff, 0xff);
|
|
||||||
putc("k", 532, 5, 0xff, 0xff, 0xff);
|
|
||||||
putc("a", 572, 5, 0xff, 0xff, 0xff);
|
|
||||||
//while(1){}
|
//while(1){}
|
||||||
|
|
||||||
serial_write_string("\nExecution finished, halting...\n");
|
serial_write_string("\nExecution finished, halting...\n");
|
||||||
|
|
Loading…
Reference in a new issue