www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/10/27/14:38:44

Date: Thu, 27 Oct 1994 09:46:20 -0700
From: William Dere <will AT wrs DOT com>
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Please, can someone help with async driver under Windows 3.1?

Folks,

I'm new to using the PC as a development host, and I'm trying to use
djgpp and go32 to develop an application for a DOS box under Windows 3.1.
I'm having problems trying to use the asynchronous serial port driver in 
a DOS box under Windows 3.1.

In djgpp, under the contrib/async subdirectory there is a test program gtest
and source for the serial driver, which can run using the DOS extender
go32.  Under plain old DOS, I have no problems installing the TSR asyntsr.com
and then running the test.  The test allows one to send I/O in or out of 
COM1 or COM2 depending on parameters passed to the test program.

However, under Windows 3.1 in a DOS box, when I try to run the same
program, I get a general protection fault:

exception 13 (0xd) occurred, error code = 0x80000000


This exception occurs in the program getivec() called by async_init().  It 
occurs at the line:

a = (ASYNC_STRUCT *) (0xe0000000 + peek (0, which*4+2)*16 + peek (0,which*4));

Which is looking at a location in high RAM (0xe0000000+) for the structure.

I guess that under Windows, addresses are virutally mapped, so that the
access creates an execption, while under DOS, the address is accessible and
the program runs.

Does someone have experience in porting this driver over to a DOS box 
running under windows?  Can someone give me some advice as how to solve this
problem, or point me to a good reference which can give me a handle on what's
really going on here?

Thanks a million,

Will Dere
will AT wrs DOT com
510-814-2089


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019