#include #include #include #include #include #include "keyb.h" #include "timer.h" #include "vga.h" #include "data.h" /* disable paging because our int handlers are written in C */ int _crt0_startup_flags = _CRT0_FLAG_LOCK_MEMORY; void free_all() { timer_free(); keyb_free(); } int main(int argc, char *argv[]) { timer_init(); keyb_init(); atexit(free_all); /* set VGA 320x200, 256 col */ set_mode(0x13); set_palette(binary_palette_start); uint8_t *screen = open_framebuffer(); if (!screen) { set_mode(3); fprintf(stderr, "ERROR: failed to open the framebuffer\n"); return 1; } int i = 0; while (!keys[KEY_ESC]) { wait_vsync(); memset(screen, i, 320 * 200); i++; if (i > 15) i = 0; timer_wait(1); } set_mode(3); close_framebuffer(); return 0; }