From 5ccfd0fc74458fb03130153402ee68934dc3d96e Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 13 Nov 2003 22:00:00 -0500 Subject: [PATCH] Import backup from 2003-11-13 --- kernel.c | 17 ++++ mouse.c | 8 ++ stdfont.h | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ video.c | 31 +++++++ video.h | 1 + 5 files changed, 315 insertions(+) create mode 100644 stdfont.h diff --git a/kernel.c b/kernel.c index 3b8a36b..4ec8f99 100644 --- a/kernel.c +++ b/kernel.c @@ -16,6 +16,7 @@ #include "keyboard.h" //generic keyboard driver & functions #include "mouse.h" //generic ps/2 mouse driver & functions #include "fdc.h" //Floppy Disk Controller functions +#include "stdfont.h" //Standard font bitmask array void isr(dword num); void k_init(); @@ -59,6 +60,22 @@ void k_init() printf("Memory available to OS: %d MB (Bytes: %d)\n", mm_totalmem/0x100000, mm_totalmem); printf("Freem memory: %d bytes\n", mm_freemem()); +/* int fx; + int fy = 30; + int fc; + int fr; + word *vidmem = (word *)0xB8000; + for (fr = 0; fr < 25; fr++) + { + fx = 300; + for (fc = 0; fc < 80; fc++) + { + video_renderChar(fx, fy, (char)vidmem[fr*80+fc], 0xFFFFFF); + fx += 8; + } + fy += 10; + } */ + dword key = 0; for (;;) { diff --git a/mouse.c b/mouse.c index d1f7af6..6d04ae8 100644 --- a/mouse.c +++ b/mouse.c @@ -40,6 +40,14 @@ void isr_mouse() int adjy = (char) mouse_inbuffer[2]; mouse_x += adjx; mouse_y -= adjy; //-= because screen y coordinates are opposite mouse y coordinates + if (mouse_x < 0) + mouse_x = 0; + if (mouse_x >= video_mode.XResolution) + mouse_x = video_mode.XResolution - 1; + if (mouse_y < 0) + mouse_y = 0; + if (mouse_y >= video_mode.YResolution) + mouse_y = video_mode.YResolution - 1; if (mouse_inbuffer[0] & 0x01) //left button { video_pset(mouse_x, mouse_y, 0x00FFFFFF); diff --git a/stdfont.h b/stdfont.h new file mode 100644 index 0000000..d4a490e --- /dev/null +++ b/stdfont.h @@ -0,0 +1,258 @@ +const byte stdfont[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xE0, 0xC0, 0x80, + 0x00, 0x08, 0x18, 0x38, 0x78, 0x38, 0x18, 0x08, + 0x00, 0x20, 0x70, 0xA8, 0x20, 0xA8, 0x70, 0x20, + 0x00, 0xA0, 0xA0, 0xA0, 0xA0, 0x00, 0xA0, 0xA0, + 0x00, 0x78, 0xA8, 0xA8, 0x78, 0x28, 0x28, 0x68, + 0x00, 0x78, 0x80, 0x70, 0x88, 0x70, 0x08, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, + 0x00, 0x20, 0x70, 0xA8, 0x20, 0xA8, 0x70, 0xF8, + 0x00, 0x20, 0x70, 0xA8, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x20, 0x20, 0x20, 0x20, 0xA8, 0x70, 0x20, + 0x00, 0x00, 0x20, 0x10, 0xF8, 0x10, 0x20, 0x00, + 0x00, 0x00, 0x20, 0x40, 0xF8, 0x40, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x90, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x70, 0xF8, 0xF8, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xF8, 0x70, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, + 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xF8, 0x50, 0x50, 0x50, 0xF8, 0x50, + 0x00, 0x20, 0x78, 0xA0, 0x70, 0x28, 0xF0, 0x20, + 0x00, 0x00, 0x08, 0x90, 0x20, 0x48, 0x80, 0x00, + 0x00, 0x20, 0x50, 0x50, 0x20, 0x58, 0x90, 0x68, + 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, + 0x00, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, + 0x00, 0x00, 0xA8, 0x70, 0xF8, 0x70, 0xA8, 0x00, + 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, + 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, + 0x00, 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x20, 0x60, 0xA0, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x70, 0x88, 0x08, 0x10, 0x20, 0x40, 0xF8, + 0x00, 0x70, 0x88, 0x08, 0x10, 0x08, 0x88, 0x70, + 0x00, 0x30, 0x50, 0x90, 0x90, 0xF8, 0x10, 0x10, + 0x00, 0xF8, 0x80, 0x80, 0xF8, 0x08, 0x88, 0x70, + 0x00, 0x38, 0x40, 0x80, 0xF0, 0x88, 0x88, 0x70, + 0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, + 0x00, 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, + 0x00, 0x70, 0x88, 0x88, 0x78, 0x08, 0x10, 0x60, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x40, + 0x00, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, + 0x00, 0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, + 0x00, 0x80, 0x40, 0x20, 0x10, 0x20, 0x40, 0x80, + 0x00, 0x70, 0x88, 0x08, 0x10, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x88, 0x88, 0xB8, 0xB0, 0x80, 0x78, + 0x00, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, + 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, + 0x00, 0xF0, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF0, + 0x00, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, + 0x00, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, + 0x00, 0x70, 0x88, 0x80, 0xB8, 0x88, 0x88, 0x70, + 0x00, 0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, + 0x00, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xF8, + 0x00, 0x88, 0xD8, 0xA8, 0x88, 0x88, 0x88, 0x88, + 0x00, 0x88, 0xC8, 0xE8, 0xB8, 0x98, 0x88, 0x88, + 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x80, 0x80, 0x80, + 0x00, 0x70, 0x88, 0x88, 0x88, 0xA8, 0x98, 0x70, + 0x00, 0xF0, 0x88, 0x88, 0xF0, 0xA0, 0x90, 0x88, + 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, + 0x00, 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x50, 0x20, + 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0xA8, 0x50, + 0x00, 0x88, 0x50, 0x20, 0x20, 0x50, 0x88, 0x88, + 0x00, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x20, + 0x00, 0xF8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xF8, + 0x00, 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x70, + 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x08, 0x00, + 0x00, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0xE0, + 0x00, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, + 0x00, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, + 0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0xF0, + 0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, + 0x00, 0x08, 0x08, 0x78, 0x88, 0x88, 0x88, 0x78, + 0x00, 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x78, + 0x00, 0x30, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, + 0x00, 0x00, 0x00, 0x78, 0x88, 0x78, 0x08, 0x70, + 0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0x88, + 0x00, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0x90, 0x60, + 0x00, 0x80, 0x80, 0x90, 0xA0, 0xC0, 0xA0, 0x90, + 0x00, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, + 0x00, 0x00, 0x00, 0xD0, 0xA8, 0xA8, 0xA8, 0xA8, + 0x00, 0x00, 0x00, 0xF0, 0x88, 0x88, 0x88, 0x88, + 0x00, 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x00, 0x00, 0xF0, 0x88, 0xF0, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x78, 0x88, 0x78, 0x08, 0x38, + 0x00, 0x00, 0x00, 0x70, 0x48, 0x40, 0x40, 0x40, + 0x00, 0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xF0, + 0x00, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x20, + 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x78, + 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, + 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0xA8, 0x50, + 0x00, 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, + 0x00, 0x00, 0x00, 0x88, 0x88, 0x78, 0x08, 0xF0, + 0x00, 0x00, 0x00, 0xF8, 0x10, 0x20, 0x40, 0xF8, + 0x00, 0x30, 0x40, 0x40, 0x80, 0x40, 0x40, 0x30, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0xC0, 0x20, 0x20, 0x10, 0x20, 0x20, 0xC0, + 0x00, 0x00, 0x68, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, + 0x00, 0xF8, 0x88, 0x80, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0xF8, 0x48, 0x40, 0x40, 0x40, 0x40, 0xE0, + 0x00, 0xF0, 0x50, 0x50, 0x50, 0x50, 0x78, 0x88, + 0x00, 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0xF8, + 0x00, 0xA8, 0xA8, 0x70, 0x20, 0x70, 0xA8, 0xA8, + 0x00, 0x70, 0x88, 0x08, 0x30, 0x08, 0x88, 0x70, + 0x00, 0x88, 0x98, 0xA8, 0xA8, 0xA8, 0xC8, 0x88, + 0x00, 0xA8, 0xC8, 0x98, 0xA8, 0xA8, 0xC8, 0x88, + 0x00, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, + 0x00, 0xF8, 0x50, 0x50, 0x50, 0x50, 0x50, 0x90, + 0x00, 0x88, 0xD8, 0xA8, 0x88, 0x88, 0x88, 0x88, + 0x00, 0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, + 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x80, 0x80, 0x80, + 0x00, 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, + 0x00, 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, 0x40, 0x80, + 0x00, 0x70, 0x20, 0xF8, 0xA8, 0xF8, 0x20, 0x70, + 0x00, 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, + 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF8, 0x08, + 0x00, 0x88, 0x88, 0x88, 0xF8, 0x08, 0x08, 0x38, + 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, + 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, 0x08, + 0x00, 0xC0, 0x40, 0x40, 0x78, 0x48, 0x48, 0x78, + 0x00, 0x88, 0x88, 0xC8, 0xA8, 0xA8, 0xA8, 0xE8, + 0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0xF0, + 0x00, 0xF0, 0x88, 0x08, 0x78, 0x08, 0x88, 0xF0, + 0x00, 0x90, 0xA8, 0xA8, 0xE8, 0xA8, 0xA8, 0x90, + 0x00, 0x78, 0x88, 0x88, 0x78, 0x28, 0x48, 0x88, + 0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x88, 0x78, + 0x00, 0x00, 0xF8, 0x80, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0x00, 0xF0, 0x88, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0x00, 0xF8, 0x48, 0x48, 0x40, 0x40, 0xE0, + 0x00, 0x00, 0x78, 0x50, 0x50, 0x50, 0x70, 0x88, + 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x88, 0x70, + 0x00, 0x00, 0xA8, 0x70, 0x20, 0x70, 0xA8, 0xA8, + 0x00, 0x00, 0x00, 0xF0, 0x88, 0x30, 0x88, 0x70, + 0x00, 0x00, 0x88, 0x98, 0xA8, 0xC8, 0x88, 0x88, + 0x00, 0x50, 0x20, 0x88, 0x98, 0xA8, 0xC8, 0x88, + 0x00, 0x00, 0x88, 0x90, 0xA0, 0xE0, 0x90, 0x88, + 0x00, 0x00, 0xF8, 0x48, 0x48, 0x48, 0x48, 0xC8, + 0x00, 0x00, 0x88, 0xD8, 0xA8, 0x88, 0x88, 0x88, + 0x00, 0x00, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, + 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x50, 0x70, 0x08, 0x78, 0x88, 0x78, + 0x00, 0x88, 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, + 0x00, 0x88, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x78, + 0x00, 0x90, 0x00, 0xF0, 0x80, 0xE0, 0x80, 0xF0, + 0x00, 0x00, 0x70, 0x48, 0x70, 0x48, 0x48, 0xF0, + 0x00, 0x88, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x88, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x78, + 0x00, 0x70, 0x50, 0x70, 0x88, 0xF8, 0x88, 0x88, + 0x00, 0x88, 0x70, 0x88, 0x88, 0xF8, 0x88, 0x88, + 0x00, 0x88, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, + 0x00, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x78, + 0x00, 0x88, 0xF8, 0x80, 0xE0, 0x80, 0x80, 0xF8, + 0x00, 0x40, 0x20, 0x70, 0x88, 0xF8, 0x80, 0x78, + 0x00, 0x10, 0x20, 0x70, 0x88, 0xF8, 0x80, 0x78, + 0x00, 0x20, 0x50, 0x70, 0x88, 0xF8, 0x80, 0x78, + 0x00, 0x40, 0x20, 0x70, 0x08, 0x78, 0x88, 0x78, + 0x00, 0x20, 0x50, 0x00, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x20, 0x10, 0x88, 0x88, 0x88, 0x88, 0x78, + 0x00, 0x00, 0x00, 0x70, 0x80, 0x80, 0x70, 0x20, + 0x00, 0x70, 0x88, 0x40, 0xF0, 0x40, 0x40, 0xF8, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x88, 0x88, 0xF0, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0x88, 0x88, 0xF0, 0x80, 0x80, + 0x00, 0x00, 0x70, 0x88, 0x80, 0x80, 0x88, 0x70, + 0x00, 0x00, 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00, 0x00, 0x88, 0x88, 0x50, 0x20, 0x40, 0x80, + 0x00, 0x00, 0x70, 0x20, 0xF8, 0xF8, 0x20, 0x70, + 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, + 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0xF8, 0x08, + 0x00, 0x00, 0x88, 0x88, 0x88, 0xF8, 0x08, 0x38, + 0x00, 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, + 0x00, 0x00, 0xA8, 0xA8, 0xA8, 0xA8, 0xF8, 0x08, + 0x00, 0x00, 0xC0, 0x40, 0x70, 0x48, 0x48, 0x70, + 0x00, 0x00, 0x88, 0x88, 0xC8, 0xA8, 0xA8, 0xE8, + 0x00, 0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0xF0, + 0x00, 0x00, 0x70, 0x88, 0x38, 0x08, 0x88, 0x70, + 0x00, 0x00, 0x90, 0xA8, 0xA8, 0xE8, 0xA8, 0x90, + 0x00, 0x00, 0x38, 0x48, 0x48, 0x38, 0x28, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + diff --git a/video.c b/video.c index 1c4a180..ec7f5a5 100644 --- a/video.c +++ b/video.c @@ -55,10 +55,41 @@ void video_init(ModeInfoBlock *mib) video_pset(a+535, b+290, (a<<16)|(b)|0x0000ff00); } } + + int fx; + int fy = 25; + int fc; + int fr; + for (fr = 0; fr < 16; fr++) + { + fx = 15; + for (fc = 0; fc < 16; fc++) + { + video_renderChar(fx, fy, fr*16+fc, 0xFFFFFF); + fx += 8; + } + fy += 10; + } video_copyBuffer(); } +//Renders a character using stdfont[] as a bitmask +void video_renderChar(int x, int y, int character, dword color) +{ + int charpos = (character & 0xFF) * 8; + int row; + int col; + for (row = 0; row < 8; row++) + { + for (col = 0; col < 5; col++) + { + if ((stdfont[charpos+row] >> (col+3)) & 0x01) + video_pset(x+(5-col), y+row, color); + } + } +} + //Draws a horizontal line void video_horiz(int y, int x1, int x2, dword color) { diff --git a/video.h b/video.h index abfa4e2..bf4812c 100644 --- a/video.h +++ b/video.h @@ -10,6 +10,7 @@ void video_rectf(int x1, int y1, int x2, int y2, dword color); inline void video_pset(int x, int y, dword color); void video_psetp(int pixel, dword color); void video_copyBuffer(); +void video_renderChar(int x, int y, int character, dword color); extern dword video_copyBuffer16(dword src, dword dest, dword pixelcount); extern dword video_copyBuffer24(dword src, dword dest, dword pixelcount);