[comp.sys.ibm.pc] Poet Problem

gauss@homxc.ATT.COM (E.GAUSS) (05/06/89)

I purchased a product, POET's COMPANION, that was supposed to work
on all MS-DOS machines.  It does not work on MS-DOS 2.11.  In
my exchange of letters with the living room company that is selling
it, I find that they have only tested it on PC-DOS of versions
higher than 3.0.

The program bombs when it cannot find its data files.

All I have are the .EXE and the .DAT files.  If any of you software
gurus know of the differences between 2.11 and 3.+ at this level,
and if a fix might be possible using DEBUG please aim me in the
right direction.

I really am not going to convert to 3.+ to get POET working because
I have much to much software running nicely on 2.11 and if it ain't
broke I ain't going to fix it.  I would much rather smash POET trying
to fix that, than to debug the rest of my system after a release change.

Ed Gauss

mju@mudos.ann-arbor.mi.us (Marc Unangst) (05/12/89)

In article <6555@homxc.ATT.COM>, gauss@homxc.ATT.COM (E.GAUSS) writes:

 >I purchased a product, POET's COMPANION, that was supposed to work
 >on all MS-DOS machines.  It does not work on MS-DOS 2.11.  In
 >my exchange of letters with the living room company that is selling
 >it, I find that they have only tested it on PC-DOS of versions
 >higher than 3.0.
 >
 >The program bombs when it cannot find its data files.

This is due to a difference in the way that DOS 3.x and DOS 2.x process
command-line arguements.  In DOS 3.x, argv[0] is set to the full
pathname (drive, directory, and filename) of the program that was
executed.  If I was in C:\APPS\WP and I executed WORD.EXE, argv[0] would
contain "C:\APPS\WP\WORD.EXE".  This allows the program to find data
files or overlays that would be in the same directory, simply by
stripping off the last path element ("WORD.EXE") and appending the
name of the file it's looking for.

However, DOS 2.x does not have this feature.  I believe that all you
get in argv[0] is the name of the program (no path or drive name).
Thus, it will only be able to find the files it wants if they are
in the current directory.

There is no way you can solve this problem, unless you have the source
code to the program and are proficient in whatever language it was
written in.  It involves changes too elaborate to be done in DEBUG.
However, there is one solution that MAY work.  You can try running
the program from the directory where the data files are stored.  If,
for example, you stored your data files in "C:\DATA", you would
execute a "C:" and then a "CD\DATA" before executing the program.
If this works, then your problem is solved.  If it doesn't, then your
only choices are to either upgrade to DOS 3.x (highly recommended, because
it includes many improvements over DOS 2.11), or stop using the
program.

--  
Marc Unangst
UUCP smart    : mju@mudos.ann-arbor.mi.us
UUCP dumb     : ...!uunet!sharkey!mudos!mju
UUCP dumb alt.: ...!{ames,rutgers}!mailrus!clip!mudos!mju
Internet      : mju@mudos.ann-arbor.mi.us