public inbox for linux-msdos@vger.kernel.org
 help / color / mirror / Atom feed
* Hoo boy!  This is going to be interesting.
@ 2010-10-08 19:19 Steve Cohen
  0 siblings, 0 replies; 8+ messages in thread
From: Steve Cohen @ 2010-10-08 19:19 UTC (permalink / raw)
  To: linux-msdos

Okay, I am engaged in an effort trying to determine whether or not 
DOSEMU offers any hope as a path to porting a complicated legacy DOS 
application to more modern hardware as our stocks of available 
DOS-compliant hardware are diminishing to the danger point and 
replacements are no longer available.

To that end, I've downloaded DOSEMU onto a Ubuntu 10.04 system and it 
seems to work reasonably out of the box.

A very naive attempt to test the compatibility involved copying the 
executable in question to a drive accessible to DOSEMU, starting DOSEMU 
and running the application.

I start dosemu by simply typing the dosemu command, and a "DOS BOX" 
comes up in a different window.  All the normal stuff is doable.  But 
when I cd into the directory where I've placed my executable and then 
execute it, it blows up the DOS BOX (closes it) and in my original xterm 
window I now see:

OUCH! attempt to execute interrupt table - quickly dying

Well, I said this was a naive attempt.  But I have two weeks to get this 
to work.  Can someone tell me what this error message indicates and 
where I might possibly go to figure out how to fix it?

Thanks,
Steve Cohen

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Hoo boy!  This is going to be interesting.
@ 2010-10-08 19:25 Steve Cohen
  2010-10-08 20:22 ` Frank Cox
  0 siblings, 1 reply; 8+ messages in thread
From: Steve Cohen @ 2010-10-08 19:25 UTC (permalink / raw)
  To: linux-msdos

Okay, I am engaged in an effort trying to determine whether or not 
DOSEMU offers any hope as a path to porting a complicated legacy DOS 
application to more modern hardware as our stocks of available 
DOS-compliant hardware are diminishing to the danger point and 
replacements are no longer available.

To that end, I've downloaded DOSEMU onto a Ubuntu 10.04 system and it 
seems to work reasonably out of the box.

A very naive attempt to test the compatibility involved copying the 
executable in question to a drive accessible to DOSEMU, starting DOSEMU 
and running the application.

I start dosemu by simply typing the dosemu command, and a "DOS BOX" 
comes up in a different window.  All the normal stuff is doable.  But 
when I cd into the directory where I've placed my executable and then 
execute it, it blows up the DOS BOX (closes it) and in my original xterm 
window I now see:

OUCH! attempt to execute interrupt table - quickly dying

Well, I said this was a naive attempt.  But I have two weeks to get this 
to work.  Can someone tell me what this error message indicates and 
where I might possibly go to figure out how to fix it?

Thanks,
Steve Cohen

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy!  This is going to be interesting.
  2010-10-08 19:25 Hoo boy! This is going to be interesting Steve Cohen
@ 2010-10-08 20:22 ` Frank Cox
  2010-10-09  9:47   ` Paul Crawford
  2010-10-18 17:44   ` Steve Cohen
  0 siblings, 2 replies; 8+ messages in thread
From: Frank Cox @ 2010-10-08 20:22 UTC (permalink / raw)
  To: Steve Cohen; +Cc: linux-msdos


On Fri, 2010-10-08 at 14:25 -0500, Steve Cohen wrote:
> Can someone tell me what this error message indicates and 
> where I might possibly go to figure out how to fix it?

What version of dosemu are you trying to use?

Is the problem with dosemu or with freedos?  Have you tried running your
application under "native" freedos?  Have you tried running your
application under dosemu with ms-dos (or whatever dos version you run it
under now)?

What language is your application written in?  Do you have the source
code and a suitable compiler?  If so, are you sufficiently familiar with
the programming that you can play with the source code for your
application and find out exactly what's causing it to blow up?

What kind of application are you using?  Process control?  Database?
Custom hardware driver?  Something else?

-- 
MELVILLE THEATRE ~ Melville Sask ~ http://www.melvilletheatre.com


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy!  This is going to be interesting.
  2010-10-08 20:22 ` Frank Cox
@ 2010-10-09  9:47   ` Paul Crawford
  2010-10-18 17:44   ` Steve Cohen
  1 sibling, 0 replies; 8+ messages in thread
From: Paul Crawford @ 2010-10-09  9:47 UTC (permalink / raw)
  To: Frank Cox; +Cc: Steve Cohen, linux-msdos

On 08/10/10 21:22, Frank Cox wrote:
> What version of dosemu are you trying to use?
>
> Is the problem with dosemu or with freedos?  Have you tried running your
> application under "native" freedos?  Have you tried running your
> application under dosemu with ms-dos (or whatever dos version you run it
> under now)?
>
> What language is your application written in?  Do you have the source
> code and a suitable compiler?  If so, are you sufficiently familiar with
> the programming that you can play with the source code for your
> application and find out exactly what's causing it to blow up?
>
> What kind of application are you using?  Process control?  Database?
> Custom hardware driver?  Something else?

There are a number of things you need to try as outlined above.

However, you should also be aware that dosemu 'plays better' on a 32-bit 
OS than a 64-bit version, at least in my experience of trying the MS 
C6.0 compiler for our legacy applications.

As outlined above, try your application on 'real hardware' using freedos 
and whatever other DOS versions you have. Try and establish what it is 
happy with first. If it is only happy with, say, MS-DOS 6.22 then you 
can try that inside dosemu and see if it is then happy.

Finally once your app is not crashing dosemu, remember that some DOS 
applications, and our primary reason for using dosemu, need direct 
hardware access. Don't give dosemu a blank cheque though, find out what 
your app needs and enable just that, remembering also you need to edit 
the dosemu.conf file to allow such access *AND* to start dosemu / 
xdosemu with the '-s' option as well (and to be a sudo'er, as this 
punches a huge hole through the OS' security model!)

If you don't allow direct access you won't crash dosemu, it emulates the 
(wrong) results, so it is unlikely that a crash can be fixed by enabling 
this. Do it only *if* you need some special hardware to work, and you 
already have things kind of working OK (at least to the level of 
starting and stopping an application fairly normally).

And you are testing on a machine with no unique/valuable data I trust? :)

Regards,
Paul

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy!  This is going to be interesting.
  2010-10-08 20:22 ` Frank Cox
  2010-10-09  9:47   ` Paul Crawford
@ 2010-10-18 17:44   ` Steve Cohen
  2010-10-18 18:21     ` Paul Crawford
  2010-10-18 21:18     ` solarflow99
  1 sibling, 2 replies; 8+ messages in thread
From: Steve Cohen @ 2010-10-18 17:44 UTC (permalink / raw)
  To: Frank Cox; +Cc: linux-msdos

On 10/08/2010 03:22 PM, Frank Cox wrote:
>
> On Fri, 2010-10-08 at 14:25 -0500, Steve Cohen wrote:
>> Can someone tell me what this error message indicates and
>> where I might possibly go to figure out how to fix it?
>
> What version of dosemu are you trying to use?
>
> Is the problem with dosemu or with freedos?  Have you tried running your
> application under "native" freedos?  Have you tried running your
> application under dosemu with ms-dos (or whatever dos version you run it
> under now)?
>
> What language is your application written in?  Do you have the source
> code and a suitable compiler?  If so, are you sufficiently familiar with
> the programming that you can play with the source code for your
> application and find out exactly what's causing it to blow up?
>
> What kind of application are you using?  Process control?  Database?
> Custom hardware driver?  Something else?
>

Sorry for the lapse.  I was on vacation.  Thanks for your help.

It's 1.4, the version you get with apt-get from Ubuntu 10.04 and the 
latest stable version, I believe.

This error happens under freedos.  I have not yet tried running it under 
MS-DOS, which is what it runs under normally.

The application is a legacy app written about 20 years ago in C.  We 
have source code for all the code that was written by our organization 
and for some of the third party libraries that were used.  These include 
CScape (for which we do have source) and the Greenleaf Communications 
Library, for which, thus far, we don't.  The application also uses some 
version of the PharLap DOS Extender, which currently is at the top of my 
suspect list for this problem.  I've read the EMUfailure page, which 
mentions that

> Older versions of the Pharlap Extender (run286) need ring-0 access under DOSEMU to install their own DPMI server. The use of proprietary undocumented extensions to the DPMI protocol makes DOSEMU's DPMI server unsuitable for this extender.

I don't see run286 as something we're loading and the version of PharLap 
we are using includes the binaries phar2_ir.dll and phar2_ir.lib.  Can 
someone confirm that this IS or ISN'T the version of PharLap that won't 
work with DOSemu?  It appears to be the Greenleaf library that needs the 
PharLap and they include a header called phar286.h to support it.

The application is an operator console for a telephony-based system.  It 
uses the serial port to communicate with a phone-dialing device.  It 
also has a network interface to the back-end part of this system which 
handles switching, billing, and other interfaces.

Although we have source code and suitable compilers, tweaking it much is 
probably not an option for business reasons.  We are on a 2-week 
fish-or-cut-bait time frame for evaluating DOSEMU for this purpose.  If 
we can't get this to work, we will look at rewriting instead, which is 
our preferred long-term solution.  DOSEMU, if it proves out in the two 
weeks allotted, would be the short term solution.  The reason for this 
whole effort is hardware exhaustion - we haven't figured out a workable 
way to replace the old hardware, and are running out of suitable 
replacements, which are no longer available.

Steve Cohen

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy!  This is going to be interesting.
  2010-10-18 17:44   ` Steve Cohen
@ 2010-10-18 18:21     ` Paul Crawford
  2010-10-18 21:18     ` solarflow99
  1 sibling, 0 replies; 8+ messages in thread
From: Paul Crawford @ 2010-10-18 18:21 UTC (permalink / raw)
  To: Steve Cohen; +Cc: Frank Cox, linux-msdos

Dear Steve,
> It's 1.4, the version you get with apt-get from Ubuntu 10.04 and the
> latest stable version, I believe.

Are you using 32-bit or 64-bit? I found 32-bit plays better generally.

> Although we have source code and suitable compilers, tweaking it much is
> probably not an option for business reasons. We are on a 2-week
> fish-or-cut-bait time frame for evaluating DOSEMU for this purpose. If
> we can't get this to work, we will look at rewriting instead, which is
> our preferred long-term solution. DOSEMU, if it proves out in the two
> weeks allotted, would be the short term solution. The reason for this
> whole effort is hardware exhaustion - we haven't figured out a workable
> way to replace the old hardware, and are running out of suitable
> replacements, which are no longer available.

If all you talk to are serial ports, then you can use a VM under Linux 
and have that run your software & MS-DOS in it, and pass through the 
serial stuff to the machine's hardware.

Only 'gotcha' I have found is VM's generally can't successfully set 
non-standard baud rates, where as dosemu can (particularly if its going 
via direct hardware I/O to the serial ports rather than emulation).

Re-writing, while a good long terms solution, should *not* be under 
estimated in terms of the effort needed!

Having the source code is a *major* bonus, and you might be able to 
re-compile for Linux by only replacing some of the I/O and user 
interface side of it. We still have a 19-year old DOS control program 
that we use 24/7 on several systems because:

1) It works reliably (a lot of debugging over the years).

2) There is little "value" in a new program. Given we have it happy 
under dosemu, there is no functional advantage to changing.

3) It is around 6 months effort to re-write, then at least another 6 
months to debug to an acceptably good degree of reliability. Given (2) 
there is a lot better use of our time on other projects (i.e. little 
"business case" for it).

Regards,
Paul

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy! This is going to be interesting.
  2010-10-18 17:44   ` Steve Cohen
  2010-10-18 18:21     ` Paul Crawford
@ 2010-10-18 21:18     ` solarflow99
  2010-10-18 22:00       ` Steve Cohen
  1 sibling, 1 reply; 8+ messages in thread
From: solarflow99 @ 2010-10-18 21:18 UTC (permalink / raw)
  To: linux-msdos

if possible, you could try the latest dosemu out of SVN, and use
ms-dos instead, then make sure your dosemu.conf settings are
uncommented for anything you think is suspect, such as enabling direct
hardware access, etc.


On Mon, Oct 18, 2010 at 10:44 AM, Steve Cohen <stevecoh1@comcast.net> wrote:
> On 10/08/2010 03:22 PM, Frank Cox wrote:
>>
>> On Fri, 2010-10-08 at 14:25 -0500, Steve Cohen wrote:
>>>
>>> Can someone tell me what this error message indicates and
>>> where I might possibly go to figure out how to fix it?
>>
>> What version of dosemu are you trying to use?
>>
>> Is the problem with dosemu or with freedos?  Have you tried running your
>> application under "native" freedos?  Have you tried running your
>> application under dosemu with ms-dos (or whatever dos version you run it
>> under now)?
>>
>> What language is your application written in?  Do you have the source
>> code and a suitable compiler?  If so, are you sufficiently familiar with
>> the programming that you can play with the source code for your
>> application and find out exactly what's causing it to blow up?
>>
>> What kind of application are you using?  Process control?  Database?
>> Custom hardware driver?  Something else?
>>
>
> Sorry for the lapse.  I was on vacation.  Thanks for your help.
>
> It's 1.4, the version you get with apt-get from Ubuntu 10.04 and the latest
> stable version, I believe.
>
> This error happens under freedos.  I have not yet tried running it under
> MS-DOS, which is what it runs under normally.
>
> The application is a legacy app written about 20 years ago in C.  We have
> source code for all the code that was written by our organization and for
> some of the third party libraries that were used.  These include CScape (for
> which we do have source) and the Greenleaf Communications Library, for
> which, thus far, we don't.  The application also uses some version of the
> PharLap DOS Extender, which currently is at the top of my suspect list for
> this problem.  I've read the EMUfailure page, which mentions that
>
>> Older versions of the Pharlap Extender (run286) need ring-0 access under
>> DOSEMU to install their own DPMI server. The use of proprietary undocumented
>> extensions to the DPMI protocol makes DOSEMU's DPMI server unsuitable for
>> this extender.
>
> I don't see run286 as something we're loading and the version of PharLap we
> are using includes the binaries phar2_ir.dll and phar2_ir.lib.  Can someone
> confirm that this IS or ISN'T the version of PharLap that won't work with
> DOSemu?  It appears to be the Greenleaf library that needs the PharLap and
> they include a header called phar286.h to support it.
>
> The application is an operator console for a telephony-based system.  It
> uses the serial port to communicate with a phone-dialing device.  It also
> has a network interface to the back-end part of this system which handles
> switching, billing, and other interfaces.
>
> Although we have source code and suitable compilers, tweaking it much is
> probably not an option for business reasons.  We are on a 2-week
> fish-or-cut-bait time frame for evaluating DOSEMU for this purpose.  If we
> can't get this to work, we will look at rewriting instead, which is our
> preferred long-term solution.  DOSEMU, if it proves out in the two weeks
> allotted, would be the short term solution.  The reason for this whole
> effort is hardware exhaustion - we haven't figured out a workable way to
> replace the old hardware, and are running out of suitable replacements,
> which are no longer available.
>
> Steve Cohen
> --
> To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Hoo boy! This is going to be interesting.
  2010-10-18 21:18     ` solarflow99
@ 2010-10-18 22:00       ` Steve Cohen
  0 siblings, 0 replies; 8+ messages in thread
From: Steve Cohen @ 2010-10-18 22:00 UTC (permalink / raw)
  To: solarflow99; +Cc: linux-msdos

Actually, I'm an idiot.

I wasn't launching my application the way it expected to be launched. 
It is usually launched through a batch file which does some system setup.

Launching it in this way no longer gives the error, but there is still 
much setup of DOSEMU to be done.

OK, on to the next "point of interest".




On 10/18/2010 04:18 PM, solarflow99 wrote:
> if possible, you could try the latest dosemu out of SVN, and use
> ms-dos instead, then make sure your dosemu.conf settings are
> uncommented for anything you think is suspect, such as enabling direct
> hardware access, etc.
>
>
> On Mon, Oct 18, 2010 at 10:44 AM, Steve Cohen<stevecoh1@comcast.net>  wrote:
>> On 10/08/2010 03:22 PM, Frank Cox wrote:
>>>
>>> On Fri, 2010-10-08 at 14:25 -0500, Steve Cohen wrote:
>>>>
>>>> Can someone tell me what this error message indicates and
>>>> where I might possibly go to figure out how to fix it?
>>>
>>> What version of dosemu are you trying to use?
>>>
>>> Is the problem with dosemu or with freedos?  Have you tried running your
>>> application under "native" freedos?  Have you tried running your
>>> application under dosemu with ms-dos (or whatever dos version you run it
>>> under now)?
>>>
>>> What language is your application written in?  Do you have the source
>>> code and a suitable compiler?  If so, are you sufficiently familiar with
>>> the programming that you can play with the source code for your
>>> application and find out exactly what's causing it to blow up?
>>>
>>> What kind of application are you using?  Process control?  Database?
>>> Custom hardware driver?  Something else?
>>>
>>
>> Sorry for the lapse.  I was on vacation.  Thanks for your help.
>>
>> It's 1.4, the version you get with apt-get from Ubuntu 10.04 and the latest
>> stable version, I believe.
>>
>> This error happens under freedos.  I have not yet tried running it under
>> MS-DOS, which is what it runs under normally.
>>
>> The application is a legacy app written about 20 years ago in C.  We have
>> source code for all the code that was written by our organization and for
>> some of the third party libraries that were used.  These include CScape (for
>> which we do have source) and the Greenleaf Communications Library, for
>> which, thus far, we don't.  The application also uses some version of the
>> PharLap DOS Extender, which currently is at the top of my suspect list for
>> this problem.  I've read the EMUfailure page, which mentions that
>>
>>> Older versions of the Pharlap Extender (run286) need ring-0 access under
>>> DOSEMU to install their own DPMI server. The use of proprietary undocumented
>>> extensions to the DPMI protocol makes DOSEMU's DPMI server unsuitable for
>>> this extender.
>>
>> I don't see run286 as something we're loading and the version of PharLap we
>> are using includes the binaries phar2_ir.dll and phar2_ir.lib.  Can someone
>> confirm that this IS or ISN'T the version of PharLap that won't work with
>> DOSemu?  It appears to be the Greenleaf library that needs the PharLap and
>> they include a header called phar286.h to support it.
>>
>> The application is an operator console for a telephony-based system.  It
>> uses the serial port to communicate with a phone-dialing device.  It also
>> has a network interface to the back-end part of this system which handles
>> switching, billing, and other interfaces.
>>
>> Although we have source code and suitable compilers, tweaking it much is
>> probably not an option for business reasons.  We are on a 2-week
>> fish-or-cut-bait time frame for evaluating DOSEMU for this purpose.  If we
>> can't get this to work, we will look at rewriting instead, which is our
>> preferred long-term solution.  DOSEMU, if it proves out in the two weeks
>> allotted, would be the short term solution.  The reason for this whole
>> effort is hardware exhaustion - we haven't figured out a workable way to
>> replace the old hardware, and are running out of suitable replacements,
>> which are no longer available.
>>
>> Steve Cohen
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-10-18 22:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-08 19:25 Hoo boy! This is going to be interesting Steve Cohen
2010-10-08 20:22 ` Frank Cox
2010-10-09  9:47   ` Paul Crawford
2010-10-18 17:44   ` Steve Cohen
2010-10-18 18:21     ` Paul Crawford
2010-10-18 21:18     ` solarflow99
2010-10-18 22:00       ` Steve Cohen
  -- strict thread matches above, loose matches on Subject: below --
2010-10-08 19:19 Steve Cohen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox