GetCallBack Allocate real mode call back address. |
Inputs: AX = 0303h
DS:[E]SI = Call address.
ES:[E]DI = Real mode register structure.
Outputs: Carry set on error, else,
CX:DX = Real mode address to trigger mode switch.
Errors: Call-backs are a limited resource. Normally only 16 are available per virtual machine. Use them carefully and release them as soon as they are no longer required.
Call-Back:Interrupts disabled.
DS:[E]SI = Selector:Offset of real mode SS:SP.
ES:[E]DI = Selector:Offset of real mode call structure.
SS:[E]SP = Locked protected mode stack.
All other registers undefined
To return from call-back procedure, execute an IRET to return.
ES:[E]DI = Selector:Offset of real mode call structure to restore.
Notes: Real mode call-backs provide a means of switching from real mode to protected mode. This function returns a unique real mode address that when given control in real mode, switches to protected mode and passes control to the protected mode routine supplied at entry to this function. On entry to the protected mode code the real mode register structure contains all the real mode register values.