From 658e74b507c8b9a8d21e76abbb5f2d2b1d34ebd5 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 8 Jul 2026 23:20:58 +0300 Subject: [PATCH] bootloader: Check that VESA mode is linear I don't think there are any graphical non-linear framebuffers but good to be sure --- bootloader/bios/framebuffer.S | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bootloader/bios/framebuffer.S b/bootloader/bios/framebuffer.S index 23993ae1..157bc491 100644 --- a/bootloader/bios/framebuffer.S +++ b/bootloader/bios/framebuffer.S @@ -108,9 +108,11 @@ vesa_find_video_mode: cmpb $0x4F, %al; jne .vesa_unsupported cmpb $0x00, %ah; jne .vesa_error - # check whether in graphics mode - testb $0x10, (vesa_mode_info_buffer + 0) - jz .vesa_find_video_mode_next_mode + # check whether in graphics mode and linear framebuffer + movb (vesa_mode_info_buffer + 0), %al + andb $(0x80 | 0x10), %al + cmpb $(0x80 | 0x10), %al + jne .vesa_find_video_mode_next_mode # compare mode's dimensions movw -2(%ebp), %ax; cmpw %ax, (vesa_mode_info_buffer + 0x12)