From 5f6c2bcf0d2f9c416134aba224d90a605f216818 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 28 Sep 2018 11:13:06 +0200 Subject: struggling with scheduler and userprog to view ppm files --- userspace/put_pixel.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 userspace/put_pixel.h (limited to 'userspace/put_pixel.h') diff --git a/userspace/put_pixel.h b/userspace/put_pixel.h new file mode 100644 index 0000000..f4b9332 --- /dev/null +++ b/userspace/put_pixel.h @@ -0,0 +1,21 @@ +#include + +#define VESA_FRAMEBUFFER 0xf6000000 +#define VESA_PITCH 2560 +#define VESA_BPP 32 + +// TODO: what will happen in 24bit mode? +static void put_pixel(int x,int y, int color) +{ + //do not write memory outside the screen buffer, check parameters against the VBE mode info +// if (x<0 || x>vesaXres|| y<0 || y>vesaYres) return; + if (x) x = (x*(VESA_BPP>>3)); // get bytes (divide by 8) + if (y) y = (y*VESA_PITCH); + //uint8_t *cTemp=VbeModeInfoBlock->physbase; + uint8_t *cTemp=VESA_FRAMEBUFFER; + + cTemp[x+y] = (uint8_t)(color & 0xff); + cTemp[x+y+1] = (uint8_t)((color>>8) & 0xff); + cTemp[x+y+2] = (uint8_t)((color>>16) & 0xff); +} + -- cgit v1.2.3