Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:
AL = 03h
Return: AX = error code (see #03787)
Notes: If the two stage interrupt model is disabled, the IP must stay below
1MB, because the high word of EIP is not saved correctly by the
standard interrupt management in real mode. Routines in extended
memory may only be called with interrupts disabled (only usable for
very short routines).
If the two stage interupt model is enabled, these conventions are not
required. The outer (transparent) ISRs save the higher word of EIP
in the high word of CR3 (possible modification: in memory, if this
is not safe) and then invoke the standard ISRs.
Because of this handling, one should use pseudo segmented code even in
extended memory (64K blocks located on 64K boundaries) to avoid the
misalignment of the saved EIP (in CR3). Another way is to track and
realign CR3 each time when jumping over a 64K boundary in extended