🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#5
Author: Mark van der Eynden
Date: Sun, 15 Jun 2003 10:46
135 lines
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