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