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) .