David A. Wheeler's Suggestions for PalmOS PDA Users

March 14, 2004 (updated 2011)

This article was published on Freshmeat.net.

So, you've just gotten a PalmOS-based Personal Digital Assistant (PDA)... now what? Here are some suggestions for open source software / free software (OSS/FS) available for the Palm, grouped into the following topics: electronic books (eBooks), games, miscellaneous software, and how to locate other software. I close with a few comments about the future of Palms. For more information on the advantages of OSS/FS, see Why OSS/FS? Look at the Numbers!

PalmOS is now old, but you can still use them. You can sync a Palm on Window 7 through USB (you have to install a separate driver), and Linux-based systems still sync with them just fine.

Electronic Books

A major use I've found for PDAs is for storing information for later use, particularly as electronic books (eBooks), so I'm going to concentrate on how to handle eBooks on PalmOS. The best eBooks are often reference books or books you can read a page or two at a time while you're waiting for something. An 8 Mebibyte PDA can store a lot of text: for example, if you use 7 of those 8 Mebibytes for text, compress the text by 43% (to 57% of its original size) and on average the text is 60 characters per line and 60 lines per page, you could store 3,577 pages of text (7MiB/(60*60*.57)). This would be a typical result when using PDOC, described below; if you use better compression algorithms (such as zlib) you can store even more text. One developer using a zlib-based approach claims that 56.5% compression (43.5% of original size) is typical; if so, that approach would let the same PDA store 4,687 pages of text. My current PDA has a 128MiB external card, which by itself can store over 65,000 pages (128MiB/(60*60*.57)).

However, to use a PalmOS PDA to read documents, you have to install at least one document reader, because PalmOS systems don't come with any built-in programs to read documents. Another complicating factor is that there are many different data formats used for storing documents, and you need a reader that can read the format of the document you're trying to use. Many PalmOS users end up installing several document reading programs.

General-Purpose eBook Readers

There are basically three good OSS/FS programs for reading typical eBooks: CSpotRun (which reads the PDOC format), Weasel Reader (formerly named GutenPalm, which reads the PDOC and zTXT formats), and Plucker (which reads the Plucker format, a compressed HTML format). If you're using a Palm-based system, you should definitely install Plucker. Most people should also install either CSpotRun or Weasel Reader; I personally have all three installed. Here's a little information about each one:

  1. CSpotRun. This is one of the best readers of the PDOC format readers for PalmOS (GPL license). The PDOC format, also called the ``Palm DOC'', ``Aportis DOC'', or ``DOC'' format, was one of the first eBook formats for the Palm; because it came out early and is not proprietary, it's also become one of the most common data formats. PDOC supports a mild amount of compression and arbitrarily long documents, both of which are advantages. However, the PDOC format isn't very capable - it's basically just ASCII text, so it has no support for bolding, fonts, hypertext links, images, and so on. For many documents these limitations are not a problem at all. Note: PDOC is completely incompatible with Microsoft Word's DOC format, and this becomes especially confusing when dealing with websites that use the term DOC to mean PDOC.
  2. Weasel Reader, formerly named GutenPalm (GPL license). Weasel Reader can read both the PDOC and zTXT formats. The zTXT format is also just ASCII text, so it also doesn't support facilities like bold characters, images, or hypertext links. However, zTXT uses a better compression algorithm called zlib, so documents in zTXT take less memory. To use zTXT formats, you'll also need to install the zlib library. There are fewer pre-created zTXT documents than PDOC, so this isn't as useful as you'd think, and if you want to create your own documents, you'll often find the "Plucker" format a better format to generate instead.
  3. Plucker. This is one of the best readers for compressed HTML files (GPL license), and uses its own special non-proprietary Plucker format. The Plucker format is far more capable than PDOC or zTXT - it's a subset of HTML, so it supports bolding, italics, varying font size, horizontal lines (useful for separating text while taking less display space), hypertext links, and images. Lists of items are shown using indented margins, just like a desktop browser shows them. Tables are a problem on all PDAs because of the PDA's small screen size - Plucker handles tables reasonably well by using separator lines and placing each table cell on its own text line. The Plucker format can compress documents using either the PDOC or zlib compression algorithms, so the Plucker format should take a similar amount of memory as PDOC or zTXT do when used for simple text. Again, you'll need to install the separate zlib library to read files compressed using zlib. Since this is the same library Weasel Reader uses, you only have to install zlib once for both programs to use it.

    At one time, a minor weakness of Plucker (as implemented by version 1.1.14 of the reader) was that large HTML pages (larger than 32k) were broken into multiple pages, which were then linked using hypertext. For some large documents this was unfortunate - you couldn't scroll through the text using the PDA scroll buttons, and you couldn't simultaneously see the text on both sides of a break. Plucker still divides up large HTML pages, but it now lets you scroll through the text and you can see "both sides" of a break. You still see where these breaks occur (there are funny hypertext links connecting each side), and there's a hesitation when the "next" section is being loaded, but these are trivial.

    Plucker includes tools so that you can extract web pages (using rules you define) and then sync the results into your PDA. Plucker now has wonderful GUI tools that make this quite easy (the "Plucker Desktop"), as well as command-line tools.

    Plucker can have trouble with really badly misformed HTML. In such cases, download the HTML and use a program like "tidy" to fix it up first. I've had good success with commands like this to fix up HTML files:

       tidy -m -n -wrap 0 *.html

Deciding on Which Readers to Install

Again, if you're using eBooks on a Palm, I believe you must get Plucker. Plucker is much more capable, and given how much information in available in HTML, you can do very well with just Plucker. If you want an PDOC reader, deciding between CSpotRun and Weasel Reader is trickier. After all, they both have the same basic functionality: both display PDOC, they both support adding and jumping to bookmarks, rotated text, auto-scrolling, and searching (case-sensitive and caseless). I've compared CSpotRun 1.1.2 against Weasel Reader 1.56, and in my opinion, CSpotRun is better for reading while Weasel Reader has more ``extra'' features and is better for ``maintaining'' PDOC documents. Feel free to install both CSpotRun and Weasel Reader - I do! Here's how they compare:

Important: If you install multiple readers of the same format, do not just delete one later. Palms like to associate data with only one program, and if you delete the program, all of the associated data gets deleted too. So, if you install both CSpotRun and Weasel Reader, don't just delete one later without taking special precautions with your PDOC documents, or all your PDOC documents may be deleted too. Basic synchronization won't help here; synchronization will automatically remove the PDOC backup files in your PC, too.

Getting eBooks to Read

Once you get the eBook readers, you need eBooks to read. The plucker website includes interesting sample documents. Large collections of older classic documents in plucker format can be found at Pluckerbooks (over a thousand), and they have links to other sources of Plucker documents. The Linux Documentation Project (LDP) generates its HOWTOs, mini-HOWTOs, and FAQs in Plucker format, so this is a good source for Linux-related documents. Bandersnatch Unpress includes various freely-available documents in several formats (including PDOC and Plucker), including the US Constitution. Memoware is a commercial eBook company (so they include a lot of documents in different, incompatible proprietary formats that you must pay for), but they also make many free documents available. You might consider documents such as The Art of War by Sun Tzu and The Script to Monty Python and the Holy Grail.

You can also create these data formats if you have the document in electronic form. You can use http://pilot.screwdriver.net, which will automatically convert arbitrary web pages into PDOC format. As I noted earlier, Plucker comes with tools to create readable documents in Plucker format.

Specialized Electronic Books

Some textual material is easier to use by running specialized readers.

For example, I wanted the Bible on my PDA. If you do too, go to Bible+, which has a Bible reader (GPL license) as well as various translations you can install in it. Unfortunately, due to copyright issues on the translations, you have to pay for many modern translations. However, the ESV is available, and it's excellent. It does let you see two translations simultaneously, as well as searching and jumping to specific verses - I have the ESV, KJV, WEB, and ASV installed for my English translations. Especially nifty is that you can see the original koine Greek, Hebrew, and Aramaic simultaneously with your native language.

Also, I use Pocket Babylon, which is a nice French/English word translation tool (it basically functions like a French/English dictionary). It's licensed under the GPL license - you have to download the source code to find this out. The author hopes to add other languages - please help him out! Also, there seems to be a lack of good public domain word translation dictionaries; help with this general problem would be appreciated. I've found it to be useful.


I can't possibly review ``all OSS/FS Palm games.'' Instead, here are a few good games to consider:
  1. Vexed (GPL license). This is an especially good puzzle game; you move blocks, which disappear when matching blocks connect, and the goal is to clear the board.
  2. Yahdice (GPL license). This is an especially good turn-based dice game is that uses the Yahtzee (TM) rules. I find this little strategy game really works well on a PDA - there's some strategy, some luck, and you can pause it without problems. Yahdice has just been released as OSS/FS. Yahdice has a worthy competitor, Pete Stevens' Palm Pilot Yahtzee (PP Yahtzee). PP Yahtzee is enjoyable, and it handles six people (Yahdice is limited to four). However, I believe that Yahdice is the better program overall. Yahdice shows the possible scores for all categories before you select a category, Yahdice has a much bigger ``roll'' button (PP Yahtzee's roll button is far too small), the display of Yahdice is nicer (e.g., it shows dice pips not numbers), and Yahdice (version 2.01) can optionally sort the dice. They're both nice programs, and both are fun.
  3. JacksorBetter (GPL license). This is a simple but fun game that implements video poker. It's a trivial game, but quite satisfying. I do wish it has some little extras.. the "draw" button is too small, and I'd like the option of using buttons instead of the stylus.. but since it's OSS/FS, anyone could do that.
  4. iRogue (GPL license, according to the website). iRogue is a classic dungeon exploring game, and it's still a good one that I recommend. You have to spend a little time learning how to control it, in part because there are several different options. I've found that the best approach is to map many of the common functions to the buttons on the bottom of the PDA. For example, I assign the "to-do" and "memo" buttons to "move left" and "move right", I assign "scroll up" and "scroll down" buttons to to "move up" and "move down", and I assign the other two keys to "search" and "rest". You still have to use a stylus to move diagonally and perform other actions, but assigning the buttons to very common actions makes the game easier to use. iRogue is actually at a site dedicated to porting Roguelike games to the Palm; the site also includes ports of iLarn and kMoria, but their Palm ports are not as mature as iRogue's.
  5. pBill (GPL license) is a fun arcade game, and is a port of the popular xBill game. In this game, you have to smack all the evil ``Bills'' before they transform all the computers into toasters. Warning: the ``game over'' display is a parody of a computer crash, but if you don't know that, you might think something terrible happened to your PDA when the game ends. This is a little too easy on a PDA if you start at level 1, because a stylus is easier to use than a mouse for this purpose. I can keep up indefinitely, which is boring, and I'm not a good arcade game player. Instead, use the ``warp'' command to jump forward several levels to make it more challenging.
  6. Cosmic Wimpout for the Palm (GPL license). If you like the dice game Cosmic Wimpout (TM), you'll love this game. You can play with up to 8 people, and up to 8 computer-controlled players. This is very user-friendly, with lots of useful help built into it (look for the little "i" on the various screens). The help screens are especially important for people who haven't played Cosmic Wimpout, because the Cosmic Wimpout scoring rules are a little complicated to learn at first. Quick hint: the program default is one human and no computer-controlled players, which is rather boring. If you aren't playing against other humans, add at least one computer-controlled player so that you have something to compete against.

    The normal rules say that on your first move you must make at least 35 points or you get no points. I suggest lowering the starting minimum (e.g., to 15 points). Otherwise, it's easy to have games where the player who was lucky enough to get 35 points first (not due to any skill) is the one who wins the game.

  7. Frobnitz, which lets you play a large number of Interactive Fiction (text adventure) games on your Palm. Frobnitz is a "Z-machine" implementation, which lets you play games written for Z-machines (and there are a lot of them). Often you don't have a keyboard with a Palm; Frobnitz is cleverly designed to handle this without lots of hand-writing the text. Just click on a word, and it'll provide a bunch of options (click on "food" and you'll get the option to "take food", "drop food", and so on). You can also click on the verbs at the bottom of the screen (so click on "E" to move East, and so on). All of this is configurable. Very nifty.

    A Z-machine like Frobnitz is merely a player for a game; you also need games to actually play. The Frobnitz release comes with the "original" 350-point Adventure (ADVENT) game that started that craze, which is still a classic game and is a good introduction to the genre. (This is where "xyzzy" entered the culture!). Here's a list of good short games, as well as pointers to longer lists. There are way too many games out there for me to list them all; you can find the good ones by looking at the highest-rated ones at Carouselchain's fiction (IF) rating statistics site and Baf's Guide (at Wurb.com) based on ratings. There are many other versions of the original Adventure available. Other resources include Xyzzy news and Brass Lantern (see Brass Lantern's intro for beginners). You might also look at the Wikipedia article on Interactive Fiction.

    By the way, if you decide to create your own interactive fiction, there are some great tools out there. Inform is a particularly good toolsuite; what's especially interesting is that Inform 7 has switched to an English-language-like source code, with Prolog-like semantics underneath - it looks like an especially easy way to create these kinds of games. For more about this, see Natural Language Game Programming with Inform 7 (the Inform 7 white paper "Natural Language, Semantic Analysis and Interactive Fiction" has more technical information). One way to run this in Linux is to use pynform7.

  8. Pocket City (GPL license). This is a clone of ``Sim City'' for PalmOS, where you are trying to build and maintain a city. If you like Sim City, you'll probably like Pocket City. Pocket City isn't as sophisticated as Sim City, but there's still much to it, and the graphics are nice. Scrolling is done using the 4 buttons closest to the center. Be sure to look at the GAMEHINTS file included with the program, because there's very little on-screen documentation and you really can't do well without some of the hints. You'll need to start by using the map to identify the starting location of your city, then ``build'' residential zones, industrial zones (not too near the residential zones!), commercial zones, roads, power plants, police and fire departments, and so on. Good game.

There are many other games, but game preferences definitely vary by individuals. See the section below on locating other software.

Miscellaneous Software

Some useful programs I'd recommend are:

If you like to fiddle with Python, you can install Pippy. Pippy is a Python implementation for Palms (MIT-style license). I've been trying out version 0.7, and unfortunately it's not very useful yet. As of version 0.7, Pippy doesn't support floating point nor complex numbers (I wish they'd support MathLib!), many important Python libraries have been removed (such as the regular expression libraries), and as far as I can tell you can't write and store files on the PDA itself. Still, this is a work in progress; I hope that the final version will be more feature-rich so that developers can write and run many kinds of useful programs.

For more (general) information on Palm-hosted programming languages, see the IBM review by Mertz and Blais and Palm OS development resources.

Morse Code tutors

There are lots of programs that tutor or manipulate Morse code. abcMorse has a feature list (it primarily features the abcMorse advantages, of course, but it's still a really nice list). abcMorse is a nice program (I like its mnenomics), and lots of its functions can be used for free. Its user interface is generally nice, but it's annoying that you have to go "back" many times to change a setting (why aren't the menu options allowed anywhere?!?). However, as of 2010 it still costs money to use it at full speed. And really, if you're going to bother learning Morse code, you should learn it full speed.

Smart Morse does not have as nice a user input as a tutorial, and it has fewer features, but it's a great program for learning Morse code. In particular, you have to use palm graffitti (instead of pushing an on-screen keyboard) to enter a guess, then "OK"; to move on, you have to press "Next". It does have a reasonable tutorial mode that slowly adds letter groups. You can change the settings so you can learn at full speed, without paying extra. Note that you can set arbitrary lengths in msec; it defaults to pause/dot of 100msec, and dash of 300msec (dash is usually 3x dash), but this is slow, and many think it's a bad idea to learn the characters at such a slow rate. For a words per minute (WPM) of 13, use dot/pause of 92msec and dash of 277msec. For a words per minute (WPM) of 20, use dot/pause of 60msec and a dash of 180msec. (Since T=1200/W where T=length of dash, W=words per minute.)

Morse pilot lets you tap in Morse stuff, so it's interesting once you know Morse code, but it doesn't have a good way to incrementally learn symbols so it's lousy as a tutor. (Its "test mode" is hard to find, and only tests an entire set of letters.. it doesn't add a few at a time.) Morse pilot is now open source software (GPL), and that's cool.

Morse99 takes an absurd amount of space (over 1M; on a Palm with only 8M this is a deal-breaker), and the full version costs money too. Dot Dash doesn't generate sound, which to me is a disqualifier. Light Morse is not a tutor or general-purpose program; it converts Morse to light flashes.

Editing Text

As a tool for editing text, I find PDAs awful without a full-sized keyboard. Anything less than a full-sized keyboard is just too painful to use when entering lots of text - styluses and micro-keyboards just don't do the job. If you're doing a lot of text entry, you might want a laptop instead, since the small screen of a PDA isn't as nice as a laptop's screen. But, if you need both tiny size and the ability to enter lots of text, get a folded-up full-size keyboard for your PDA. I took notes at the FOSDEM 2002 conference using my PDA, and it worked out well. Once I was done, I could put both the keyboard and the PDA in my pockets, something you just can't do with a laptop. However, the built-in Memo Pad application limits each memo to 4096 characters (about one page), so it's a poor approach to entering or editing real documents.

Older versions of this document didn't have much good news to report; the OSS/FS programs for editing text weren't very capable. Happily, for simple text editing there's now a program named SiEd. It's still in development, but looks quite promising as a simple text editor.

There are other text editors, but I can't recommend them for that purpose. You could use Zurk's ZDoc (GPL license), but you have to break text documents into 4096 character chucks. I know of a variation called "ZDOCm", which doesn't have that limit; I haven't had a chance to try it. You could also use SmallBasic as a text editor. SmallBasic implements a variant of the BASIC programming language, and includes a surprisingly capable integrated development environment (IDE). Its IDE includes the ability to import and export PDOC format, and it can edit large files (each line must be 4095 characters or less, which is not restrictive at all for a text editor). Unfortunately, while SmallBasic is a really friendly IDE for program development, it's unpleasant as a general text editor; for example, you have to retype filenames (instead of choosing from a list) when importing or exporting PDOC files. Also, SmallBasic is still in an alpha stage of development and isn't really intended as a general-purpose text editor for large documents; when testing it with large files I managed to crash it twice (and one of them required a data-losing reset). Perhaps the SmallBasic developers will improve this program so it can be reliably used as a text editor.

Currently, if you must edit large documents that aren't simple text (e.g., in MS Word format) on PalmOS, you need one of the many proprietary programs that do that such as DataViz's "Documents to Go". I don't see an OSS/FS word processor for Palms in the short-term horizon (since there's no obvious project ongoing to do so), though once a text editor is available it might be expanded to do that later as well.

Locating other Software

So, how can you get other software?

A good location is freshmeat.net's list for the PalmOS Operating System category. Another good organized location for Palm software that is OSS/FS is http://www.palmopensource.com. If you want free software and don't care if it's OSS/FS, one source is freewarepalm.com, but note that you have to pay to really use much of the so-called ``free'' stuff. If you're also using Linux, you can find useful information from the Linux Documentation Project's Palm OS Desktop HOWTO article (available in many formats including HTML, PDF, and Plucker).

The Future of Palms

In 2004 I said:

Given current technology, there's a lot to like about Palms. They cost much less than Wince or Linux based PDAs, simply because Palms are designed specifically for the limited memory, display, input bandwidth, CPU performance, and electrical power of today's PDAs. Linux and Wince systems weren't designed from the ground-up for that circumstance, so they require more hardware (e.g., memory and CPU speed) than PalmOS simply to run, and much of their extra hardware is is consumed by the operating system instead of being actually useful. That extra hardware costs more, and even worse, drains the batteries - Palms tend to work much longer on the same batteries.

However, it's quite likely that things will change over the next few years. I expect hardware for PDAs will continue to get better, just as it has for laptops, and then the advantages of PalmOS will be worthless. PalmOS's underlying software design and implementation are awful in many ways; there are many arbitrary and unnecessary limits (especially size limits) that make PalmOS unnecessarily difficult to program. Also, PalmOS' fundamental incompatibility with larger desktop and server operating systems is probably insurmountable (e.g., PalmOS poorly supports files and large text files, making it unnecessarily difficult to interoperate with other systems). And note that PalmOS is not OSS/FS, unlike Linux.

All of which isn't a disaster if you're using OSS/FS applications. The OSS/FS software can be ported to other architectures, and the Linux PDAs in particular will probably attract those ports.

I wrote the above around 2004; by 2007 it became clear that PalmOS had passed its prime. By 2012 Palm had essentially collapsed (in a pretty sad way). And just as I said, if you stuck with OSS/FS, this was much less of a problem.

About the Author

David A. Wheeler is an expert in computer security and has written several articles on open source software / free software (OSS/FS). He's the author of Secure Programming for Linux and Unix HOWTO, Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers!, More than a Gigabuck: Estimating GNU/Linux's Size, and The Most Important Software Innovations. Mr. Wheeler's web site is at https://dwheeler.com.