Ask Slashdot: Where Can I Find Resources On Programming For Palm OS 5?
First time accepted submitter baka_toroi (1194359) writes I got a Tungsten E2 from a friend and I wanted to give it some life by programming for it a little bit. The main problem I'm bumping up against is that HP thought it would be awesome to just shut down every single thing related to Palm OS development. After Googling a lot I found out CodeWarrior was the de facto IDE for Palm OS development... but I was soon disappointed as I learned that Palm moved from the 68K architecture to ARM, and of course, CodeWarrior was just focused on Palm OS 4 development.
Now, I realize Palm OS 4 software can be run on Palm OS 5, but I'm looking to use some of the 'newer' APIs. Also, I have the Wi-fi add-on card so I wanted to create something that uses it. I thought what I needed was PODS (Palm OS Development Suite) but not only I can't find it anywhere but also it seems it was deprecated during Palm OS's lifetime. It really doesn't help the fact that I'm a beginner, but I really want to give this platform some life. Any general tip, book, working link or even anecdotes related to all this will be greatly appreciated.
Now, I realize Palm OS 4 software can be run on Palm OS 5, but I'm looking to use some of the 'newer' APIs. Also, I have the Wi-fi add-on card so I wanted to create something that uses it. I thought what I needed was PODS (Palm OS Development Suite) but not only I can't find it anywhere but also it seems it was deprecated during Palm OS's lifetime. It really doesn't help the fact that I'm a beginner, but I really want to give this platform some life. Any general tip, book, working link or even anecdotes related to all this will be greatly appreciated.
Don't waste your time. Learn iOS, Android or some other platform that isn't dead.
PalmOS is a rather antiquated system. No memory protection, no native multitasking, clunky APIs...
Depending on your personality type and the coding experience you have, it's either going to be a TON of fun, or you're going to want to smash and break things on the very first night.
Or maybe both. :) I don't have any pointers, but as a former Palm OS user, godspeed.
(Palm IIIxe from 2000-2005, Palm Treo 650 from 2005 to 2009)
Read a book. Pick up a new hobby. Go to the beach. Learn a language!
Slashdot: providing anti-social weirdos a soapbox, since 1997.
http://www.rahul.net/flash/spu...
http://forums.delphiforums.com...
http://bit.ly/1As0ktG
Just let it go and sell it, and buy a raspberry pi with a touchscreen, its a lot of fun. Open source and a lot of docs.
Where can I learn how to send smoke signals?
It's hideously slow and limited by today's standards, the standards are horribly out of date (802.11b anyone?) the ten year old battery is surely shot, and the platform is dead, dead, dead.
If you're looking for a cheap hackable device, get a no-frills Android tablet. If you're looking to get into mobile development, get any decent smartphone.
Still, if you really want to work on that old Palm, you should still be able to find the Garnet OS Development Suite.
How can I believe you when you tell me what I don't want to hear?
I want to waste my time hacking an old platform that no one uses anymore but I'm a total noob so I'm entitled to make everyone help me.
Writing ARM-native code on Palm OS 5 was never easy. I used prc-tools and Peal to write pssh (which needed ARM-native code for fast crypto and terminal emulation).
http://prc-tools.sourceforge.net
http://sealiesoftware.com/peal/
http://sealiesoftware.com/pssh/README.code
My local libraries all have tons of outdated (5- to 15-year-old) books on a variety of computer subjects. You just might get lucky and find the one you need at yours.
Or, check Amazon. Lots of people list lots of useless old books for basically nothing plus shipping. First hit for "palm os programming" is this meaty tome, from 2002, for 30 cents plus $3.99 shipping. Bang, zoom, $4.29 later, you're set. Palm OS Programming for Dummies, 22 cents plus $3.99. Whatever version you need is out there somewhere.
And they usually come with interactive CD-ROMs. Interactive, my friend. Check the descriptions on Amazon and make sure they're included.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
Only one letter difference!
Put it in a museum.
I'm not an expert, but I thought Palm OS became webOS when HP took over... webOS isn't dead, lots of folks still coding for it and there are several phones still using it. and the good old hp touchpad uses(d) it. apps are still being written for it. I also seem to recall webOS going to open source shortly after HP dumped the tablet (http://www.openwebosproject.org/) . my suggestion is to look into that. then once you've filled up no that go check into iOS, and Android. then make your own choice about what to code... :D
You are 100% right in criticizing me. Actually, I wasn't expecting this to get to the frontpage.Nonetheless, I thought Slashdot was the best place to ask. Many times I've seen pieces of news about Amigas and usually they're warmly received (are they not outdated?). I'm wondering why so many people are saying stuff like "let it go", "it's useless", "learn a language." Other people are linking me to LMGTFY as if I haven't spent hours looking for working links.
Don't get me wrong, maybe they're right and I shouldn't spend/waste my time learning about a dead platform, but at least I'd like to hear their rationale.
Front page news.. lol
From an old limerick: ...
Latin is a dead language, dead as can be.
Some previous posts mention other current platforms. Try those. Palm is dead.
side note. a 2E that sill works? Mine died years ago.
NS Basic is still around and should be supported. Not free, but simple and powerful enough...
I'm pretty sure they were written in cuneiform on clay tablets, so you might want to learn the language of the Anunnaki
I might be wrong. Maybe they were written in Middle Egyptian on papyrus.
Either way, you could start by asking a very very old nerd. If you can find an old pay phone, wait for someone with long greasy grey hair to pick it up and start whistling into it. Make sure you have some jelly worms on hand, but not the green ones.
You are welcome on my lawn.
Come back in 10 years when it can be called a "classic" platform.
It was great in it's time (esp the Palm III in 1999)
But it's time is over it is really hard to program compared to more modern systems.
I moved onto Windows Mobile and later Android years ago.
You should too.
If you want to work on something that is 'different' might I suggest SL4a or Android NDK.
I had the same happen with Codewarrior for Sharp Zaurus. Metrowerks was sold and Freescale erased all traces of it. Can't be found anywhere, legit or warez. I even contacted Freescale and they said they looked everywhere they could, but they said it was nowhere. Gone forever
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
If someone would code that for iOS i'd pay. It was the best to-do list application ever.
Apple's Reminder's is so useless I can't imagine why any effort was expended coding it.
---- The above post was generated by the Turing Institute. Maybe.
Reach out to me.
Once my phone went off and an older man next to me began roaring with laughter when he heard the Treo ring tone. Ah well, it was great in its day.
---- The above post was generated by the Turing Institute. Maybe.
If you have to go to Slashdot to use Google for you, you'll never be capable of mastering the toolchain, much less learn the arcane bullshit necessary to run native ARM code on a Palm device.
NT: Let it go man. It is over.
Come on, if they do the job, who cares. It's like wanting Mozart over Bach because Mozart is "newer". They are both dead worm food. (Please, no music "decomposing" jokes.)
Table-ized A.I.
It's free from http://windows.novellshareware... . There are also other app-building tools out there. When I had a Palm, I used several programs from Tealpoint Software. Their web page is dead tonight, but the Google cache copy from yesterday shows dates from 2013. Perhaps your question provoked a huge run on Palm software and their server couldn't handle the load. https://webcache.googleusercon... Palm had the best calendar program (DateBk, not to be confused with DateBook) I've ever used on any platform.
Since you're a C guy, there's http://onboardc.sourceforge.net/ that compiles right on the Palm Pilot. A bit tough by modern standards, if there's an API call you want that's not in the standard header file you have to find the ROM address for it and put it in yourself.
Much easier but of course limited is http://smallbasic.sourceforge.net/ which runs on Palm OS and has a lot of little games in the forums.
Cwm, fjord-bank glyphs vext quiz
The palm os is good and dead, kinda too bad palm chased their tails for so long increasing performance to what people wanted. That e2 is worth a couple bucks at best. As I remember the best things for it was Dreadling (port of wolfenstein), and the liberty gameboy emulator (gambit). Programming is going to be very very painful. If you want to program on some "vintage 1990" electronics, maybe try a arduino and learn some c++. The old 8bit atmega has a great 1990 feel to it.
At first I was like, not worth it. Go get Android.
Then I thought that lots of people would say that. And it sounds a little dickish.
Then I googled the Tungsten E2. Released: 2005. Ugh. Not worth it. Go get Android.
Then I thought hey, maybe this guy just wants to do some tinkering/fun programming. Like I used to do back in the day. And that distant little of spark excitement alights.
Then I thought: Holy shit, somebody is actually using Slashdot for its intended purpose!
And a lot of the comments on slashdot nowadays are just graduates of digg or reddit or what have you.
This has the exact same nostalgia factor as a c64, amiga, apple ii, old atari, bbc micro, etc.
Additionally the lack of memory protection will likely make you less sloppy than the average java 'hack' here, since if they fuck up their app crashes, but if you fuck up the whole system goes down.
Additionally: This is one of the few recent Ask Slashdot's that really emphasizes what Ask Slashdots used to be: Crowdsourcing help for something that was esoteric enough that the only way you'll pull it off is getting lucky and grabbing some institutional knowledge or maybe code/developer resources from people who... *ACTUALLY DEVELOPED FOR IT*.
As to the rest of you, thanks for bringing slashdot down to the level of the rest of the internet, 'editors' included :)
perhaps time is cyclical good luck
A quick search shows that, at one point at least, you could run linux on it. Not very useful, but it's still mildly interesting.
Restore the madness of youth's lechery
As an "old" mobile developer from the early Palm days who still has CodeWarrior on his Windows XP VM so I can still compile old Palm code if necessary I say, "Hell no!". I loved Palm development in its day and I can't bring myself to delete the VM that holds it, but you'd have to pay me $200 an hour to develop with it again.
Try onboardc which is an onboard c compiler for palm... basically you can program the palm in c from the palm. How cool is that ?
Linkedin http://in.linkedin.com/in/robinsaikatchatterjee
Check out Code Project - lots of great articles on Palm programming: http://www.codeproject.com/sea...
Go to Sourceforge - it may take a while to pick through the weeds, but you should find some useful projects to examine the code:
http://sourceforge.net/directory/os%3Apalmos/?q=palm&sort=update
C programming for Palm: http://onboardc.sourceforge.ne...
http://www.vb-helper.com/review_palm_ides.html -- a review of Palm IDEs - may give you some ideas
http://porganizer.sourceforge.net/ -- Palm Organizer has the essential files for creating a Palm program if you look at the bottom of the page
Try the 1stSource forums, check out the menu on the left for various Palm models and you'll be sure to find some useful info:
http://www.1src.com/forums/forumdisplay.php?f=156
For some fun - and perhaps some code to review:
http://sourceforge.net/projects/phoinix/ -- Gameboy emulator for Palm
http://sourceforge.net/projects/palmapple/?source=recommended -- Apple II emulator for Palm
More emulators to consider: http://the-gadgeteer.com/2004/...
http://www.codejedi.com/shadowplan/castaway.html -- Atari ST emulator
http://frodopalm.sourceforge.n... -- commodore 64 emulator
Good luck and have fun!
from 1998!!
--Good morning fellas; Hand me that thing; Boy, this work's hard; Guys, break's over.
Take a look at some Palm code.
If the hideous restrictions and limits there don't put you off, then find out what they recommend to compile.
Flashy IDE's probably aren't going to be easy to find, there weren't many around in the first place and the majority of stuff I know is just command-line compilers which can plug into any IDE (if you're brave enough).
All I remember of Palm coding was having to break C files into tiny parts, jam them together and hope the individual object files never went over a certain size because the linker had to play all kinds of tricks to load them.
Take a look at something like this:
http://www.chiark.greenend.org...
The base code of which is generally easy to port (Simon Tatham's PORTABLE Puzzle Collection). That Palm version is quite a pain to compile even with the right tools.
SDK available here:
http://gl.access-company.com/p...
Perhaps next time you will read the acquisition history for the software you are trying to find in the Wikipedia article, and then go to the OpenSource/Downloads section of the company website for the current owner of the technology yourself?
I found a copy of the Palm 5r3 SDK here:
http://www.mediafire.com/downl...
Didn't download this myself, so I don't know if the docs are in there too.
...You are over-qualified and under-paid. If we give you a raise, we will break the cosmic balance of the universe.
Maybe it isn't rotten yet.
The main difference in OS5 was the addition of "PNOlets", chunks of native ARM code. Chapter 14.
It's still tricky. When I ported Palm's OS4 emulator to Android, I had to do some library coding and tracking down sample source code was... nontrivial. Definitely look for open-source Palm programs, like pssh, and learn from them.
PHEM - party like it's 1997-2003!
A fairly complete API reference: http://icmp.ru/man/programming...
PHEM - party like it's 1997-2003!
I wrote an app almost 10 years ago . Just looked through the code a bit. It says "Build with PRC-Tools 2.0 and Palm OS SDK 4.0 or better". Written all in C++. Most of my work I did in a simple text editor. Not in an IDE. And I used makefiles I wrote myself and a command-line to compile the lot. I remember compiling for the m68k mostly because that would cover all our potential customers. But there was already ARM support in the works... until we just dropped it. We had too few sales to warrant further development. Not that our version for WinCE PDAs was doing any better, by the way. A couple of years later the first IPhone was released. And for that platform we still develop and sell.
There was partial support for C++ in 'recent' versions of PRC tools... classes and use of new and delete, and if you really wanted them, exceptions and RTTI. But no STL, streams... I wrote a file io and string class to keep the back-end code compatible (we had a significant chunk of back-end code already written in C/C++ and used it in apps for many platforms).
Also you had to manually segment your code for Palm OS because there was a fixed code segment size (my app used five code segments and I had to specify for each function in which code ). Long function calls were used to make the segments interact and you had to keep in mind to use them as little as possible because, although the compiler did the work of adding those long function calls for you, they still incurred a performance hit.
I finally retired my company Palm M515 two years ago when I got a second hand HTC HD2 from a friend (and promptly updated it with CyanogenMod). I managed to save most of my (calender, notes, contacts) data and it's now part of the Google cloud...
It was fun to program for that platform, I learned a lot from it but I would say, in this day and age, it's utterly useless to start a new project for it. I would recommend Android over iOS, if you just want to make a mobile app. Although Apple's tools (XCode) are better IMHO, you can do a lot more with Android and the apps you make for them before you have to spend money on it (AFAIK the only thing Google asks is a $25 one-time fee if you want to publish on the play store and you can always side-load for 'homebrew'). And you can develop and compile an Android app on a variety of computer hard- and software platforms, while a recent Apple (i)Mac(book/mini) is required to make iOS apps.
If you're really adamant to create a PalmOS app, get yourself PRC-tools, cygwin and a 'recent' PalmOS SDK and you might actually manage to get a working app. Time-stamps of my versions are of april 2004 so I do not have the final versions... Also, the PalmOS 4 emulator and/or PalmOS 5 simulator, with roms and of course the full Palm desktop suite installed on your machine so you can make backups and install .PRC's on your PDA. Did I forget anything else (except for the fact some of these are a bit difficult to find on the 'net).
Ow, yes, there is a PalmOS developer suite for PalmOS 5 and 6, using Eclipse and a lot of integrated goodies. A 250MB sized beastie... but I haven't got the faintest clue where to get it nowadays.
If a developer is scared to cross to any platform because they don't want to be multi-lingual, they're doing it wrong.
An application can be separated into logic and presentation, or model and view, however your framework prefers to describe them. A program may require separate presentation for each platform, but versions of a program for multiple platforms should ideally share the logic. But some platforms strongly recommend or even require use of certain languages. How can a programmer follow the rule of not repeating yourself to share logic across languages? Say I developed a game in Java or Objective-C but I want to port it to a Microsoft platform that allows only C#. (In theory it allows any language that compiles to verifiably type-safe .NET Compact Framework bytecode, but in practice that means C#.) How would I go about making and maintaining that port so that fixes to defects in the logic of the version on the original platform propagate to the version on the Microsoft platform ?
Don't waste your time with that old piece of junk. Get a new piece of junk instead, with a community behind it.
geek n performer who performs morbid or disgusting acts, as biting off the head of a live chicken
Oh, you're the author of that ?
Thank you, man.
I used your soft back then and liked it !
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
I've used OrbForms - it's a pretty easy to use IDE with simple GUI development. It is much easier than CodeWarrior (which I have also used). www.orbworks.com
Some settling may occur during posting.
We have all the resources needed for OS/2 Warp. http://www.edm2.com/index.php/Main_Page
If you wanted to write code for a clumsy dead platform, why not the Apple Newton? Far cooler and more interesting. At least the Newton is the same CPU architecture.... just with a much better OS, 2 PCMCIA slots and a bigger screen.
Hell, even the Atari 8-bit is more interesting than a piece of crap from Palm.
Seriously, PalmOS sucks. I've written a couple things for it in the past and I wish I hadn't.
It is a special kind of hell. With embedding ARM binaries into MC68K code, creating special call gates with endian conversion to call it, and pretty much being unable to call back into MC68K code. Palm OS 5 is a huge pile of excrement.
You can use "Pocket C" which was made for earlier versions of PalmOS but works on later ones.
I used it for a quick serial port talking program.
http://www.orbworks.com/pcpalm/
Lots of advice instead of actually answering his question.
As a general comment... it's pretty funny that this wouldn't be an issue, since they complied with the GPL as they were required to do, and published their sources.
Only the politics of Open Source is such that the projects that they published the changes for were not updated to include the changes, because they felt that it was not their responsibility to update their projects to include someone else's changes to their projects. They felt, instead, that it was the responsibility of the people making the changes to join their projects, and then make the changes with the editorial oversight of the community.
This is somewhat ironic, since they wouldn't have published the sources in the first place, if it hadn't been for the license.
So it's interesting to me that you can more or less not comply with the license by complying with it, and that the license is only effective for however long your product and company are around, and, if not picked up by the community to be carried forward, get lost after a short period of time, even if the company continues to exist.
I guess I wonder if it's legal to sell remaindered product (or used product) without offering the sources, per the terms of the license, or if, after that period of time, the products become illegal to transfer the binary licenses, since the originators are no longer around, and you cant appeal to them in order to get around your personal obligation, as the seller/reseller, to make the sources available any more (but you, as the middleman, failed to take advantage of the offer while it was possible to do so).
Probably, projects need to be a little less pissy about integrating third party changes, fixes, and extensions back into their main line.
[Online games and offline apps] are mutually exclusive.
True. Should I have instead split the two scenarios into separate comments?
An offline application can't know that validation has changed or there is an app update because it's offline. At that point, what do you do, toss out any data the user entered while they were offline?
In the case of an application with a substantial offline component, the server would handle the current version of the client and at least one previous version.
Even if I follow your approach, when the client and server versions mismatch because the user was offline they'll get the same pages of errors.
Granted, the user may see a few errors when server version n communicates with client n - 1, mostly related to the (hopefully small) schema changes between n - 1 and n. But ideally, this should introduce far fewer errors than if there had been no client-side pre-validation at all.
Boy, I hope your QA team has a large alcohol budget and the world's largest whiteboard for their validation testing matrix.
It's a bit easier when the testing matrix is a band matrix. If X is the client version and Y the server, the server only needs to gracefully handle a small number of client versions.
Where can I learn how to send smoke signals?
http://adventure.howstuffworks... Well, you did ask... ;)