- moved the int86 code out of the 2nd stage boot loader code, and into a
[bootcensus] / src / vbe.c
index d4847d2..3f0f033 100644 (file)
--- a/src/vbe.c
+++ b/src/vbe.c
@@ -21,7 +21,7 @@ struct vbe_info *vbe_get_info(void)
        memcpy(info->sig, "VBE2", 4);
 
        memset(&regs, 0, sizeof regs);
-       regs.es = (uint32_t)low_mem_buffer >> 4;
+       regs.es = (uint32_t)info >> 4;
        regs.eax = 0x4f00;
        int86(0x10, &regs);
 
@@ -37,10 +37,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(&regs, 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, &regs);