Subj : Multi-platform EXE?
To : Don Guy
From : Mike Luther
Date : Tue Sep 04 2001 03:53 am
I'm not an expert Don.
DG> Greetings All!
DG> I asked this once before, but many moons and many hard
DG> drive replacements later, I managed to lose the
DG> information. :-|
DG> LOADDSKF.EXE appears to run as a native process,
DG> regardless of whether it is launched from a DOS or and
DG> OS/2 command prompt. Is it possible to duplicate this
DG> with Borland C++ 1.0? If so, how?
Borland Turbo Pascal, I think (but do not know!), but not C++ maybe. Maybe
that too .. read on.
There are a class of programs that are what I think are called Family programs.
They will operate in more than one platform. Indeed LOADDSKF.EXE is one of
them. Another one is the little AEDIT.EXE which works under DOS,WIN, and OS/2
as well in 'native' mode. Let's examine that thought a moment based on what
I've researched.
You may or may not have a copy of the old Microsoft PD7 Developer's kit and the
PD-7 compiler. While it would generate code that will work under OS/2 and DOS
that's a 16 bit executable only, if my memory of actually doing it is correct.
As well, there has been a utilty around for use with the Borland PASCAL
compiler for OS/2 and DOS. It will let you combine the executables for DOS and
OS/2 into one much larger .EXE file. From my research, it is really a
switcher. At load time, it decides that you are executing in DOS or OS/2, then
switches to the executable part of the code which is appropriate for either
platform.
The older ALLFIX BBS program was written in this style. You could get it as a
DOS version. You could get it as an OS/2 native version, or .. You could get
it as a UNIVERSAL version which I have. In this case, the .EXE file for each
of the programs is rather much larger. You only have one .EXE file on the
disk, It works for both platforms as needed. The operation is, like in
LOADDSKF.EXE, transparent to the user.
However that toolset which let you do this for Borland PASCAL, if my
information is correct, is confined to, again 16 bit native OS/2 programs. It
does not extend to 32 Bit PM style operations. Thus its usefulness in the
modern GUI world is limited, one would think.
If you think about it, the technique of crafting multi-platform .EXE programs
is thus, it seems, a matter of switching at load time, I think I now understand
from the research I did. The author of the tool for the UNIVERSAL deal made
the statement in his DOCS, that any program written for OS/2 is really easy to
convert to run in any other platform if you really want to do it.
So I querried him about that issue and use for more than the two that were
offered and source variations on the theme. He never answered me. Pity.
His web site is now still there, but it is a FAX number and also the only way
you get to ask questions is to first, it seems let them charge your VISA or
MASTER card for $150 and they send you the tools. I've tried calling the voice
phone number off and on, but all I get is a FAX machine or a MODEM and not into
anything. The outfit still offers or still did offer consulting services for
multi-platform switched executables if you want .. But ..
I was going forward on this until I got a note from Dale Barnes who is now the
holder of both Intermail and Allfix. He said he was having trouble with the
toolset in the OS/2 port off Intermail and that Intermail would likely only be
available as a separate DOS and OS/2 version when the new OS/2 version is
available. I've got an invite to have dinner with him in Houston the next time
I go down there and Houston is on my trip list about every two weeks or month
or so. I intend to discuss the matter with him when I go.
Personally, I want a combined executable which runs unter native OS/2 or WIN or
LINUX as a single distributed .EXE program. What I'd LOVE to do his have that
from PowerBASIC source via the PB/CC compiler which is soon to be available for
LINUX, it seems.
I know more than you is interested in multi-platform!
--> Sleep well; OS/2's still awake! ;)
Mike @ 1:117/3001
--- Maximus/2 3.01
* Origin: Ziplog Public Port (1:117/3001)