Jump to content

MFSH_CALLRM

From EDM2
Revision as of 21:34, 20 November 2019 by Martini (talk | contribs) (Remarks)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.