From 8d1879fe97ffabcdb90d476503f1189ef7934267 Mon Sep 17 00:00:00 2001 From: shockrahwow Date: Mon, 25 Feb 2019 15:36:31 -0800 Subject: [PATCH] - Retesting framebuffer drivers - clear_fb() fully working - trying to add positional buffer writes for fancy output - POSITION macro only seems to work for (0,0) coords for now haven't tested other edge cases yet --- framebuffer.c | 25 +++++++++++++++++-------- framebuffer.h | 9 ++++++--- loader.asm | 5 ++--- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/framebuffer.c b/framebuffer.c index 8bca41e..8e2c2b7 100644 --- a/framebuffer.c +++ b/framebuffer.c @@ -9,27 +9,36 @@ static char* Frame_Buffer = (char*)FRAME_BUFFER_ADDR; static char* Frame_Buffer_End = (char*)(FRAME_BUFFER_ADDR + AREA); + // Writes character to a given cell in the framebuffer // @cell parameter is the logical (linear)index into the buffer // _not_ the actual offset from the buffer addr // also proper location is caller's responsibility -void writech_fb(unsigned cell, char c, char fg, char bg) { +void write_cell_fb(unsigned cell, char c, char fg, char bg) { Frame_Buffer[cell] = c; Frame_Buffer[cell+1] = (fg & 0x0f << 4) | (bg & 0x0f); } /* this probably doesn't belong here */ -void print_fb(char* str) { - for(unsigned i =0;i