SuperPad Manual

  1. Introduction
  2. Overview
  3. The Menus
  4. Miscellaneous Stuff
  5. Bugs and Limitations
  6. Detailed description of the compression and encryption algoryhthms
  7. Registration

Introduction

SuperPad is my MemoPad replacement for the USR Pilot. It contains many enhancements over the original, including support for records larger than 4K, and encrypted and compressed records.

Overview

The first thing you'll notice when starting SuperPad for the first time is that it looks pretty much like the original MemoPad application, with the addition of the Up and Down buttons. These buttons allow you to quickly scroll through your list of memos, and function similarly to the Up and Down arrows located at the bottom right of the screen. Since I find these arrows hard to tap accurately, I added the above functionality to SuperPad. At this point, you'll want to enter the Preferences dialog from the Options menu.

After you've done that, you may want to encrypt some data or you may have some compressed records already loaded. You should note that in the List view, encrypted records have a little diamond next to their title, and compressed records have an icon of a folded piece of paper with a black dot in the corner.

The Menus

Options

Preferences

  1. Sort at Startup If enabled, SuperPad sorts the database every time it is started.
  2. Enable Cleanup Buttons If enabled, SuperPad will add Kill and Del buttons to certain views. The Kill button deletes all the messages in a category with the given subject. It is a kind of toggle'able button - when on (eg. in black) and you click on a memo, then they get deleted. To turn it off again, hit the button again.
  3. Confirm Deletes If enabled, SuperPad will ask for confirmation before performing any destructive operations.
  4. Enable Find Toggles support for System-wide finds. See Miscellaneous Stuff for more details.
  5. Buffer Size Sets the maximum size of a memo you'd like to edit. The number in parentheses is the currently set value. Note, if you change this value you will need to restart SuperPad before it takes effect. Finally, SuperPad will not accept a buffer-size of zero; it will automatically choose a size of 1024 bytes should you enter zero.

Empty Folder

This command will delete all the memos in the current category.

Sort Database

This does exactly what you'd expect it to do: it sorts the entire database based on the first line in the memo.

Record

Only two of the menu options will be described here:

Encrypt...

will encrypt your memo after asking for a password. Don't forget your password; if you do there will be no way to recover your data.

Cancel

will cancel your current edits and restore you memo to its original contents. Additionally, if you are viewing an encrypted memo SuperPad will return the memo to its encrypted sate. If you had selected the Done button instead, SuperPad would save the decrypted contents back to the memo.

Misc

Toggle Underlines

toggles the visible lines when you're editing a memo. The state of the underlines (eg. visible or invisible) is saved between application launches.

Toggle Scrolling

implements "Fast" scrolling - an idea borrowed from Doc. If you have this feature enabled, and you touch the pen halfway below or above the middle of the screen, the buffer will scroll down or up (respectively). Additionally, unlike MemoPad, when at the bottom of a buffer, it will beep once to tell you there is no remaining data. A second tap will scroll to the previous or next memo. Again, its state is saved between application launches.

Miscellaneous Stuff

Replacing MemoPad with SuperPad

I'm frequently asked if it's possible to replace the default MemoPad application button with SuperPad. This can be achieved with the AppHack and HackMaster utilities from DaggerWare. See the web-site for details.

How Find works in SuperPad

The preferences item Enable Find enables searching of SuperPad's database when you're not currently running the SuperPad application. Unfortunately, it won't properly search compressed records. However, if you're currently running SuperPad, compressed records do get searched properly. Moreover, when running, SuperPad disregards the preferences item and will always search it's database nomatter what the preference item state is.

Bugs and Limitations

Low Memory

There is one important thing to know about SuperPad and memory. Before editing a memo, SuperPad tries to "grow" the old record in memory to assure that there is space to store any potentially added text. Unfortunately, there is no graceful way to handle the situation in which it can't grow the database block; due to the way the PalmOS is architected, you will be presented with a "DmResizeRecord failed" error, that can't be trapped by the application. Note that you won't loose any data, but may have to reset your pilot. Choosing a smaller buffer size in the preferences dialog may help temporarily alleviate this problem. If anybody knows a way around this problem please let me know.

Hotsync Support

Currently there is no way to create memos larger than 4K on your PC or Mac. You can create them under Unix or OS/2 using the pilot-link software, however. My understanding is that the author of the Generic Conduit Manager is working on a PC conduit to support larger records. Please contact Pat Beirne for details. Nonetheless, memos >4K do get hotsynch'd; you are just unable to edit them past the first 4k.

Archiving Memos

SuperPad does support archiving of deleted memos. To enable this feature, enable Confirm Deletes in the Preferences dialog. You will then be presented with the option to archive memos.

Please note, however, that if you select the Kill button or Empty Folder commands, you will not be prompted to archive memos nomatter what your preferences setting is. If you find this too limiting, please send me email and I can incorporate a change in a future version.

Description of the compression and encryption algoryhthms

Compression

The compressor uses a variant of the byte-pair encoding algorhythm by Phil Gage. The format of a compressed memo should be as follows:

  1. Text to display in list view (uncompressed).
  2. Magic Number within 100 bytes of the start of the memo (currently 0x81) - automatically added by the compressor.
  3. Compressed data.

Source code for the compressor should have been included in the SuperPad zip archive.

Encryption

The current version of SuperPad supports encryption of memos. Currently, it uses the Safer-SK algorhythm (in CFB mode) with 8/40/128 bit keys (larger keys are present in registered versions).

Safer was chosen mainly because it is "lean", more easily implemented than BlowFish, free from annoying licensing constraints, and appears to be reasonably secure.

Please note that a memo that is encrypted stays permanently encrypted. You will need the password to decrypt it.

Here is where you can find details on Safer.

Of course, there will be some of you who don't trust that I haven't put in a trap-door; I would wonder the same thing. On the issue of whether I'll release the source code - the answer is no, not for the time being. You can verify the output of SuperPad, however, by noting the format for an encrypted memo:

  1. Memo title
  2. 0x81 0x81 0x81 0x81
  3. encrypted data (13 Rounds) where "encrypted data" substitutes "0x81 0x81 0x81 0x81" for where a zero would normally appear in the encrypted data. And of course you'll need to get the "endianness" correct if you compile the algo on a PC.

And finally, yes, I've been careful about zero'ing out all memory buffers used for storing passwords and decrypted data so that someone trying to cryptanalyze your data by dumping your Pilots memory won't be succesful.

Registration

Please note that SuperPad is now shareware, and I'm asking that all users register for the following reasons:

  1. Many people ask me for features I wouldn't normally otherwise implement.
  2. To help defray the costs associated with obtaining a development system.

Registration will entitle you to priority on feature requests and the availability of full 128 bit encryption (for US citizens only) and 40-bit encryption for non-US citizens.

To register, please send a self-addressed and stampted envelope, a check or money-order for $10, and a pre-formatted Mac or PC disk (if you'd like a diskette copy) to:

US citizens should also include a brief statement acknowledging the fact that they are US citizens and agree to comply by the terms of ITAR. Additionally, I can only send a 128 bit version to a US address.

Electronic distribution can be arranged on an individual basis. Please send me email for details.

Pilot shareware authors should contact me for information on how to obtain a complementary copy.

Finally, if you're not 100% satisfied, I'd be happy to refund you your money.