Thread View: sci.electronics.cad
1 messages
1 total messages
Started by Mark van der Eynden
Sun, 15 Jun 2003 10:46
Getting Easytrax / Autotrax to work under XP
Author: Mark van der Eynden
Date: Sun, 15 Jun 2003 10:46
Date: Sun, 15 Jun 2003 10:46
135 lines
7849 bytes
7849 bytes
From posts here and elsewhere it is apparent that some of you are having trouble running Easytrax (or autotrax) under windows XP. Symptoms include:- 1. Spontaneous exits 2. NTVDM messages about illegal instructions 3. General lockup 4. Any other totally erroneous behaviour From searching the Internet it appears that Easytrax is not the only 16 bit, real mode, program that has these problems and I suspect all have the same cause. Having the same problem myself, and considering myself to be capable of getting to the source of the problem I have spent a somewhat intense couple of days debugging the issue and now believe it is solved. I will attempt to write up the full exercise for a �Serviceman� article in SC, however, I will not go into full details here. Suffice to say, the problem is caused by the �Path� in the system environment variables, combined with NTVDM�s translation of this for use by 16 bit programs. If you want to stop reading now just say �Path C:\graphdrv� before typing in �Easytrax�, or create a batch file that does the same. NTVDM translates the path into short 8.3 filenames as much as it can, however, if it finds and error, or a path that does not exist it just copies the text until the next semi-colon into the 16 bit path. Thus C:\program files\common files (probably) becomes C:\progra~1\common~1 Whereas C:\program files\an invalid directory Becomes c:\progra~1\an invalid directory NTVDM does not report this error (MSDOS never reported errors in path either, if you were lucky your program did, or at least ignored the errors). NTVDM also does not report Paths longer than the MSDOS limit (127 bytes), or individual directory paths that are longer than the MSDOS limit (66 bytes give or take a byte as tested in MDSOS 5). It is the combination of the translation and the 66 byte limit that is breaking Easytrax, however in Easytrax�s case the limit is 56 bytes (who would ever come close to this in the MSDOS days?). The error causes stack corruption in Easytrax that causes a wild branch that results in errors as described above. This is not unique to XP, it can happen on MSDOS, Windows 3.1, 95, NT, etc. I have already documented the easy solution. I have also written a program to identify the existence of the problem that Steve Murray has kindly put on his website http://www.airborn.com.au/layout/chkpath.exe along with a briefer (better) description of the problem than I have given here at www.airborn.com.au/layout/ntvdm.html In my specific case I had in my XP path a directory called �C:\WINDOWS\System32\WbemC:\Program Files\Common Files\Borland Shared\BDE� which was stuffing up Easytrax. Adding the semicolon in the correct place enabled Easytrax to work. I did not enter this myself, so some install program did the stuff up, I didn�t even know where I could change the XP path, so I guess I�d better let you all know�. In �Control Panel� double click on �System�, click on advanced, then �Environment Variables�. The first �User Variables� path is appended to the �System Variables� path to arrive at the path in the MSDOS box. After writing the above I tested my favourite MSDOS line mode editor (KEDIT) which I had not been able to get working under XP. Sure enough, once the longest directory path was 50 bytes or less it began working again, happy days! The NTVDM (�Virtual DOS Manager�) does a pretty good job of enabling all �well behaved� 16 bit programs to work under XP. See http://support.microsoft.com/default.aspx?scid=kb;en-us;314106 half way down the article. If you cannot get the VESA display drives to work you probably have a) a display that does not support VESA, or b) a BIOS that does not support VESA. The NTVDM detects the VESA call, puts the display into �full screen� mode and passes the call to the BIOS, what could be simpler? There are also issues with Alt-TAB. One XP machine I have works fine, the other results in corrupted display. This is almost certainly due to a bug in the video driver routine, the machine I have the problem with has the latest driver, so you may have to live with this. One circumvention is to �shell to dos� before ALT tabbing (set up a macro), another is to use the �force mode� VESA drivers and press �END� to rebuild the display. I reckon it should be possible to alter the �Force mode� drivers to only �Force� when the �END� key is pressed. I�ll look into this when I get frustrated enough with the effects of force mode, or maybe when enough people want me to do it. There is also an issue with XP itself, after ALT tabbing out of a graphical dos �full screen�, you have to Alt-TAB back TWICE to get back. A circumvention for this is to Alt-ENTER out and then Alt-TAB back in, silly isn�t it!? Of course if you have used �shell to dos� as mentioned above, it wont happen either. There have also been comments here about Printing to modern printers from Easytrax (or should I say Easyplot). I would expect that �most� modern printers (those that have �intelligence�, not the ones that use windows programs to drive them bit by bit) would produce the correct printout when presented with �HPLSR300� output. Certainly any HP printer will and since the HP command set is almost universally supported. The issue is probably the modern printers lack of support from the MSDOS box. In this case just �print to file� from Easyplot and copy the file to the printer, don�t �print� it as this will add extra control characters that may upset the output. Eg �copy pcb.rck \\server\printer� For �dumb� printers, or printers that just wont work using the method outlined above, do the following. Download Ghostscript from http://www.ghostscript.com/ and set Easyplot to use Postscript and to print to file. When the file is created use Gsview to view the postscript output, from this program you will be able to print to any windows printer in the �normal� manner. It also helps to maximise the Easyplot window manually just after starting, by pressing Atl-Enter, otherwise it appears �slow�, you may also need to press enter to a varying amount of �Abort Process� messages during the print. Long live Easytrax! Cheers, Mark
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads