Subsections

4. The EMU387 unit

The emu387 unit was written by Pierre Müller for DOS. It sets up the coprocessor emulation for FPC under DOS. It is not necessary to use this unit on other OS platforms because they either simply do not run on a machine without coprocessor, or they provide the coprocessor emulation themselves.

It shouldn't be necessary to use the function in this unit, it should be enough to place this unit in the uses clause of your program to enable the coprocessor emulation under DOS. The unit initialization code will try and load the coprocessor emulation code and initialize it.

4.1 Functions and procedures


4.1.1 npxsetup

Declaration
procedure npxsetup(prog_name : string);
Description
npxsetup checks whether a coprocessor is found. If not, it loads the file wmemu387.dxe into memory and initializes the code in it.

If the environment variable 387 is set to N, then the emulation will be loaded, even if there is a coprocessor present. If the variable doesn't exist, or is set to any other value, the unit will try to detect the presence of a coprocessor unit.

The function searches the file wmemu387.dxe in the following way:

  1. If the environment variable EMU387 is set, then it is assumed to point at the wmemu387.dxe file.
  2. if the environment variable EMU387 does not exist, then the function will take the path part of prog_name and look in that directory for the file wmemu387.dxe.

It should never be necessary to call this function, because the initialization code of the unit contains a call to the function with as an argument paramstr(0). This means that you should deliver the file wmemu387.dxe together with your program.

Errors
If there is an error, an error message is printed to standard error, and the program is halted, since any floating-point code is bound to fail anyhow.


root
2000-12-20