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