From: John Tsiombikas Date: Wed, 2 May 2018 10:45:40 +0000 (+0300) Subject: foo X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=commitdiff_plain;h=a26564bc44eab32bea085e08fc83b7a1ab15f93f foo --- diff --git a/src/kmain.c b/src/kmain.c index e0d1358..645c87e 100644 --- a/src/kmain.c +++ b/src/kmain.c @@ -25,6 +25,7 @@ along with this program. If not, see . #include "timer.h" #include "contty.h" #include "video.h" +#include "vbetest.h" void logohack(void); diff --git a/src/vbe.c b/src/vbe.c index 58cf2e7..d4847d2 100644 --- a/src/vbe.c +++ b/src/vbe.c @@ -9,14 +9,14 @@ #define MODE_LFB (1 << 14) -extern void *low_mem_buffer; +extern unsigned char low_mem_buffer[]; struct vbe_info *vbe_get_info(void) { struct vbe_info *info; struct int86regs regs; - info = low_mem_buffer; + info = (struct vbe_info*)low_mem_buffer; memcpy(info->sig, "VBE2", 4); @@ -25,6 +25,10 @@ struct vbe_info *vbe_get_info(void) regs.eax = 0x4f00; int86(0x10, ®s); + if((regs.eax & 0xffff) != 0x4f) { + return 0; + } + return info; } @@ -33,7 +37,7 @@ struct vbe_mode_info *vbe_get_mode_info(int mode) struct vbe_mode_info *mi; struct int86regs regs; - mi = low_mem_buffer; + mi = (struct vbe_mode_info*)low_mem_buffer; memset(®s, 0, sizeof regs); regs.es = (uint32_t)low_mem_buffer >> 4; @@ -41,7 +45,7 @@ struct vbe_mode_info *vbe_get_mode_info(int mode) regs.ecx = mode; int86(0x10, ®s); - if(regs.eax & 0xff00) { + if((regs.eax & 0xffff) != 0x4f) { return 0; }