[SeaBIOS] [PATCH] vgabios: Don't use "smsww" instruction - it confuses x86emu

Kevin O'Connor kevin at koconnor.net
Thu Apr 9 18:37:57 CEST 2015

Commit 251e2638 introduced the "smsww" instruction to the vgabios.
Unfortunately, it appears at least some versions of x86emu crash when
executing that instruction (eg, FC13 installer crashes).  That
instruction wasn't required to work around the problem fixed in
251e2638, so just avoid it.

Signed-off-by: Kevin O'Connor <kevin at koconnor.net>

The fix for the "skifree bug" tickled yet another old OS problem - old
versions of x86emu don't like smsww.  :-(  The smsww wasn't strickly
necessary, so this patch just stops using it.

 vgasrc/vgabios.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
index 7c1f0b8..f07e85b 100644
--- a/vgasrc/vgabios.c
+++ b/vgasrc/vgabios.c
@@ -304,7 +304,7 @@ vga_set_mode(int mode, int flags)
         SET_BDA(video_mode, 0xff);
     SET_BDA_EXT(vbe_mode, mode | (flags & MF_VBEFLAGS));
     SET_BDA_EXT(vgamode_offset, (u32)vmode_g);
-    if (CONFIG_VGA_ALLOCATE_EXTRA_STACK && !(getcr0_vm86() & CR0_PE))
         // Disable extra stack if it appears a modern OS is in use.
         // This works around bugs in some versions of Windows (Vista
         // and possibly later) when the stack is in the e-segment.

More information about the SeaBIOS mailing list