This file was posted on the Compu$erve Flight Simulator Forum. I have converted it to HTML for easier readbility. -=DAH=- 1997-02-171998-03-26: See also SWOTL CD-ROM FAQ provided by Richard Muth's The SWOTL Web Site Home Page.
Wow! What a bummer! SWOTL CD doesn't run from WIN 95. Why?, Well MindScape appearently came up with some way out in left field method (Hah. Hah. they used documented DOS features and utilitys) to attach the CD drive to the "data disk" using APPEND.EXE. I suspect that their intention was to guarantee that the SWOTL CD was in the drive too, shades of copy protection schemes of bygone eras.
Well, being an old style hacker I decided that MindScapes answer of "No Fix" wasn't good enough for me. So I did some poking.
When SWOTL.BAT is run from the CD it calls a program called CDGAMES.EXE. I do not know exactly what it does, but it appears to create a file on the data disk (mine is C:) C:\LUCAS\SWOTL\TASK.BAT.
TASK.BAT is what actually runs SWOTL.EXE, which must be the game. The first thing TASK.BAT does is check that DOS'S error level has been set to 2. (CDGAMES.EXE must do this). This stops inquisitive morons from running the program. Before TASK.BAT runs SWOTL.EXE (with lots of arcane options) it runs APPEND.EXE 3 times. The first time is "APPEND /x" This turns APPEND on (which means DOS searches in an "append list" for data files.) Then it calls "APPEND D:\LUCAS\SWOTL\empty" where D: is my CD drive letter. This tells APPEND.EXE to search there (D:\LUCAS|SWOTL|EMPTY) for data files. (A data file is a file that a program trys to open). Check out your CD, there is an empty empty there, or is it? TASK.BAT then calls "APPEND > APPEND'S.$$$". This is supposed to put the just created list of appended directorys "D:\LUCAS\SWOTL\empty;" as a text string into a file called APPEND'S.$$$. Finally it calls the program SWOTL.EXE after checking for it's existance.
O.K, now you wonder... I legitimatly own SWOTL CD, it's in the drive, so WTH? Well, from what I can tell APPEND.EXE limps in DOS 7.0 (WIN 95). It is a TSR (Terminate and Stay Resident) program. The first time it is invoked it appears to load and do what it is told. After that any command line invocation gets you "APPEND ALREADY LOADED" (I knew that). So TASK.BAT calls APPEND /x to turn it on, THE DEFAULT STATE! and APPEND.EXE forever after says "APPEND ALREADY INSTALLED". Now I suppose that the way that APPEND.EXE works in WIN 95 isn't really MindScapes fault, is it? But every thing else with this crazy scheme sure is!
How to fix. Appearently APPEND.EXE still does what it is supposed to do, except not from the command line. I wrote a new batch file called RUNLUFT.BAT. I will explain each line, line by line.
SWOTL.EXE erases APPEND'S.$$$, so it has to be re created every time. APPEND won't do it, so we have to. Further more, the program CDGAMES.EXE recreates TASK.BAT every time. So it looks to me like they tried to come up with some half-baked DOS method of forcing CDGAMES.EXE to run, and it appears to have some way of checking that is is on a CD drive. The bottom line is that they have forced that CD to be there.
The planes, The planes! Copied right from my task.bat. The V is VGA, I think. I have no idea what anything else is. (They relate to sound, joystick, etc. The final number is the size of the replay cache. JGF)
MY TASK.BAT (FYI it is useless in WIN 95)
@echo off if not errorlevel 2 goto done if errorlevel 3 goto done C:\TEMP\append /x C:\TEMP\append D:\LUCAS\SWOTL\empty; if not exist SWOTL.EXE goto fail append >append's.$$$ SWOTL.EXE V S 5 Y N Y 1008 C:\TEMP\append ; C: cd \ :done D: cd \ goto exit :fail echo REDIRECTED EXEC FAILED -- "SWOTL.EXE" CD="D:\LUCAS\SWOTL\empty;" DD="C:\LUCAS\SWOTL" PD="V S 5 Y N Y 1008" :exitMY RUNLUFT.BAT (Lots simpler, after all we know it's there, don't we)
setver C:\util\append D:\LUCAS\SWOTL\empty; copy append's.bak *.$$$ SWOTL.EXE V S 5 Y N Y 1008MY APPEND'S.BAK
D:\LUCAS\SWOTL\EMPTY;The exact steps that I took to run SWOTL.
1997-02-24: Doug has provided me with this addenda ... latest postings closest to top. :-)
p.s. (Nobody has ever mentioned having a different command line)
The file that I mention APPEND'S.BAK is a file that you create. It has to mimic a file that append.exe would create if it operated properly under DOS 7.0. When the original TASK.BAT executes the line "C:\TEMP\APPEND D:\LUCAS\SWOTL\EMPTY" it is telling DOS (via APPEND.EXE) to search the D:\LUCAS\SWOTL\EMPTY for files that applications attempt to open. The "D:" in front of "\LUCAS\SWOTL\EMPTY" is the drive letter of your CD ROM Drive. When the original TASK.BAT executes the line "C:\TEMP\APPEND > APPEND'S.$$$", in previous DOS versions APPEND writes its report listing the APPENDED paths to the file APPEND'S.$$$. SWOTL looks for that file and then erases it. RUNLUFT.BAT mimics that feature of APPEND.EXE that no longer works by copying the file APPEND'S.BAK that you create to APPEND'S.$$$. You create APPEND'S.BAK with the correct path to your CD ROM DRIVE. A typical computer will have the CD ROM be the D: drive, and the path will be D:\LUCAS\SWOTL\EMPTY. This is shown in my examples, as I have a C: hard drive and a D: CD ROM drive.
Also not clear below, is how to set up SETVER. SETVER is a software patch to fool older programs that think you have the wrong version of DOS. Many programs check for the DOS version when they load. WIN '95 DOS is ver 7.0. Some programs will refuse to run. APPEND.EXE is one of them. WIN '95 automatically installs SETVER, and probably sets it up correctly. However if it isn't set up correctly SWOTL won't work. Here is how to check.
First READ CONFIG.TXT in your WINDOWS directory, about AUTO/NOAUTO. Make sure that you are in AUTO mode, or that your CONFIG.SYS explisitly loads SETVER.
Next, after you are sure that SETVER is loading; from WIN '95, START > PROGRAMS > MS DOS PROMPT then at the DOS PROMPT type setver | more (this won't work from START > RUN)
You will get a list of the files, and the version that SETVER reports to those programs. APPEND.EXE must be in the list, and with the correct version. If the version isn't correct type SETVER /? for instructions on how to fix it. Then I think you should restart WIN '95 (if you change the version in SETVER)
Now there has been some confusion about the inclusion of the semi colons at the end of some of the paths in my examples. I have tried both ways, and both work. For an update, of the latest files, that work (just played the game 5 minutes ago) I will use the power of windows to suck my present batch files into this text file.
RUNLUFT.BAT.
C:\util\append D:\LUCAS\SWOTL\empty copy append's.bak *.$$$ SWOTL.EXE V S 5 Y N Y 1008 c:\util\append ;APPEND'S.BAK
D:\LUCAS\SWOTL\EMPTYOnce again, good luck. Read below for previous details.
Good luck, if you try my idea, I would appreciate a report on if it works, or not. I am interested in perfecting this method, and may be able to be of further assistance. I can be reached at two INTERNET addresses,
72411.115@compuserve.com
dcrowe@telogy.com
"telogy.com" is better during the business week.