[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