diff options
| author | Franklin Wei <frankhwei536@gmail.com> | 2015-02-07 19:03:47 -0500 |
|---|---|---|
| committer | Franklin Wei <frankhwei536@gmail.com> | 2015-02-07 19:03:47 -0500 |
| commit | 0dc446980d8ede518a356ab2c2f165cb08ce444a (patch) | |
| tree | d9fc8938c1d930f8ece0dd5746601eca5b3089bc /kernel/main.c | |
| parent | 2be70c3b7c3cb806614318858090c039bdfd4fc5 (diff) | |
| download | kappa-0dc446980d8ede518a356ab2c2f165cb08ce444a.zip kappa-0dc446980d8ede518a356ab2c2f165cb08ce444a.tar.gz kappa-0dc446980d8ede518a356ab2c2f165cb08ce444a.tar.bz2 kappa-0dc446980d8ede518a356ab2c2f165cb08ce444a.tar.xz | |
implement text in graphics mode
Diffstat (limited to 'kernel/main.c')
| -rw-r--r-- | kernel/main.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/kernel/main.c b/kernel/main.c index 6cad670..e4cf47d 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -20,11 +20,22 @@ void main(struct multiboot_info_t *hdr, uint32_t magic) printf("Testing early I/O\n"); printf("GFX init\n"); - int gfx_status = gfx_init((struct vbe_info_t*)hdr->vbe_mode_info); + bool gfx_status = gfx_init((struct vbe_info_t*)hdr->vbe_mode_info); + + puts("test123\n"); + putchar('1'); + putchar('2'); + putchar('\n'); + putchar('1'); + putchar('2'); + gfx_drawchar(0, 12, 'a', 0xffffff, 0); /* if graphical initialization fails, fall back to text mode */ if(!gfx_status) + { tty_init(); + printf("Graphics init failed, fell back to text mode.\n"); + } if(magic != 0x2BADB002) { @@ -45,21 +56,30 @@ void main(struct multiboot_info_t *hdr, uint32_t magic) asm("sti"); - printf("Boot finished.\n"); + //printf("Boot finished.\n"); - printf("Testing RNG...\n"); + //printf("Testing RNG...\n"); srand(*current_tick); - for(int i=0;i>=0;++i) + if(gfx_status) { - int rx = rand() % *gfx_width; - int ry = rand() % *gfx_height; + /* + for(int i=0;i<100000;++i) + { + int rx = rand() % *gfx_width; + int ry = rand() % *gfx_height; - gfx_drawpixel(rx, ry, rand() % 0xFFFFFF); + gfx_drawpixel(rx, ry, rand() % 0xFFFFFF); + } + int start = *current_tick; + for(int i=0;i<1000;++i) + gfx_clear(0xff00ff); + int end = *current_tick; + printf("ticks for 1000 fills: %x\n", end-start); + */ } - gfx_clear(0xffffff); - printf("Testing keyboard LED's...\n"); + // printf("Testing keyboard LED's...\n"); while(1) { |