1. Euphoria on DOSbox

If Euphoria for DOS were re-compiled without the Causeway DOS extender,
would it then run under DOSbox, which can be run on Pockt PC's?

Has anybody tried this already? (Couldn't find evidence of that in my forum
searches so far).

THanks.

new topic     » topic index » view message » categorize

2. Re: Euphoria on DOSbox

olddog wrote:
> If Euphoria for DOS were re-compiled without the Causeway DOS extender,
> would it then run under DOSbox, which can be run on Pockt PC's?
>
> Has anybody tried this already? (Couldn't find evidence of that in my forum
> searches so far).

I briefly considered compiling the interpreter with 
the old 16-bit 640K-limited Watcom DOS C compiler
many years ago (just as an extra option for some people), 
but I never seriously tried to make it work.
Without a DOS extender like Causeway or DOS4GW,
the interpreter would be limited to 640K of memory.
Only small programs would run.
Perhaps translated-to-C programs would have a slightly
better chance, since they need less memory 
(no Euphoria front-end in memory).
I'm sure you'd run into lots of 32-bit to 16-bit 
C-related glitches.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

3. Re: Euphoria on DOSbox

olddog wrote:
 
> If Euphoria for DOS were re-compiled without the Causeway DOS extender,
> would it then run under DOSbox, which can be run on Pockt PC's?
> 
> Has anybody tried this already? (Couldn't find evidence of that in my forum
> searches so far).
> 
> THanks.

It seems to me that if you have DOSBox running OK on your Pocket PC,
then you do not need recompile Euphoria interpreter at all.
DOSBox must care itself about its compatibility with PPC native
OS, and must care about its compatibility with hosted DOS program.

That thing we can see on Kolibri OS, specific port of DOSBox to
Kolibri runs Euphoria DOS32 OK, there are some bugs, for example,
DOS mouse of EU doesn't work on that DOSBox, but DOSBox itself
is not completed by development, so we have just some
perspective of perfect work.

So I'd just try EU on DOSBox of PPC without any recompilation,
just as it is, why not?

Sorry, I do not have PPC ...  smile

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

4. Re: Euphoria on DOSbox

Igor Kachan wrote:
> 
> olddog wrote:
>  
> > If Euphoria for DOS were re-compiled without the Causeway DOS extender,
> > would it then run under DOSbox, which can be run on Pockt PC's?
> > 
> > Has anybody tried this already? (Couldn't find evidence of that in my forum
> > searches so far).
> > 
> > THanks.
> 
> It seems to me that if you have DOSBox running OK on your Pocket PC,
> then you do not need recompile Euphoria interpreter at all.
> DOSBox must care itself about its compatibility with PPC native
> OS, and must care about its compatibility with hosted DOS program.
> 
> That thing we can see on Kolibri OS, specific port of DOSBox to
> Kolibri runs Euphoria DOS32 OK, there are some bugs, for example,
> DOS mouse of EU doesn't work on that DOSBox, but DOSBox itself
> is not completed by development, so we have just some
> perspective of perfect work.
> 
> So I'd just try EU on DOSBox of PPC without any recompilation,
> just as it is, why not?
> 
> Sorry, I do not have PPC ...  smile

Igor:

This is index for using mouse on MinuetOS which should be
same as Kolibri OS.

So a mouse driver should be easy to setup for Euphoria.
 
-- ========================================================== 
 37 - Get mouse data

         In : rbx - 0 Mouse coordinates, screen relative

         Out: rax - X shl 32 + Y
 
         In : rbx - 1 Mouse coordinates, window relative

         Out: rax - X shl 32 + Y

         In : rbx - 2 Mouse buttons state

         Out: rax - State

         In : rbx - 3 Scroll wheel change

         Out: rax - Change
-- ========================================================== 

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

5. Re: Euphoria on DOSbox

Bernie Ryan wrote:
> 
> Igor Kachan wrote:

[snip]

> > 
> > That thing we can see on Kolibri OS, specific port of DOSBox to
> > Kolibri runs Euphoria DOS32 OK, there are some bugs, for example,
> > DOS mouse of EU doesn't work on that DOSBox, but DOSBox itself
> > is not completed by development, so we have just some
> > perspective of perfect work.

[snip]

> Igor:
> 
> This is index for using mouse on MinuetOS which should be
> same as Kolibri OS.
> 
> So a mouse driver should be easy to setup for Euphoria.
>  
> -- ========================================================== 
>  37 - Get mouse data
> 
>          In : rbx - 0 Mouse coordinates, screen relative
> 
>          Out: rax - X shl 32 + Y
>  
>          In : rbx - 1 Mouse coordinates, window relative
> 
>          Out: rax - X shl 32 + Y
> 
>          In : rbx - 2 Mouse buttons state
> 
>          Out: rax - State
> 
>          In : rbx - 3 Scroll wheel change
> 
>          Out: rax - Change
> -- ==========================================================


Hi Bernie,
 

Yes, I have same picture on Kolibri.

And the problem is that EU DOS32 mouse works good
just in mode 18, but we must draw our own mouse
cursors on SVGA.

And DOSBox on Kolibri uses SVGA modes and there is
no the EU mode 18 mouse cursor!

See?

I almost finished my Kolibri/Euphoria instruction.
Tomorrow, I plan to upload it to RDS site.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

6. Re: Euphoria on DOSbox

Apparently, the old DOS game Doom can run on PocketDOS, using the DOS/4GW DOS
extender,
for which there is a drop-in open-source replacement, DOS/32.

Is it possible to compile Euphoria for DOS using a different DOS extender, which
may
then run under PocketDOS on a Pocket PC?

Thanks for any help.

new topic     » goto parent     » topic index » view message » categorize

7. Re: Euphoria on DOSbox

olddog wrote:
> Apparently, the old DOS game Doom can run on PocketDOS, using the DOS/4GW DOS
> extender,
> for which there is a drop-in open-source replacement, DOS/32.
> 
> Is it possible to compile Euphoria for DOS using a different DOS extender,
> which
> may
> then run under PocketDOS on a Pocket PC?
> 
> Thanks for any help.

Euphoria used to use DOS/4GW a long time ago.
The DOS extender could reside in a separate file,
or could be combined with the Euphoria interpreter .exe file
to make a single .exe file. They charged you extra
for the privilege of making a single .exe file.

I don't think you'd even have to change the
Euphoria C source code to use it again.
It just involves some trivial change to the way
you link the object files using Watcom,
perhaps not even that, if the extender is separate.

The Watcom, DOS/4GW or DOS/32 docs should
have an explanation of how it's done.
I know it's very easy, but I don't remember the
details off-hand.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

8. Re: Euphoria on DOSbox

olddog wrote:
> 
> Apparently, the old DOS game Doom can run on PocketDOS, using the DOS/4GW DOS
> extender,
> for which there is a drop-in open-source replacement, DOS/32.
> 
> Is it possible to compile Euphoria for DOS using a different DOS extender,
> which
> may
> then run under PocketDOS on a Pocket PC?
> 
> Thanks for any help.

I've googled PocketDOS, and it seems to be that it emulates
not only DOS itself, but a processor of i86 family too.
And these emulated processors are limiteg just by 80186 or 80286,
not 80386.
The Euphoria native processors are 80386 and above.
So I very doubt that Eu will run on PocketDOS as it is.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

9. Re: Euphoria on DOSbox

Is there anybody out there who has a copy of the source and who knows how
to work with compilers who would be willing to join an experiment?

If you could re-compile Euphoria for DOS using the DOS/32a open-source
DOS extender (instead of Causeway), there is a good chance that the
common DOS emulators could run it, including PocketDOS for the pocket PC.

This could open up a whole new realm of application for Euphoria.

Is anybody willing to try this and share the resultant ex.exe with us?
I'd be happy to do some testing on my pocket PC (Dell Axim x50v).

Thanks!


Robert Craig wrote:
> 
> olddog wrote:
> > Apparently, the old DOS game Doom can run on PocketDOS, using the DOS/4GW
> > DOS
> > extender,
> > for which there is a drop-in open-source replacement, DOS/32.
> > 
> > Is it possible to compile Euphoria for DOS using a different DOS extender,
> > which
> > may
> > then run under PocketDOS on a Pocket PC?
> > 
> > Thanks for any help.
> 
> Euphoria used to use DOS/4GW a long time ago.
> The DOS extender could reside in a separate file,
> or could be combined with the Euphoria interpreter .exe file
> to make a single .exe file. They charged you extra
> for the privilege of making a single .exe file.
> 
> I don't think you'd even have to change the
> Euphoria C source code to use it again.
> It just involves some trivial change to the way
> you link the object files using Watcom,
> perhaps not even that, if the extender is separate.
> 
> The Watcom, DOS/4GW or DOS/32 docs should
> have an explanation of how it's done.
> I know it's very easy, but I don't remember the
> details off-hand.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>

new topic     » goto parent     » topic index » view message » categorize

10. Re: Euphoria on DOSbox

olddog wrote:
> 
> Is there anybody out there who has a copy of the source and who knows how
> to work with compilers who would be willing to join an experiment?
> 
> If you could re-compile Euphoria for DOS using the DOS/32a open-source
> DOS extender (instead of Causeway), there is a good chance that the
> common DOS emulators could run it, including PocketDOS for the pocket PC.
> 
> This could open up a whole new realm of application for Euphoria.
> 
> Is anybody willing to try this and share the resultant ex.exe with us?
> I'd be happy to do some testing on my pocket PC (Dell Axim x50v).
> 
> Thanks!
> 
> 
> Robert Craig wrote:
> > 
> > olddog wrote:
> > > Apparently, the old DOS game Doom can run on PocketDOS, using the DOS/4GW
> > > DOS
> > > extender,
> > > for which there is a drop-in open-source replacement, DOS/32.
> > > 
> > > Is it possible to compile Euphoria for DOS using a different DOS extender,
> > > which
> > > may
> > > then run under PocketDOS on a Pocket PC?
> > > 
> > > Thanks for any help.
> > 
> > Euphoria used to use DOS/4GW a long time ago.
> > The DOS extender could reside in a separate file,
> > or could be combined with the Euphoria interpreter .exe file
> > to make a single .exe file. They charged you extra
> > for the privilege of making a single .exe file.
> > 
> > I don't think you'd even have to change the
> > Euphoria C source code to use it again.
> > It just involves some trivial change to the way
> > you link the object files using Watcom,
> > perhaps not even that, if the extender is separate.
> > 
> > The Watcom, DOS/4GW or DOS/32 docs should
> > have an explanation of how it's done.
> > I know it's very easy, but I don't remember the
> > details off-hand.
> > 
> > Regards,
> >    Rob Craig
> >    Rapid Deployment Software
> >    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>

Really?
The code in be_machine.c has some interrupt #31 calls which are specific to
Causeway according to RBIL v61:
* long_to_short(): AX=#FF21 (GetMemDOS) and #FF01 (RM interrupt)
* InitGraphics(): AX=#FF08 (GetSelDet32)
* user_allocate_low(): AX=#FF21
* user_free_low: AX=#FF23 (RelMemDOS)
* dos_interrupt: AX=#FF01

So... I expect these areas of the backend source will require some alternative
variant selected by an #ifdef ... #else directive.

CChris

new topic     » goto parent     » topic index » view message » categorize

11. Re: Euphoria on DOSbox

CChris wrote:
> Really?
> The code in be_machine.c has some interrupt #31 calls which are specific to
> Causeway according to RBIL v61:
> * long_to_short(): AX=#FF21 (GetMemDOS) and #FF01 (RM interrupt)
> * InitGraphics(): AX=#FF08 (GetSelDet32)
> * user_allocate_low(): AX=#FF21
> * user_free_low: AX=#FF23 (RelMemDOS)
> * dos_interrupt: AX=#FF01
> 
> So... I expect these areas of the backend source will require some alternative
> variant selected by an #ifdef ... #else directive.

Thanks for spotting those calls. They are specialized bits
of code you would probably have to change to 
achieve 100% compatibility, but I think the bulk of 
Euphoria for DOS should work OK without any source code changes. 
For instance, Bernie recently said he got pmodew working:

   http://www.openeuphoria.org/EUforum/m17215.html

I switched over to the Causeway DOS extender,
from DOS4GW, more than a decade ago.
I compared against a couple of other DOS extenders at that time.
I recall that things pretty much worked immediately, 
without any source changes, whichever extender I used.
Though, as you observe, I did eventually code a few
Causeway-specific calls to support some tricky stuff,
such as the Euphoria dos_interrupt() library routine etc.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

12. Re: Euphoria on DOSbox

Robert Craig wrote:
> 
> CChris wrote:
> > Really?
> > The code in be_machine.c has some interrupt #31 calls which are specific to
> > Causeway according to RBIL v61:
> > * long_to_short(): AX=#FF21 (GetMemDOS) and #FF01 (RM interrupt)
> > * InitGraphics(): AX=#FF08 (GetSelDet32)
> > * user_allocate_low(): AX=#FF21
> > * user_free_low: AX=#FF23 (RelMemDOS)
> > * dos_interrupt: AX=#FF01
> > 
> > So... I expect these areas of the backend source will require some
> > alternative
> > variant selected by an #ifdef ... #else directive.
> 
> Thanks for spotting those calls. They are specialized bits
> of code you would probably have to change to 
> achieve 100% compatibility, but I think the bulk of 
> Euphoria for DOS should work OK without any source code changes. 
> For instance, Bernie recently said he got pmodew working:
> 
>    <a
>    href="http://www.openeuphoria.org/EUforum/m17215.html">http://www.openeuphoria.org/EUforum/m17215.html</a>
> 
> I switched over to the Causeway DOS extender,
> from DOS4GW, more than a decade ago.
> I compared against a couple of other DOS extenders at that time.
> I recall that things pretty much worked immediately, 
> without any source changes, whichever extender I used.
> Though, as you observe, I did eventually code a few
> Causeway-specific calls to support some tricky stuff,
> such as the Euphoria dos_interrupt() library routine etc.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>


I got it to compile but it crashs .

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

13. Re: Euphoria on DOSbox

Robert Craig wrote:
> 
> CChris wrote:
> > Really?
> > The code in be_machine.c has some interrupt #31 calls which are specific to
> > Causeway according to RBIL v61:
> > * long_to_short(): AX=#FF21 (GetMemDOS) and #FF01 (RM interrupt)
> > * InitGraphics(): AX=#FF08 (GetSelDet32)
> > * user_allocate_low(): AX=#FF21
> > * user_free_low: AX=#FF23 (RelMemDOS)
> > * dos_interrupt: AX=#FF01
> > 
> > So... I expect these areas of the backend source will require some
> > alternative
> > variant selected by an #ifdef ... #else directive.
> 
> Thanks for spotting those calls. They are specialized bits
> of code you would probably have to change to 
> achieve 100% compatibility, but I think the bulk of 
> Euphoria for DOS should work OK without any source code changes. 
> For instance, Bernie recently said he got pmodew working:
> 
>    <a
>    href="http://www.openeuphoria.org/EUforum/m17215.html">http://www.openeuphoria.org/EUforum/m17215.html</a>
> 
> I switched over to the Causeway DOS extender,
> from DOS4GW, more than a decade ago.
> I compared against a couple of other DOS extenders at that time.
> I recall that things pretty much worked immediately, 
> without any source changes, whichever extender I used.
> Though, as you observe, I did eventually code a few
> Causeway-specific calls to support some tricky stuff,
> such as the Euphoria dos_interrupt() library routine etc.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>

Looking at the docs, you may even be able to drop Causeway specific calls
altogether:
* replace #FF21 by #0100 (DPMI DOS allocate)
* replace #FF23 by #0101 (DPMI DOS free)
* replace #FF01 by #0300 (DPMI perform real mode interrupt)
* replace #FF08 by #0006 (DPMI get descriptor linear addr)

The (slightly) tricky bit is at line 574, which would have to be edited as:

peekaboo = ((regs.x.ecx && 0xFFFF)<<16)+(regs.x.edx && 0xFFFF);    // base of
selector

I didn't find the definition for the REGS union - don't have a C compiler here
-, so this line can probably be simplified by using the 16 bit register version
only, since the base addr is returned in CX:DX instead of EDX.

I didn't check whether the real mode call structures standard DPMI and CauseWay
use are the same; I'd be surprised if they are not. Otherwise, register usage is
consistent, so nothing else needs any change, since nothing else in the source
depends on the extender.

CChris

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu