Setup a graphics 'driver' of sorts that can display a banner at the top of the screen.

This commit is contained in:
2020-05-22 12:33:50 -05:00
parent 695bd77751
commit a1b1b90793
7 changed files with 104 additions and 33 deletions
+8 -32
View File
@@ -1,20 +1,15 @@
#include "../includes/io.h"
#include "../includes/kernel.h"
//char* msg = "Hello, World!";
#include "../includes/screen.h"
void kmain()
{
draw_s("Hello, World!", 2, 9);/*
write_screen(0, "k", 2, 9);
write_screen(2, 'e', 2, 9);
write_screen(4, 'r', 2, 9);
write_screen(6, 'n', 2, 9);
write_screen(8, 'e', 2, 9);
write_screen(10, 'l', 2, 9);
write_screen(12, ' ', 2, 9);
write_screen(14, '3', 2, 9);
//asm("hlt");*/
clear_screen();
print_banner();
//draw_s("Hello, World!", 2, 9);
//row = 2;
///column = 80;
//draw_s("And 2nd Row. Now the 3rd row.", 2, 9);
asm("hlt");
}
void write_screen(unsigned int i, char c, unsigned char fg, unsigned char bg)
@@ -31,22 +26,3 @@ void move(unsigned short pos)
outb(0x3D4, 15);
outb(0x3D5, pos & 0x00FF);
}
void draw_s(char* string, unsigned char fg, unsigned char bg)
{
char *video_buffer = 0x000B8000;
for(int i = 0; i < strlen(string); i++)
{
video_buffer[i] = string[i];
video_buffer[i+1] = ((fg & 0x0f) << 4) | (bg & 0x0F);
}
}
int strlen(char* string)
{
int len = 0;
for(int i = 0; string[i] != '\0'; i++) len++;
return len;
}