[SeaBIOS] vgabios -> seabios breaks (my) 16-bit applications

Kevin O'Connor kevin at koconnor.net
Mon Jan 12 21:06:45 CET 2015


On Mon, Jan 12, 2015 at 01:13:54PM -0600, Richard Laager wrote:
> Your patch implementing idea 6 fixes the problem for my business
> application on a stock Ubuntu package (with extra stack enabled).

Thanks.

The key part of option 5 (as described in my previous email) looks
like the patch below.  It also works with skifree on Vista for me.

-Kevin


--- a/vgasrc/vgaentry.S
+++ b/vgasrc/vgaentry.S
@@ -111,8 +111,10 @@ entry_10_extrastack:
         cld
         pushw %ds               // Set %ds:%eax to space on ExtraStack
         pushl %eax
-        movw %cs:ExtraStackSeg, %ds
-        movl $(CONFIG_VGA_EXTRA_STACK_SIZE-PUSHBREGS_size-16), %eax
+        movw $SEG_BDA, %ax
+        movw %ax, %ds
+        movw 0x0e, %ds
+        movl $(1024-PUSHBREGS_size-16), %eax
         SAVEBREGS_POP_DSEAX     // Save registers on extra stack
         movl %esp, PUSHBREGS_size+8(%eax)
         movw %ss, PUSHBREGS_size+12(%eax)



More information about the SeaBIOS mailing list