aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranklin Wei <frankhwei536@gmail.com>2015-02-06 22:13:55 -0500
committerFranklin Wei <frankhwei536@gmail.com>2015-02-06 22:13:55 -0500
commitd4ee50199a7a365c6f770e65ce6d0d17f3292f3d (patch)
treea4444da30f7f939f5edb7e4af1a4eee5e3811ccc
parent518209098b9f6ea5586537c59b1193d65273bf27 (diff)
downloadkappa-d4ee50199a7a365c6f770e65ce6d0d17f3292f3d.zip
kappa-d4ee50199a7a365c6f770e65ce6d0d17f3292f3d.tar.gz
kappa-d4ee50199a7a365c6f770e65ce6d0d17f3292f3d.tar.bz2
kappa-d4ee50199a7a365c6f770e65ce6d0d17f3292f3d.tar.xz
new (working) vga driver
-rw-r--r--OBJ2
-rw-r--r--drivers/vga.c20
2 files changed, 22 insertions, 0 deletions
diff --git a/OBJ b/OBJ
index e4f9335..06a3d33 100644
--- a/OBJ
+++ b/OBJ
@@ -2,6 +2,7 @@ boot/head.o
drivers/pcspkr.o
drivers/ps2.o
drivers/tty.o
+drivers/vga.o
kernel/gdt-as.o
kernel/gdt.o
kernel/idt-as.o
@@ -11,6 +12,7 @@ kernel/irq-as.o
kernel/irq.o
kernel/isr-as.o
kernel/isr.o
+kernel/log.o
kernel/main.o
kernel/panic.o
kernel/timer.o
diff --git a/drivers/vga.c b/drivers/vga.c
new file mode 100644
index 0000000..cfcd287
--- /dev/null
+++ b/drivers/vga.c
@@ -0,0 +1,20 @@
+#include <stddef.h>
+#include <stdlib.h>
+#include "multiboot.h"
+#include "vga.h"
+
+static uint8_t *framebuffer = NULL;
+static uint16_t fb_width;
+static uint16_t fb_height;
+
+void vga_drawpixel(int x, int y, uint32_t pixel)
+{
+ ((uint32_t*)framebuffer)[y * fb_width + x] = pixel;
+}
+
+void vga_init(struct vbe_info_t *vbe_mode_info)
+{
+ framebuffer = vbe_mode_info->physbase;
+ fb_width = vbe_mode_info->Xres;
+ fb_height = vbe_mode_info->Yres;
+}