X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;ds=sidebyside;f=src%2Fvbe.c;fp=src%2Fvbe.c;h=933ffe58a02257aabc6fd884544c42e6961c24e6;hb=c0af8cc560cb8ccf4e9da121d7045007de304f66;hp=d4847d2a2226dfcd5e368e77d9cb9f66fd0e64a6;hpb=094e9170ca5f9b59443c171967cdc78f1c07044c;p=bootcensus diff --git a/src/vbe.c b/src/vbe.c index d4847d2..933ffe5 100644 --- a/src/vbe.c +++ b/src/vbe.c @@ -16,15 +16,19 @@ struct vbe_info *vbe_get_info(void) struct vbe_info *info; struct int86regs regs; + printf("vbe_get_info... "); + info = (struct vbe_info*)low_mem_buffer; memcpy(info->sig, "VBE2", 4); memset(®s, 0, sizeof regs); - regs.es = (uint32_t)low_mem_buffer >> 4; + regs.es = (uint32_t)info >> 4; regs.eax = 0x4f00; int86(0x10, ®s); + printf("status: %d\n", (regs.eax >> 8) & 0xff); + if((regs.eax & 0xffff) != 0x4f) { return 0; } @@ -37,10 +41,10 @@ struct vbe_mode_info *vbe_get_mode_info(int mode) struct vbe_mode_info *mi; struct int86regs regs; - mi = (struct vbe_mode_info*)low_mem_buffer; + mi = (struct vbe_mode_info*)(low_mem_buffer + 512); memset(®s, 0, sizeof regs); - regs.es = (uint32_t)low_mem_buffer >> 4; + regs.es = (uint32_t)mi >> 4; regs.eax = 0x4f01; regs.ecx = mode; int86(0x10, ®s);