Now you may know that there exist two different ways of attaching a 68881/882 FPU to a ST/STE.
- use a 68020/030 (like PAK68/2, /3) with FPU socket and just put a 68881/882 in
- use a SFP004 on the MegaBus, MegaSTE internal FPU socket, or some other extension that attaches the FPU in the same way as Atari's own SFP004
The 68020/030 know so-called Line-F instructions. They decode these and immediately know that these are meant to be handled by a FPU. Via a specific protocol the FPU catches these instructions, and calculates the result. It's done that way in TT and Falcon030.
But 68000 cannot handle Line-F instructions. Atari decided to attach the FPU to the system like any other I/O device: memory mapped i.e. the FPU occupies some registers in the CPU's memory space.
Those who program in Turbo C/Pure C know about the compiler's ability to create 68881/882 code. But this code uses LineF instructions and therefore is not compatible with the SFP004 solution.
And code written for the SFP004 is not compatible with the LineF solution.
The aforementioned FPU emulator catches LineF instructions (read: programs with FPU code written for TT, Falcon030,...) on a 68000 ST/STE, decodes the instructions and pokes the values into the appropriate registers of a SFP004 (compatible) extension.
The other way (using SFP004 programs on a TT) is not possible with this emulator.
I cannot check the emulator as it says in the ASM comments that it is only for 68881 FPUs as 68882 need passing of the PC at some locations.
Unfortunately I only have 68882 at hand
So: maybe someone can check the attached FPU emulator (on a 68881) equipped MegaSTE or some 68000 speeder with 68881.