iPhone version: add option to disable key click. Hmm, what about the PalmOS and
Pocket PC versions? There have also been requests for 'vibrate' feedback for
key presses. I hate that myself but it takes all sorts. :-)

Android version:
* Add android:installLocation property to the manifest, to support installing
  the app on external memory (SD card) under Android 2.2 or later. See
  http://developer.android.com/guide/appendix/install-location.html
* Add an option to display skins scaled to their maximum size while maintaining
  aspect ratio, or to display skins without any scaling.
* The display looks blurry on some devices. Buffering it at device resolution,
  rather than at 42S resolution, would fix that (same as how the iPhone version
  handles this).
* The "Print-Out" menu option needs a better icon.
* ACCEL, LOCAT, and HEADING don't work on a lot of devices. I'll have to
  rewrite them using the new APIs (ugh).
* Add support for physical keyboards.
* Implement pop-up keyboard for ALPHA mode text entry.

All versions: make sure Free42 saves its state when the OS shuts down. The
Android, iOS, and PalmOS versions should be OK because the OS controls their
life-cycle anyway,  but the desktop and Pocket PC versions probably need to
deal with OS shutdown explicitly. Even the Linux version may need some
attention; while it performs a graceful exit on SIGINT, it may also be killed
by the X server shutting down, and if that causes an X I/O error, that makes
Free42 send itself a QUIT signal, which causes a core dump (this is good for
debugging but probably should be changed to sending an INT signal for release
builds).

iPhone version: the App Store build is built using the 3.0 SDK, in order to be
compatible with the widest possible variety of devices. This works, and even
the high-res icon and skins work on the retina display, but the app doesn't
multi-task. Is it possible to support multitasking while building with an old
SDK?

iPhone version: the HTTP server interface should provide a way to delete files.

Windows version: the "Calculator Key" option should probably set
\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18\ShellExecute,
not \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\18\ShellExecute.
Easy enough to fix, but make sure that the new code restores the
HKEY_LOCAL_MACHINE key so that people won't have to use regedit to get rid of
the Free42 mapping!

Another Windows "Calculator Key" issue: it doesn't seem to work in multi-
language installs. Some other registry key overriding the obvious one, it
seems.

Pocket PC version: add options to hide the title and menu bars.

Windows version: after switching windows using Alt-Tab, sometimes Free42
stops responding to the keyboard. Maybe it sees alt-down and then never the
alt-up?
UPDATE: My diagnosis appears to be correct. Also note that the problem
appears to be 100% reproducible in Windows 7, and that V41 and XP Paint are
similarly affected (and presumably anything else that uses the classic
menu bar as well).
Sounds like a Windows bug, but I guess the onus will be on me to come up
with a workaround.

Mac version: implement print-out window.
Modify the file selection dialogs so they have a file type menu, and add
extensions to file names automagically when appropriate.
Pressing Command-N, or any Command-key combination that isn't defined in the
menu, causes Free42 to act as if the key were pressed without Command, and
never released... after which, the keyboard is unresponsive to mouse clicks,
and you need to press some other keyboard key to unfreeze it.

iPhone version: implement print-out window.
Implement program import/export to local files.
Implement pop-up keyboard for ALPHA mode text entry.
Implement copy & paste.
Implement URL decoding for HTTP requests (filenames with spaces, etc.)

Motif version: activating the Skin menu by clicking on it, as opposed to the
old-Mac-style press-hold-drag-release cycle, often causes a crash.
Could be a Lesstif bug: the Mac build appears immune, and it uses OpenMotif,
while the Linux (FC6) and Cygwin builds crash, and they use Lesstif.
Sounds like some evil interaction with the callback I use to populate the menu;
maybe Lesstif just doesn't like me repopulating the menu in the map callback.

iPhone version: it is possible to disable the sleep timer using
[UIApplication sharedApplication].idleTimerDisabled = YES;
This would be a good thing to use to prevent auto-poweroff while a program
is running.

iPhone version: leaving the HTTP Server doesn't always manage to close the
server socket. The result can be (1) reopening the HTTP Server fails to bind
the socket to the desired port, or (2) the app hangs, presumably while trying
to connect to the socket to tell the server to shut down. In both cases, the
server loop appears to be hanging, which in turn must have something to do
with the fact that it handles all connections on a single thread: when handling
one connection never terminates for whatever reason, all subsequent operations
either fail (case #1, above) or hang (case #2, above).

PalmOS: Flag 11 doesn't work on power cycle: After exit and restart, it does
work; after power cycle, the "running" annunciator comes on, but the program
does not actually run. Sounds like the event queue needs to be prodded.

The whole flag 11 thing seems flaky on several platforms.
Also, what about  LBL "NASTY"  SF 11  OFF  GTO "NASTY"  ?
I think we should have some kind of check for the case where the calc does OFF
without ever having handled any kind of user events since power-on; it should
either refuse to power off, or clear flag 11 before powering off, or do some
kind of user interaction to give the user a chance to break this potentially
inescapable cycle.

Add a feature for importing and exporting variables from and to CSV files.

It would be nice if we would handle the shell_milliseconds()
wrap-around. This function is only used for flying the goose and
updating the progress report when the solver is running interactively;
all it would take is for those two places in the code to detect
unlikely values of (startTime - shell_milliseconds()) and assume the nearest
likely alternative, a la Y2K.
