1. Palm OS?

I recently obtained a Handspring Visor Edge. Has anyone got Euphoria running on a Palm device?

-Greg

new topic     » topic index » view message » categorize

2. Re: Palm OS?

ghaberek said...

I recently obtained a Handspring Visor Edge. Has anyone got Euphoria running on a Palm device?

-Greg

Hi Greg

I've looked at this but it was way beyond me. I use Pixilang to mess about with algorithms etc then implement them in Euphoria on the desktop.

I would follow any Palm port of Euphoria with great interest, but I suspect that would be a long way off. Euphoria is a bit too x86centric for an easy port.

Gary

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

3. Re: Palm OS?

I don't know about the interpreter, but getting the runtime lib for the translator to build for Palm devices shouldn't be a huge task.

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

4. Re: Palm OS?

gshingles said...
ghaberek said...

I recently obtained a Handspring Visor Edge. Has anyone got Euphoria running on a Palm device?

-Greg

Hi Greg

I've looked at this but it was way beyond me. I use Pixilang to mess about with algorithms etc then implement them in Euphoria on the desktop.

I would follow any Palm port of Euphoria with great interest, but I suspect that would be a long way off. Euphoria is a bit too x86centric for an easy port.

Gary

That's how it is as fast as it is.

The x86 centric part in the backend has 3 components, I'd say:

  1. BigSwitch optimisations. If there is some standard use of regsters by the C compiler(s) being used for that platform, this should be straightforward. Simply get the right definitions for thread*().
  2. Multitasking. The x86 version heavvil relies on stack manipulations, and these machines don't have a builtin stack. Could be the major hurdle.
  3. callbacks. Using LDM/STM and passing parameters in a counted array could lead to a simpler implementation I believe.
  4. The bits of machine code in execute.e about callbacks will need being rewritten, but I don't expect this to be hard. Again, it all depends on the alling convention(s) being used on tat platform.

Mic said that compiling ecpalm.lib should not be a huge task. True, but I wonder about all the I/O part. How specific is it compared to what is in the backend? Not to mention the multitasking issue.

CChris

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

5. Re: Palm OS?

Multitasking. The x86 version heavvil relies on stack manipulations, and these machines don't have a builtin stack. Could be the major hurdle.

Huh? Sure they do.

ARM:
STMFD R13!,{R1-R3}
LDMFD R13!,{R1-R3}

68k:
MOVEM.L D1/D2/D3,-(A7)
MOVEM.L (A7)+,D1/D2/D3

Or are you talking about something else?

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

6. Re: Palm OS?

mic said...

Multitasking. The x86 version heavvil relies on stack manipulations, and these machines don't have a builtin stack. Could be the major hurdle.

Huh? Sure they do.

ARM:
STMFD R13!,{R1-R3}
LDMFD R13!,{R1-R3}

68k:
MOVEM.L D1/D2/D3,-(A7)
MOVEM.L (A7)+,D1/D2/D3

Or are you talking about something else?

The specs of ARM processors I have do mention, of course, the LDM/STM machine instructions - I didn't look into the 68k stuff as I was told it was obsolete. However, is the routine params management using R13 always? If so, indeed this would not be specifically hard, just a normal rewrite.

CChris

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

7. Re: Palm OS?

As a sort of proof of concept I put together this using Eu 3.0.2
I introduced a new build target, which behaves similar to ELINUX but ifdef:s out a lot of stuff (terminal support, file i/o etc), and built the runtime library with devkitARM. Then I translated the Euphoria code seen in the screenshot with the DOS translator and built that with devkitARM as well.
One problem I ran into was undefined references to NewString in init_literal. But if I moved init_literal from INIT-.c to main-.c it worked just fine.. Not sure what's up with that since I didn't spend too much time investigating it.

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

8. Re: Palm OS?

mic said...

As a sort of proof of concept I put together this using Eu 3.0.2
I introduced a new build target, which behaves similar to ELINUX but ifdef:s out a lot of stuff (terminal support, file i/o etc), and built the runtime library with devkitARM. Then I translated the Euphoria code seen in the screenshot with the DOS translator and built that with devkitARM as well.
One problem I ran into was undefined references to NewString in init_literal. But if I moved init_literal from INIT-.c to main-.c it worked just fine.. Not sure what's up with that since I didn't spend too much time investigating it.

I know they make some sort of flash cartridges for the Gameboy Advance. It'd be sweet if we could write GBA games in Euphoria. grin

-Greg

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

9. Re: Palm OS?

Here are my modified sources (based on 4.0 SVN rev 978), in case anyone is interested. Included are prebuilt versions of the ARM targeted library and the GBA "Hello World" program, so you don't have to build them yourself if you don't want to.

There's a file in that ZIP called readme-arm.txt that explains the building process. Basically it's just two makefiles (one to build the ARM version of the library, and one to build the test program) that you can invoke from msys if you've got devkitPro installed.
It should also be easy to build the modified library code for other OS-less targets - just change some of the compiler and linker flags. I managed to get some code running properly on the SEGA Saturn (which is based on the Hitachi SH2), but I didn't spend any further time on that.
Note that a bunch of things are disabled, such as tasks, regexps and file i/o.

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

10. Re: Palm OS?

mic said...

Here are my modified sources (based on 4.0 SVN rev 978), in case anyone is interested. Included are prebuilt versions of the ARM targeted library and the GBA "Hello World" program, so you don't have to build them yourself if you don't want to.

Am I understanding this correctly that you have Euphoria running on a PalmOS device? What type of application can you develop with it? Can you write Palm GUI Apps? I have a Palm TX, but could this be used on Palm OS based smart phones as well?

Jeremy

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

11. Re: Palm OS?

It's not really for any specific platform, but my test program is for the Gameboy Advance. Basically I stripped out a lot of platform-specific stuff so that you can compile the library for all kinds of systems - in particular those that don't have an OS. I don't see any reason why it wouldn't compile for Palm devices, but if you'd want to use open(), puts(), get_key() etc you'd have to add code for that yourself.

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

Search



Quick Links

User menu

Not signed in.

Misc Menu