MFSH_CALLRM

From EDM2
Jump to: navigation, search

Put the machine into real mode, call the specified routine, put the machine back into protect mode, and return.

Syntax

int far pascal MFSH_CALLRM(plRoutine)

Parameters

plRoutine 
is a pointer to a double word which contains the VIRTUAL address of the routine to call.

Returns

There are no error returns.

Sample

unsigned long far * plRoutine;

int far pascal MFSH_CALLRM(plRoutine)

Remarks

Only registers DS and SI will be preserved between the caller and the target routine. The selector in DS will be converted to a segment before calling the target routine. Arguments may not be passed on the stack since a stack switch may occur.

This helper allows the mini-FSD to access the ROM BIOS functions which typically run in real mode only. Great care must be taken in using this function since selectors used throughout the system are meaningless in real mode. While in real mode, no calls to any helpers may be made.