On Mon, Nov 22, 2010 at 12:08:33PM -0500, Stefan Berger wrote:
The attached patch implements support for the transparent call of functions in 32 bit space from 16 bit code and allows up to 6
[...]
// Disable irqs (and clear direction flag)
cli
cld
// Disable nmi
movl $CMOS_RESET_CODE|NMI_DISABLE_BIT, %eax
outb %al, $PORT_CMOS_INDEX
inb $PORT_CMOS_DATA, %al
// enable a20
inb $PORT_A20, %al
orb $A20_ENABLE_BIT, %al
outb %al, $PORT_A20
It should be possible to extend call32() to do what you need - duplicating this functionality is a non-starter.
-Kevin