WebPilot wrote:What I have is an executeable.
...
[*]It does not work on Linux in a command line Terminal window; enough on 'C' being portable.
C, in source code form, is
highly portable as long as it doesn't use any platform-specific libraries. Compiled executables are not, they are packaged according to the rules of the particular host system. DOS / Windows executables use PEF (which, amusingly enough, stands for "Portable Executable Format"), whilst Linux generally uses ELF. OSX uses Mach-O, the only one that really gives you multiplatform support, as it allows binaries for multiple architectures to be bundled in one file; they'll only run under OSX, but you don't have to worry about PowerPC vs 64-bit PowerPC vs Intel vs 64-bit intel, etc. Some other Unixes use COFF, which is not a million miles from PEF. There are many other formats, none of which are compatible.
So, your PEF executable, compiled under W98, should work under W95+, up to and including MS' latest crapware. It won't work under DOS, complaining that it needs to be run under windows. This is a vagary of the PEF format, there's a "stub" program that gets run when you're under DOS. Yes, that stub *is* included in every executable on your system. For the sake of redundancy, I guess. It will run under WINE, which provides a windows-alike interface for PEF executables. It won't work under BeOS, MacOS (9 or X), GEM on the Atari ST, an unexpanded ZX-81, etc.
If you can dig out the source, it should be able to be made to run on all of the above and more (with the probable exception of the ZX-81, which could only do integer maths and only had 1K of memory).
FWIW, If you were to rewrite this, I'd strongly consider using either a low-level library that gives proper numeric types as opposed to using floats / doubles, or doing it using a package like Octave or SciLab.