TealScript User's Manual

Program Version 3.94

Last Updated: January 15, 2008

Table of Contents

Chapter 1 – Overview
   Fine Tuning
Chapter 2 – Starting the Program
   Enable Globally
   Additional Options
Chapter 3 – Write Anywhere Mode
   Push-to-write Mode
   Auto-Detect Mode
   Writing Areas
Chapter 4 – Recognition Prefs
   Allow ‘Alternate’ Strokes
   Disable System Auto-Shift
   Easy Capitals
   Multi-stroke timing
   Adjust for Slanted Text
Chapter 5 – Options Prefs
   On Pen Swipe Up.
   Maintain entry statistics
   Beep on unrecognized strokes
   Click on stroke entry
   Disable Custom GSI Draw
   Filter initial pen bounce
   Input Area
Chapter 6 – Write Anywhere Mode Prefs
Chapter 7 – Write Anywhere Tuning
   Disable if no active text field
   Disable for quick initial taps
   Normal tap if held down for XX sec
   Normal tap if held within XX pixels
   Normal tap if XX seconds after last stroke
Chapter 8 – Write Anywhere Apps
   Off for selected apps
   On for selected apps
   Off for selected, else on
   On for selected, else off
Chapter 9 – Editing Shortcuts
Chapter 10 – Showing Statistics
   Fine Tuning Recognition
Chapter 11 – TealScript Stroke Help
   Multi-Stroke Characters
   Alphabetic Strokes
   Navigation Strokes
   System Strokes
   International Strokes
   Macro Strokes
Chapter 12 – Testing Recognition
   Improving Recognition
Chapter 13 – Training the Profile
   Starting a training session
Chapter 14 – Editing Stroke Entries
   Key to Send (one-stroke)
   Key to Send (multi-stroke)
   Entry Areas
   Shift Modes
   Sending ASCII Keys
   Sending Key Macros
   Sending System Macros
Chapter 15 – Main Menu Items
   Snapshot stroke shapes
   Revert to last shapshot
Chapter 16 – Improving Recognition
   Identifying Problems
   Fixing Problems
Appendix A – How the matching system works
Appendix B – Advanced Tuning
Appendix C – Automatic Tuning
   Step 1 - Entering sample strokes
   Step 2 - Removing mistakes
   Step 3 – Set AutoTune Options
   Step 4 – Evolve profile
   Step 5 – Manually fix-up entries
   Step 6 – Clean up files
Appendix D – Frequently-Asked Questions
   I only want to use Graffiti 1 strokes. How do I turn off multi-stroke characters like 'T'?
   When use the "Write anywhere" feature, it sometimes doesn't work. I only sometimes get "ink". 40
   I've upgraded from the older version, but I'm not seeing the new strokes or improved recognition. 41
   I can't get any characters to be recognized.
   I can't get autocaps to work.
   TealScript crashes when running certain hacks.
   I can't get the full screen "write anywhere" option to work on my Treo/OS4 handheld.
   The "Write anywhere" seems to work, but I can't get any custom or Graffiti 1 strokes to be recognized. 42
   Can I program TealScript to understand two-taps in the number area as an umlaut (diaeres) shift for entering "ö", "ü", and "ä" characters like Graffiti 2?
   I cannot get Graffiti shift modes to work on my CLIE.
Appendix E – Revision History
Appendix F – Contact Info
Appendix G – Registering
Appendix H – Products
Appendix I – Legal Notice



Thank you for trying TealScript. TealScript is a replacement for Graffiti and Graffiti 2, the text recognition systems that come on PalmOS handheld organizers. Like those systems, TealScript converts pen strokes into letters and numbers, though with better accuracy and more entry options.

Unlike those systems, TealScript is fully configurable. While TealScript supports a standard set of both one-stroke and two stroke characters, it can be trained to recognize your own distinct handwriting and reduce common errors. You can use TealScript to add your own new strokes and multi-character macros, or delete and modify existing strokes to correctly recognize strokes that might otherwise confuse the built-in recognition. You can also use TealScript to add Graffiti recognition to a devices, like the Treo 650, which have no native Graffiti support.


This archive contains the following files:

Program files: TEALSCRP.PRC The TealScript program file

RESCRIPT.PRC An optional TealMaster system extension to automatically reinstall TealScript after a system reset (for older OS3 and OS4 devices only)

TEALMSTR.PRC The system extensions manager for ReScript (trial)

SETUP.EXE The Windows easy-installer program

Document files: SCRPDOC.PDF This document in Adobe Acrobat (PDF) format

SCRPDOC.HTM This document in HTML format (sans images)

SCRPDOC.PRC This document in TealDoc format

REGISTER.HTM TealPoint Registration form in HTML format

REGISTER.TXT TealPoint Registration form in text format


Under Windows

If you are running Windows, you may double-click on the TPSetup.exe easy-installer program to select and install the files to your handheld.

Other Systems

Use the Palm Install Tool that comes with your organizer to install the program file TEALSCRP.PRC. This manual is provided in this archive as the PalmPilot document SCRPDOC.PRC, which you may view with our separate program TealDoc.

The Palm installer can be run as a separate program or from its icon on the Palm Desktop. Instructions on how to use the Palm installer are in the Palm Handbook that came with your Pilot, PalmPilot, or WorkPad.

PalmOS3 and PalmOS4 Handhelds Only

After a crash or system reset, TealScript normally needs to be launched again to restart recognition on pre-OS5 devices. You can automate this by installing the system extension ReScript and a system extensions manager. We provide a trial version of our manager TealMaster, if you do not already have it or another system extensions manager (such as HackMaster) installed on your system.

Use the PalmPilot installer to install RESCRIPT.PRC and TEALMSTR.PRC. Then run the TealMaster program on the PalmPilot and check on the checkbox next to ReScript. TealScript will be started the first time after you leave TealMaster. Arm-based handhelds running OS5 do not require ReScript to restart after a reset.


Once you enable TealScript global recognition, before updating or deleting the program in the future, you must first turn off global recognition or the update or delete process cannot finish. Likewise, system extensions like ReScript must also be turned off before deleting or reinstalling.


When using TealScript, be sure to turn off the Graffiti-2 write-anywhere option in system preferences (if present) before using TealScript’s own write-anywhere mode. Also turn off any keyboard drivers, particularly the MiniKeyboard driver for the CLIE, if present.

Chapter 1 – Overview

TealScript uses exclusive technology to recognize handwriting strokes in a highly accurate but flexible manner. TealScript comes with a default profile which allows entry of characters in a number of styles, including standard Graffiti strokes and non-graffiti natural strokes, such as both single and two-stroke ‘T’, ‘K’ and ‘X’ characters. TealScript is tunable, yielding better recognition than Graffiti or Graffiti 2. More importantly, using TealScript, the end user can modify existing strokes, remove old ones, or create new strokes altogether to create their own personal stroke alphabet.


TealScript recognizes strokes in graffiti area by comparing each entered pen stroke to sample entries in a database that maps each sample stroke to the letter or character it represents. This database, also called a “stroke profile”, is used as a sort of dictionary, converting a stroke to a character once it's found the closest match. You can create more than one profile, allowing you to switch sets of strokes when changing users, languages or input styles.

Fine Tuning

Most tuning is done by manipulating the individual entries in a stroke profile. You can modify various adjustment values, retrain its recorded stroke data, add new stroke entries or remove existing ones. While fairly technical, this process can be streamlined with the aid of some powerful automated tools TealScript provides.

Chapter 2 – Starting the Program

After installing, begin using TealScript by starting it from the Palm application launcher. You'll start on the main control screen, the main starting point for tuning and configuring TealScript.

When first installed, TealScript will create a default stroke profile. If created properly, the profile name will appear next to the label “Profile”, with a pop-up list that displays all installed profiles and provides choices for deleting, duplicating, or creating new profiles.

Enable Globally

Normally, you'll want to turn on the Enable Globally option on this screen, which enables TealScript recognition using the current profile even when you leave to start another program. Thus, setting this checkmark selects TealScript as your default text input system.

When this option is not selected, TealScript's replacement system is only active within the program itself, and the default Palm Graffiti recognition stays in effect outside TealScript.

NOTE: On Pre-OS5 handhelds, TealScript's global recognition turns off when the system is reset, either due to a crash or from a manual pinhole reset. When this occurs, you only need to restart TealScript to re-enable recognition. Optionally, you can use the included TealMaster system extension ReScript to automatically do this for you. Simply install TealScript and the TealMaster (or another system extensions manager) and check Rescript to turn it on.

Arm-based handhelds running OS5 or higher automatically restart after a reset and do not require ReScript or TealMaster.

Additional Options

Once you’ve had a chance to try out the default recognition, you may want to return to the program to learn some of its finer points, try out some new options, or tune the recognition to match your own preferences and writing style.

The main screen provides access to a number of program features, which are covered in the following chapters.

Chapter 3 – Write Anywhere Mode

The write anywhere option allows one to write graffiti strokes on the upper display portion of the screen in addition to the standard text entry area (if present). This option is useful on devices that do not normally support pen-based entry (such as keyboard-equipped Treo 600/650 handhelds) or units with software or hardware-collapsible writing areas like the Sony NX70 or Palm Tungsten T.

On-screen writing has an additional advantage in that when writing on the screen; the “ink” from the writing is visible, making it much easier to correctly write strokes on devices whose visible displays do not extend down into the text writing area.


When using the pen on the screen, taps cannot be interpreted at the same time as both writing and as taps on buttons, etc. TealScript has to decide which one you were intending to do when writing on the screen and either recognize it as a letter or pass it through to the program below. If you are having problems either pressing buttons or writing text, carefully read the rest of this chapter.

Push-to-write Mode

The easiest way to write on screen is to hold down the center select button on the 5-way control when writing. This mode is called “Push-to-write” mode. It is the recommended way to write on the screen, because there is no ambiguity about whether one is trying to write a letter or tap on text and controls in the window.

NOTE: When writing in this mode, you should try to start writing soon after pressing down the button and continue to hold down the 5-way for at least one second even when entering a single letter. Otherwise, PalmOS might register the button press to call up a clock, application launcher or the system attention manager, depending on your device.

Auto-Detect Mode

In Auto-Detect mode, you simply write on screen at any time, and TealScript attempts to detect whether you’re writing, tapping, or selecting based on the position and speed of the pen stroke. To best use this mode, it’s important to know how the program does this.

Distinguishing between text and taps in Auto-Detect Mode

When writing on the screen, you can adjust your strokes or set tuning options to help TealScript distinguish between taps meant to activate on-screen buttons and controls from taps meant as text entry.

TealScript looks at where on the screen you are tapping, what buttons are held down, how the pen moves when it first hits the screen, and when the last character written was entered.

Strokes are interpreted as writing when

· they start away from an edge (where buttons and drag bars typically are), and..

· they quickly follow another writing stroke, or..

· the pen was moving as soon as it hit the screen

Strokes are interpreted as screen taps when

· they start near a screen edge, or…

· they DO NOT quickly follow a writing stroke, and…

· the pen paused briefly before starting to move

Thus, when writing text, it is important not to pause the pen on the screen before writing a letter. Conversely, button presses should be held in one spot without accidentally jostling the pen. If a pen swipe is needed (say, to select text), the pen should be held in one spot for an instant before starting to move it.

Quick screen taps in Auto-Detect Mode

Write Anywhere Tuning allows you to select how a quick single-tap on the screen is interpreted. If you checkmark the setting “disable for quick initial taps”, then quick taps are interpreted as button presses. This makes button presses easy, but it makes it slightly more difficult to start a sentence with a punctuation character, as the punctuation shift is also a quick tap. An easy way to do this is to enter an extra shift stroke first before the punctuation-shift so that the tap will then quickly follow another writing stroke and thus be assumed to be writing as well.

If the “disable for quick initial taps” option is NOT checked, then quick taps are assumed by default to be writing, not screen taps. In this mode, taps on buttons may sometimes need to be held down still slightly longer than when writing text. This often feels equivalent to just pressing harder on the screen when selecting a button.

Writing Areas

It’s important to note that when writing on the full screen, the location of the alpha/number border is still maintained and extended upwards, meaning that you’ll still need to write on the left side of the screen for letters and the right for numbers, or upper and lower halves of the screen if running on a landscape-oriented device. For devices with 3-panel “wide” modes, all three writing areas are extended upwards.

In landscape modes, the graffiti writing areas are stretched horizontally to fill the screen. This differed from older versions of TealScript (pre-3.7) that had a funky piecemeal way of dividing the display.

Chapter 4 – Recognition Prefs

The Recognition Prefs screen, accessible by either the on-screen Preferences button or drop-down menu, provides the following options to help improve recognition accuracy and speed:

Allow ‘Alternate’ Strokes

When this option is turned on, the recognition engine recognizes as valid strokes entries in the current profile marked as "alternates." These typically identify stroke entries which are not the “official” way to enter certain characters, but are commonly-used alternatives which are unique enough to not be confused with another valid stroke.

You might want to turn off this option if you create many "alternate" strokes but later want to temporarily disable them and go back to a bare-bones set of standard graffiti strokes. Normally, however, you want to set this option to “on.”

Disable System Auto-Shift

Newer versions of the Palm OS automatically capitalize the beginning of a block of text or sentence. Checking this option tells TealScript to ignore this auto-capitalization, and always enter characters as lower case unless explicitly shifted to upper case. The visual shift indicator may still automatically be drawn "shifted" in some PalmOS versions, but its effect will be ignored unless it was manually turned on by a graffiti stroke or unless the stroke was drawn in a designated “EZ Caps” zone (see below).

Easy Capitals

The Easy Caps option effectively creates a third drawing region between the number and text entry regions. This is handy on devices which do not support the Graffiti-2 “wide” entry layouts that define an official separate “caps” entry area.

When you draw letter on this dividing line, they'll become automatically capitalized, removing the need for using the shift stroke. EZ Caps can be set to work in three modes:

1) centered,

2) starting, and

3) crossed.

In centered mode, letters are capitalized if the center of the stroke falls on the dividing line. In starting mode, however, the letter is capitalized if the beginning of the stroke begins on the dividing line. In crossed mode, the stroke is capitalized if any part of it crosses the dividing line.

NOTE: When entering strokes for “L”, “T”, and “J” in centered mode, note that the “center” of the letter is calculated as the center of the bounding box defined by your whole stroke. Thus, even if the vertical part of the stroke is right on the line, if the horizontal “arm” is too long, the actual center of the stroke may not be on the line.

Multi-stroke timing

Some characters, such as “T” and “K”, are typically entered in two, overlapping pen strokes. For these characters, the second stroke has to be written immediately after the first. This option sets the maximum time delay--in fractions of a second--that can occur between two strokes in order for them to be interpreted as a multi-stroke character.

The two strokes that make up a “T”, for instance, can either be interpreted as a “T” or as an “I” followed by a space depending on whether they overlap and how quickly the second stroke follows the first. Adjust this option if you need more or less time to enter all the strokes in a multi-stroke character.

HINT: Set this option to Disable to easily turn off all multi-stroke characters.

Adjust for Slanted Text

Handwriting recognition is generally very sensitive to the angle the text is written and can get confused if you tend to write letters at an angle. For instance, “C” and “L” strokes can appear very similar if either is drawn at a slight angle. To compensate for this, you can tell TealScript to adjust for text slanted up to 20 degrees to the left or right.

HINT: When selected, this option automatically rotates your stroke as you enter it (in the opposite direction) to compensate for the slant. Use the Test Recognition screen to preview how the rotated text looks. If the preview appears perfectly vertical, you’ve chosen the correct setting.

Chapter 5 – Options Prefs

The Options Prefs screen, accessible by either the on-screen Preferences button or drop-down menu, provides the following options for program interface and general usage:

On Pen Swipe Up...

This option determines which feature to activate when a stroke is made from within the text entry area to the top of the screen. This menu takes the place of the system preferences "pen" options when TealScript is active.

Choices for this item include:

· Backlight

toggles on/off the device backlight if applicable

· Keyboard

brings up the system on-screen keyboard if an active text field exists

· TealScript Help

brings up TealScript help

· Turn off and Lock

locks and turns off the handheld (also supports TealLock, if present)

· Beam Data

issues the menu shortcut “/B”, typically mapped to the beam command

· TealGlance

brings up the TealGlance reminder screen, if installed

· Contrast

brings up the device-dependent contrast screen, if applicable

· Launcher

exits the application and goes to the application launcher

· Menu

activates the menu bar

· Find

brings up the system “global find” dialog

· Brightness

brings up the device-dependent brightness control, if applicable

· Graffiti Help

brings up Graffiti (2) help

· Write Anywhere

toggles write-anywhere screen mode (OS5 required)

· Turn Off

turns off the handheld

· Change Profile

Changes the current profile to the next one found in memory; a very useful feature when working with internationalized (Hebrew, Russian, etc) profiles. New in 3.86

· Do Nothing

NOTE: In Palm OS versions prior to 3.0 on the PalmPilot Personal and PalmPilot Professional models, some features, such as beaming will have no effect. Other options, such as “contrast”, differ in functionality from device to device.

Maintain entry statistics

Maintains and updates a statistics table whenever you enter a keystroke. These statistics can help you tune the recognition for better results, and can be accessed via the “statistics” item on the main screen.

Beep on unrecognized strokes

Plays the system error sound when a stroke is entered that does not resemble any entry in the current profile. Set this option to give an audio cue to help in recognition.

Click on stroke entry

Plays the system click sound when a valid stroke is entered. Note that that this option will slightly slow down text entry recognition on slower Dragonball-based handhelds, which delay the CPU while playing the click sound.

Disable Custom GSI Draw

When enabled, this option keeps TealScript from drawing the Graffiti shift indicator. Use this option for devices like the Sony UX50 that replace the standard Graffiti system shift inidicator with its on incompatible indicator.

Filter initial pen bounce

When enabled, this option filters out extra symbol shift taps that are accidentally caused by bouncing the pen at the start of a stroke. Instead, symbol shifts are only recognized if there is a clear pause after them before starting the next stroke. (New in 3.94)

Input Area

Use this option to tell TealScript what the layout of your text writing area is. Normally, the “Autodetect” option is sufficient, however, the following choices are sometimes necessary:


If you are running a Sony NR70, NX70 or similar handheld to tell TealScript that the line separating the alphabetic and numeric portions of the graffiti area are centered on the handheld instead of slightly offset to the right, as they are on most other models. This is also the recommended layout for devices like the Treo600 and Treo650, which have no dedicated Graffiti area.


Select this option to force the normal alphanumeric layout with letters on the left and a numbers in a smaller area on the right. This layout is normally correctly autodetected on devices with dedicated Graffiti writing areas.


Similar to the Right option, this makes the right entry area slightly larger than the left side.


Select this option to force detection of a “wide” three-panel graffiti layout that fills the full width of the screen. This option is sometimes needed if using a third-party graffiti skin that adds extra buttons to the writing area.


The previous four layouts are also available in “X” variations, where the alphabetic and numeric areas are swapped. This is particularly useful for left-handed users or when using the “push to write” mode.

Chapter 6 – Write Anywhere Mode Prefs

Use the Write Anywhere Mode screen under Preferences to activate and set options for how writing on the screen is recognized and drawn. The following options are available:

Enable Write Anywhere when 5-way center is held down

This option enables Push-to-Write mode, which lets you write on the screen whenever you hold down the 5-way select button.

Auto-detect screen writing

This option enable Auto-Detect mode, where screen taps and strokes are interpreted as text entry depending on the position and speed of the stroke.

Tapping Graffiti shift indicator toggles auto-detect mode

When set, this option lets you turn on or off Auto-Detect mode by tapping on the on-screen Graffiti shift indicator, if present.

Beep with activation change

This option tells the system to beep once when turning on Auto-Detect mode, and twice when turning it off.

Screen Ink

Use t
his option to set the width and color of the on-screen “ink” when using Write Anywhere.

Draw border line(s)

When this option is set, TealScript draws one or more vertical lines on the screen when you write, showing the borders between the “alphabetic”, “numeric”, and “capitals” (if present) entry areas.

Chapter 7 – Write Anywhere Tuning

The Write Anywhere Tuning screen, accessible by either the on-screen Preferences button or drop-down menu, provides the following options for adjusting Write-Anywhere’s Auto-Detect mode. These options do not affect “Push-to-write” mode, which always assumes writing is text if the 5-way select button is held down.

Disable if no active text field

This useful option only turns on “write anywhere” when there is an active (flashing) text cursor in a PalmOS text-entry field. When no text field is present (and selected), all taps on the screen are interpreted normally without needing to press down harder (longer) with the pen to register button presses, etc. Note that some word processors may implement their own text-entry systems to support more fonts. When this is the case, full screen text entry will be turned off if this option is enabled.

Disable for quick initial taps

Quick taps in a single place can be interpreted either as normal screen taps and button presses, or as taps designated for the text entry system—a punctuation shift in the default profile. By default, quick taps are interpreted as text, requiring a slight tap-and-hold action to press buttons, select menus, and perform other normal screen tasks.

When this option is set, however, quick taps are interpreted normally, so tapping buttons and menus feel normal. This removes the primary disadvantage of enabling full screen writing. The downside, however, is that punctuation-shifted characters can then only be entered using full screen writing when immediately following another text-entry stroke, entered either on the screen or standard text entry area. The time delay in which the tap must follow the last character is specified in the “after last stroke” time item described below.

HINT: when using this option, to enter text starting with a punctuation-shift, first enter a stroke for a capitalization shift (pen up) first before the punctuation-shift (tap).

Normal tap if held down for XX sec

This parameter specifies how long the pen must remain in one spot before being interpreted as a screen tap instead of a punctuation shift, which is also entered as a tap in a single spot. This option can be changed to increase or decrease sensitivity, but should be changed in conjunction with the following option…

Normal tap if held within XX pixels

This parameter specifies the minimum distance (in pixels) which the pen must move before being classified as a text entry stroke. Along with the previous entry, this parameter determines whether pen taps and movements are interpreted as normal taps or text entry. When the pen touches the screen, what it does in the initial time interval determines how it’s interpreted. If it moves outside the specified pixel radius, the stroke is considered text entry. If it stays within the radius, it’s considered a screen tap. If the pen is lifted up before the time interval expires, it is considered text entry (punctuation shift) unless the Disable for Quick Taps option is set.

Normal tap if XX seconds after last stroke

Since text tends to be entered in blocks of characters, TealScript can use this fact to help it detect text writing. This parameter specifies a timeout value following entering a character before which screen taps are assumed to be text entry. This allows a sequence of characters to be entered easily without the system unexpected switching to normal “tap” mode.


Be sure to turn off the Graffiti-2 write-anywhere option in system preferences (if present) before using TealScript’s own write-anywhere mode.

Chapter 8 – Write Anywhere Apps

The Write Anywhere Apps screen under Preferences allows you to have Write Anywhere Auto-Detect mode automatically turn on or off when launching specified applications.

Select apps from a list of all apps installed on the handheld in main memory.
You have a choice of the following options:

Off for selected apps

Write Anywhere is automatically turned off when entering selected apps. Apps that have not been selected assume to the last user-selected state.

On for selected apps

Write Anywhere is automatically turned on when entering selected apps. Apps that have not been selected assume to the last user-selected state.

Off for selected, else on

Write Anywhere is automatically turned off when entering selected apps. Write Anywhere is automatically turned on for all other apps.

On for selected, else off

Write Anywhere is automatically turned on when entering selected apps. Write Anywhere is automatically turned off for all other apps.

HINT: Apps running off external storage cards or otherwise not present in memory when the App List is created are treated as unselected apps. To select one of these apps, load a temporary copy into main memory before entering the Write Anywhere Apps screen, and select the apps. The apps can then be deleted from memory and run from the cards. TealScript will treat the apps as selected as long as you do not return and save changes from the Write Anywhere Apps screen.

Chapter 9 – Editing Shortcuts

Graffiti Shortcuts allow you to quickly enter a word, phrase or commonly used string of characters with only a few strokes, and are standard on all Graffiti-equipped handhelds. Shortcuts begin with a shortcut symbol, shaped like a lower-case cursive “L”, followed by typically one to four unique letters. When a shortcut is entered, TealScript backspaces over the entered letters and the shortcut symbol, and inserts the full text the shortcut represents.

The Edit Shortcuts screen under Preferences allows you to edit PalmOS system shortcut combinations. This screen replicates the shortcut PalmOS preferences panel that is present on most devices, but is missing from the Treo 650. TealLock’s screen and the system panel (when present) are equivalent and can be used interchangeably.

Chapter 10 – Showing Statistics

The statistics screen shows various statistics about your previous text entry under the current profile, such as stroke count, writing rate (in strokes per minute), corrections, and unrecognized strokes.

Also shown are the top false misses (characters you entered after correcting a previous attempt) and the top false hits (characters that were entered that you really didn’t want.) False misses are tabulated as characters entered after a backspace character, while false hits are detected as characters following a backspace.


Statistics are tabulated if the "statistics" checkmark is set in the main screen, and are reset whenever the profile lookup system is updated to reflect changes made in the current profile.

Fine Tuning Recognition

Typically, letters showing up as “false hits” correspond to similar-shaped strokes in the “false misses” field. A false hit and false miss pair can indicate two strokes that are too similar, or a stroke entry that has an adjustment value that needs to be set to a more or less restrictive value. See the appendix for more hints on improving recognition.

You can also use the statistics screen to periodically to identify and fix common problems in your text recognition during normal use. Immediately after encountering a recognition error in another program, you can visit the statistics screen in TealScript and scroll through the last few entered strokes to see the shape of the stroke you actually entered. If it’s a valid shape that should have been recognized, you can create a new profile entry based on that stroke using the "Add Entry" button.

Chapter 11 – TealScript Stroke Help

Use TealScript Help to see how to make strokes defined in the current profile. Broken down by category, the strokes shown are actually pulled from current profile entries, so they automatically reflect any training or custom strokes that may have been added.

NOTE: The default TealScript profile supports many alternate ways of entering the many letters and symbols. Those marked as “Standard” in the stroke profile are shown in TealScript Help.

Multi-Stroke Characters

Many of the letters can be entered with a single pen stroke, while for others; the standard entry method requires two or more strokes. For these, initial strokes are shown in gray with the final stroke in solid black. When entering these characters, the exact placement of the strokes relative to each other need not be exactly as pictured, since this is difficult to do on handhelds which do not have a text entry area which is visible (i.e. part of the active display). However these strokes must overlap or be no more than a half character-width apart to be definitively recognized as part of a multi-stroke character.

Alphabetic Strokes

The TealScript text entry alphabet is intuitive and easy to remember, resembling as much as possible, basic block capital letters written with as few pen lifts as possible.

Two letters, such as “A” and “F”, consist of only the first stroke of those letters because the second cross stroke is not necessary to differentiate those strokes from other letters.

Two other letters, “H” and “Y”, are entered in lower case (the latter in cursive) to minimize the number of strokes necessary to complete them.

Four strokes: “K”, “Q”, “T”, and “X”, are normally written with two overlapping strokes (although single-stroke alternates exist). For instance, to write a “Q” one would enter the two strokes in sequence on top of each other:


In order to enter the letter “O” followed by a symbol shift, a sequence which uses the same two strokes, either a brief pause should be added after entering the first stroke, or the two strokes should be entered adjacent to each other in the writing area with a half-space between them.
Numeric Strokes

Even more intuitive than alphabetic strokes are number strokes, which are entered on the right side of the text entry area. These strokes are written the way most people write their numbers. The numbers “4” and “5”, however, only consist of the first stroke for these numbers, though the “5” can also be entered using its full-formed one-stroke version, which resembles the letter “S”:

Navigation Strokes

Navigation strokes are used to move the text cursor within a field, from field to field (if software-supported), to the next line, or to insert a space or delete a character. They consist of either a single linear stroke, or a doubling-back of that stroke onto itself along the same line.

System Strokes

System strokes perform special PalmOS-specific functions such as shifting to a new text-entry state, starting a menu command stroke, or initiating a macro text shortcut.

New strokes for cut, copy, paste, and undo can also simplify text editing.

International Strokes

International strokes convert the preceding character to its accented equivalent. For instance, executing the Acute stroke following an”A” stroke:


… generates the accented character ”Á”.

Punctuation Strokes

Punctuation strokes enter common punctuation symbols if entered after a punctuation shift stroke (tap). Strokes such a plus (+), quote (“), asterisk (*), brackets ([ and ]), braces ({ and }), and number sign (#) are designed to be easier to remember than their counterparts in other systems.

For instance, and plus sign is entered by simply drawing a plus after entering a punctuation shift:



Symbol Strokes

Symbol strokes consist of letters less-frequently used in normal writing than their punctuation counterparts.
Special Strokes

Special strokes generate characters which are neither letters nor numbers, but do not require a punctuation or symbol shift. By default, TealScript supports a few special strokes, such as “&” and “@”. There can be written normally without (or with) a punctuation or symbol shift because they are unique enough not to be confused with a normal letter or number.

Macro Strokes

TealScript supports the creation of multi-character macros, which can be used to enter short words or character combinations with a single stroke. Two example simple macros are included in the default profile to write the words “for” and “the”.

These are just sample entries included to demonstrate this feature. You can modify or delete them in the Edit Strokes screen if you don’t wish to use them.

Chapter 12 – Testing Recognition

Use the Test Recognition screen to find out why particular strokes are being recognized the way they are. It is a most useful tool for helping improve recognition with a stroke profile.


The recognition test screen provides a text field where you can test how the current stroke profile recognizes your text entry. Every time you enter each character, the stroke you entered appears on the left, while its best match in the profile (if found) appears on the right. A match percentage is displayed showing how close the two strokes are to each other mathematically. The higher the number; the better the match found.

At any time, you can scroll back through the last few characters entered using the two arrow buttons above the current stroke display, seeing why a missed character shape may not have been recognized.

Improving Recognition

Use the test screen to diagnose recognition errors. When you enter a stroke, you can see how the digitizer hardware sees your input stroke in the left preview window. If it looks distorted or sloppy there, you’ll need to adjust your handwriting.

If the left preview looks okay, you can see what it best matches in the right preview window. If the match is incorrect, it may indicate that you need to adjust, disable, or retrain an existing stroke entry for better recognition. Select Edit Match to edit that entry’s data. See the Appendix for hints on how to adjust stroke profile entries for better recognition.

You may also wish to create a new profile entry based on that stroke to improve recognition. Do this by clicking on the Add Stroke button. You'll be asked to set basic parameters for the stroke, including the key character it represents.

Chapter 13 – Training the Profile


The training screen allows easy fine-tuning of whole groups of strokes in the current profile, simply by writing them. Use this option to do minor quick adjustments to the stroke profile to accommodate minor variations in your handwriting, such as slanting letters. In general, it won't help with more severe cases of stroke confusion. For these cases, use the more specific training methods in the edit or training screens.

Starting a training session

When the "Train Profile" option is selected, you'll be presented with a list of character groups to train, such as "alphabetic" or "numeric". Select one and you'll be brought to the training screen, and asked to enter a series of strokes one at a time.

Entering Strokes

Enter all the strokes carefully; ignoring any shifting strokes you may ordinarily need to do when entering the characters. Enter the strokes naturally, but slowly and carefully enough to be representative of your handwriting. When entering multi-stroke characters, enter the last stroke only.

You will be prompted on the right with each stroke before you enter it, but you needn't use the exact suggested stroke for a particular character if there are active alternates in the current profile. The system will match each stroke to its closest “non-distort” entry in the stroke profile, and adjust that entry to resemble the stroke you entered.

If you make a mistake during training, you can use the “Revert Profile” menu item (described later in this document) to restore trained shapes to their last saved shapes or initial “factory” shapes if the shapes have never been saved.

IMPORTANT NOTE: When doing overall training with this option, strokes in the profile are modified, so enter your strokes carefully, as they must be both representative of your normal handwriting and unambiguously different from similarly-shaped letters. Careless training can make recognition worse, requiring hand tweaking in the editing screen or restoring of the profile from previously backed-up shapes (selectable from menu item) to undo changes to the stroke profile.

Chapter 14 – Editing Stroke Entries

The Stroke Editing screen, accessible from the button on the main screen, allows you to make detailed modifications to individual entries in the stroke profile. Making these modifications is more technical than the overall training process, and requires experience and experimentation.


On the Edit Profile screen, a list of the strokes in the current profile appears on the left. Strokes for letters classified as “Standard” appear in TealScript Help and are shown in bold in the list.

In a complete stroke profile, there are entries for not only letters and numbers, but for non-printing characters such as a (Shift) operation or menu (Command) stroke. There are also often several stroke entries for a single character. These exist to make the profile more robust to variations in the way a stroke can be entered.

When you select an entry from the list, the shape of this stroke appears in the box above. On the right are various adjustable settings corresponding to the stroke.

Tap New to create a new stroke entry, Del to delete the current selection, or Retrain to redefine the stroke shape associated with the current selection. You can also select Clone from the drop down menu to duplicate the current selection.

HINT: You can quickly go to an entry in the stroke list by entering the character corresponding to those entries.

Key to Send (one-stroke)

When the displayed stroke is entered, the key specified in the first key action field is generated and sent to the current application. The key can be an actual displayed character, such as “A”, or a system command or special function, such as “Symbol Shift”.

Key to Send (multi-stroke)

Some stroke entries can represent more than one character, depending on whether it is entered overlapping and following another 1 or 2 characters. These “multi-stroke” character entries are intermixed with single stroke entries since many use the same basic pen movements. Multi-stroke characters have a second key action defined which will be used if a specified one or two characters precedes the current stroke.

Some strokes, such as the second stroke of “K”, have no one-stroke interpretation, so their normal key is set to “none.”

HINT: The stroke list is sorted by the single-stroke interpretation of each stroke. Multi-stroke characters are listed under the single-stroke interpretation for the last stroke of the multi-stroke character. For instance, look in the stroke entries for space (not “T”) to find where the two-stroke “T” is defined.


Stroke entries can be classified under three different classes: Standard, Alternate, and

Distorted. These affect how the strokes are affected by training or the main screen, the "allow alternates" preferences option, and TealScript Help.


Standard strokes can be modified by global training and appear in TealScript Help. For each output character or action, designate one standard entry.


Create alternate entries to define your own completely new ways of entering a character. Alternate strokes do not appear in TealScript Help, and will be turned off if the preferences item “Allow alternate strokes” in unchecked.


Create distorted entries to handle occasions when an entered text stroke is still visually recognizable, but is too sloppy or otherwise varies too much from the standard shape for TealScript to recognize it. Distorted entries are unaffected by the global training operation accessible from the main screen.


Set a squelch value to de-emphasize the current entry, forcing the recognition system to bypass this entry as a match if there is another stroke entry that mathematically matches nearly as well.

The squelch value adds a multiplier when calculating the “match difference” used to evaluate how closely each stroke entry matches one that was entered. A higher squelch value makes the match values look worse than it really is, de-emphasizing the stroke overall.

This value can compensate for the fact that simpler strokes with few angles are generally easier to enter and match than more complex ones. Without it, simpler characters would tend to come up more often as incorrect matches. Though not often used, you can keep a stroke from being falsely detected by increasing the squelch value. Use care when setting this value, however, as too high a squelch will make a stroke unrecognizable.


Set a cutoff value to define a "minimum match" percentage for a stroke. When TealScript compares an entered stroke to an entry, it generates a "percentage-match" value indicating how similar the two strokes are. This value can be seen in the Recognition Test screen. If a cutoff value is set, the "percentage-match" value must exceed the cutoff value, or that profile entry will not be considered a match even if no other entry matches nearly as well.

In practice, using a cutoff value has proven generally more effective in preventing a particular entry from being falsely detected than the squelch value. Cutoff values are commonly used when creating distorted entries which are similar in shape to other letters. Setting a high cutoff keeps the entry from interfering with other entries (reducing false hits), but lets the entry handle cases in which the entered stroke closely matches that entry.

Entry Areas

Active in Alpha Area

When checked, this stroke is valid entered in the alpha entry area on the left side of the graffiti area. Set this checkmark for letters and symbols.

Active in Number Area

When checked, this stroke is valid entered in the numeric entry area on the right side of the graffiti area. Set this checkmark for number.

HINT: To turn off a stroke entry entirely without deleting it, simply uncheck both the Number and Alpha area checkboxes.

Shift Modes

Normal Mode

Indicates that this entry is valid when no shift modes active

Punctuation Mode

Indicates that this stroke is valid when the punctuation shift is on

Symbol Mode

Indicates that this stroke is valid when symbol shift is on

NOTE: At least one of the three above options must be set for a stroke to do anything.

Sending ASCII Keys

Set a key action to ASCII (at the bottom of the Key(s) list) to define a character by numerical code value if it doesn’t appear in the list of standard characters.

You can use the ASCII entry to create strokes for special characters in the Palm font set not generally supported by graffiti, like the 1/4 fraction symbol, or for European characters, with umlauts and such.

HINT: The FontViewer app (available from palmgear.com) can be useful in identifying these characters and their corresponding ASCII code numbers.

Sending Key Macros

You can enter multiple keystrokes (up to 9 characters) and link them to a single graffiti stroke using the "macro..." key choice when creating a new stroke. This can be a much quicker way to enter common words than the standard Graffiti shortcut mechanism.

The default profile has a few example strokes for multiple-key macros. For instance, drawing a clockwise triangle starting in the lower left corner will create the word "and". The word "for" is linked to a clockwise triangle starting in the upper left.

These are just examples. With a little creativity, you can create your own strokes for the words you use the most.

Sending System Macros

Macro strokes also support the special character codes below. Insert these codes into a macro to emulate a system button press or special stroke or action:

%L Left arrow – moves text cursor one character to the left

%R Right arrow – moves text cursor one character to the right

%P Previous field – moves text cursor to previous text field (if supported)

%N Next field – moves text cursor to next text field (if supported)

%U Scroll Up – simulates press of scroll up button

%D Scroll Down – simulates press of scroll down button

%^ Top of text – moves to start of current text field.

This code must be at start of the macro. New in 3.86

%$ Bottom of text – moves to end of current text field.

This code must be at start of the macro. New in 3.86

%< Start of line – moves to the start of the current line (after hard line break).

This code must be at start of the macro. New in 3.86

%> End of line – moves to the end of the current line (before next hard line break). This code must be at start of the macro. New in 3.86

%C Command – simulates menu command stroke

%A Apps – simulates press of app launcher silkscreen button

%M Menu – simulates press of menu silkscreen button

%F Find – simulates press of find silkscreen button

%1 Button1 – simulates a press of the first application button

%2 Button2 – simulates a press of the second application button

%3 Button3 – simulates a press of the third application button

%4 Button4 – simulates a press of the fourth application button

%5 Button5 – simulates a press of the programmable silkscreen button (calc)

%B Backspace – backspace key

%E Enter – enter key

%T Tab – tab character

%H Hold – pauses text entry ½ second

%% Percent – enter a percentage symbol normally

%G TealGlance – popup TealGlance window (if installed)

%u Undo – undo text editing

%x Cut – cut selected text to clipboard

%c Copy – copy selected text to clipboard

%p Paste – paste text from clipboard

%s Select All – select all text in active text field

%k Keyboard – bring up text keyboard

%* Backlight – toggle backlight (if present)

%+ Brightness – adjust brightness (if applicable)

%- Contrast – adjust contrast (if applicable)

%l Lock and off – turn off and lock device

%g Graffiti help – show Graffiti(2) help

%t TealScript help – show TealScript help

Chapter 15 – Main Menu Items

The TealScript drop-down menu contains various useful functions for manipulating stroke profiles. These include:


Creates a new profile entry; either pre-filled with default profile stroke or empty


Renames the current profile


Deletes the current profile. If no other profiles exist, a standard profile will be created.


Brings up a dialog setting whether changes to the current profile will be backed up to the desktop during HotSync.

Snapshot stroke shapes

The stroke shapshot feature is used to save and restore changes to stroke shapes made during training. The initial shapes of all stroke entries are automatically backed up the first time a stroke is (re)trained. When selected, the current profile shapes are saved as “permanent” and are copied over the backed up versions, causing future “revert” operations to return to the current shapes. The stroke shapshot features does not save keys, cutoff values, or other parameters associated with stroke entries.

Revert to last shapshot

When selected, the “revert” option restores stroke shapes from their backed up versions, or to their initial shapes if no previous “snapshot” operation had been selected.

Chapter 16 – Improving Recognition

Tuning a stroke profile is really more of an art than a science. However, in most cases improving recognition accuracy involves two steps, identifying the cause of problems and modifying the profile to compensate for the problem.

Identifying Problems

The most useful place to diagnose errors is in the Test Recognition screen. Write the characters which you find problematical or are trying to test. When a recognition error occurs, look in the leftmost box to see exactly what the program is receiving from the screen hardware. It should resemble the stroke you were intending to make. Try to categorize the error in one of the following possibilities:

“It only somewhat looks like the letter I wanted. It somewhat resembles another letter too, or none at all.”

Solution: You can’t adjust the software to fix this type of problem, so adjust the person doing the writing instead. Slow down your handwriting. Be careful to write the characters smoothly and with enough pressure on the pen, keep care to be vertical, or using the slant compensation preference option to make your stroke vertical. Writing large often helps. Try using a program like TealEcho to let you see your pen stroke when you write.

“It looks like the letter I wanted, but differs slightly from the "standard" graffiti stroke in the profile and is representative of my handwriting. “

Solution: Retrain the entry in the profile in the edit screen to make it resemble your handwriting better. This commonly occurs with just a single letter. For some, the letter “Y” can be problematical because the end loop differs from the standard profile. Since most variations on the “Y” still don’t look like other letters, you can retrain the “Y” or add an alternate stroke for “Y” which won’t conflict with other letters.

“It looks mostly like the letter I wanted, but is somewhat distorted. It is not representative of my handwriting, but does not resemble another character. “

Solution: Try creating a “distort” entry in the test or statistics screen to handle this stroke the next time you enter it. If the letter represents occasional sloppiness but is still distinct from other letters, a “distort” can often be the fix.

“It looks more like the letter I wanted than the one that was detected, but it's somewhat similar to a "Distort" entry in the stroke profile for that other letter. “

Solution: Try raising the cutoff value for that "Distort" entry that's interfering to limit the range of operation for that entry.

“It looks the way I naturally write that letter, but it's not a standard graffiti stroke. “

Solution: You may be able to create a custom entry in the profile to handle the letter written that way. The stroke must be unique enough not to interfere with a similar stroke, however.

You can also identify and solve problems while using TealScript in your everyday writing. When you encounter a recognition error, stop as soon as you notice the error. If it's within the last 5 characters entered, run TealScript and go to the statistics screen. There, you can scroll though the last 5 strokes, see the entered stroke, and optionally create a new distort entry based on that stroke if it looks like a valid character.

More detailed instructions for the four basic profile tuning methods appear below.

Fixing Problems

A. Fixing mismatches due to sloppiness - Be nice to the digitizer

You can improve recognition using a few tricks to improve how the digitizing hardware reads in the pen positions.

Write large

The digitizer is more robust to pen jitter if the letters are written big in the graffiti area

Push down

The digitizer can be inaccurate if the pen is not held down hard enough on older devices. Press with a little pressure, as you would a ballpoint pen on paper. You may want to try a textured screen protector which adds some pen-like resistance to your pen strokes.

Keep the pen moving

If you stop the pen mid-stroke or move too slowly, jittery noise can be introduced into your pen stroke, confusing recognition.

See your writing

Use a program like TealEcho to see your graffiti "ink" as you write. This helps greatly in making sure you close your 'o's, cross your 'x's and otherwise make repeatable and recognizable letters.

Stay vertical

If you start to rotate your handheld and slant your writing, your graffiti stroke can start to resemble letters you don't want to write. Keep your writing vertical, or at least consistent.

B. Fixing mismatches due to handwriting style - Retrain Stroke Entry

If your graffiti for a single stroke is consistent, but the mismatch was simply due to a difference in style between your handwriting and the desired stroke in the profile, try retraining that entry to more closely reflect your own writing. Be sure that the stroke is still close enough to the standard stroke and is not too close to the stroke for another character, however. Do this by using the "retrain" option in the Edit Profile screen after finding the entry that best matches your own handwriting. If all of your writing is slightly different due to, say, left-handedness, you can use the global training option on the main screen to train whole groups of profile entries at a time.

C. Fixing mismatches due to slight sloppiness - Add a Distort Entry

Most of the time, mismatches occur because a quickly-entered stroke was misshapen just enough to make look too different from the reference stroke in the profile. Typical examples are stroke head or tails that are too long or too short, loops that are too big or too small, or characters that are angled one way or another.

In these cases, you never want to retrain the stroke entry, because the entered stroke is somewhat of an anomaly. For instance, if you have a tendency to sometimes make an incomplete 'S' character, you shouldn't retrain the system to recognize your 'S' as the only 'S', or you might make the system incapable of later recognizing a full complete 'S'.

Still, you want even an anomalous stroke to be recognized as the character was intended. As long as the anomalous stroke doesn't resemble another legitimate stroke, you can create a "distort" entry to handle that case in the future. In other words, following the above example, you want to create an entry that says that an incomplete 'S' is also an 'S', so that both versions will get recognized.

From the test screen, you can easily add a new stroke entry to cover a recently added stroke. Use the left and right arrows to find the stroke in question, and tap the "Add Entry" button to create a new entry with that stroke. When you encounter a recognition problem outside "TealScript", you can find and add an entry from within the Statistics Screen.

When making an entry alias, be sure to set the class to "Distort", so that training operations will ignore the stroke. Otherwise, repeated global training will tend to water-down the aliases for each character until they all look alike.

D. Fixing mismatches due to added distort entries - Set Cutoff Value

If an added distort stroke entry starts to interfere with other strokes, coming up when it shouldn't, you can give it a cutoff value to narrow the range of its effectiveness. Essentially, a high cutoff value tells the system to ignore the distort entry unless an entered stroke matches it very closely. Set the value just high enough to filter out invalid matches, but still low enough to matches entries when you want.

Theoretically, you can achieve near perfect recognition if you could create a huge number of distort entries to handle every possible variation, and simply set their cutoff values very high so that they'd never interfere with each other. In the real world, however, both recognition speed and memory use are adversely affected by having too many distort entries. So, while this approach is generally useful in improving recognition, use a little restraint when trying it.

E. Customizing graffiti with alternate strokes

Once you have good recognition happening, you may wish to add your own alternate strokes into the stroke profile for convenience and faster input. The default profile has some simple alternates such as a lower case 'e'. When adding alternates, make sure that they aren't too similar to existing graffiti strokes. For instance, a lower case 'n' may not be a good idea because many people's graffiti 'h' look too much like an 'n', particularly when they are writing quickly. When adding an alternate, it's a good idea to flag it as being in the "alternate" class, so even if it works for you, you can quickly turn it off temporarily in the main menu for someone else.

F. Automatic tuning

If you are a natural tinkerer, you may wish to try Automatic Tuning to change the profile in broad strokes to improve recognition. If you’ve made other changes, be careful to clone your profile first before experimenting.

Appendix A – How the matching system works

To do detailed profile tuning, it might be helpful to know how TealScript works.

When a stroke is entered into the graffiti area, it's returned from the operating system as a series of coordinates. TealScript takes these coordinates and mathematically compares them to each of the entries in the stroke profile, generating a mathematical "Match-Percentage" number for every entry in the stroke profile. The entry with the highest "Match Percentage" is returned as the best match.

If an entry has a squelch value set, then it's "Match-Percentage" is artificially tweaked downward to de-emphasize the entry. This makes the entry come up less often when an entered stroke is not a clear match for any profile entry, but still keeps the entry in the running.

If an entry has a cutoff value then its 'Match-Percentage' has to exceed the cutoff, or it's set to zero before comparison with the other entries is made. Thus, the cutoff confines a profile entry to a very narrow range of effectiveness, while the squelch is a general, overall adjustment. This makes the latter useful for coarse tuning when creating a profile, and the former better for fine-tuning specific recognition problems.

In determining the Match Percentage value, several factors are used in weighing various criteria. While we can't provide a detailed explanation of these factors here, they can be modified via the Advanced Tuning menu. It is unlikely that adjusting the weighing factors will result in much improved recognition, but for curiosity's sake the factors are briefly described in the (i) information button on the Control screen, and you're welcome to experiment with them.

Appendix B – Advanced Tuning

The advanced tuning menu allows the manipulation of internal TealScript scaling values used in character recognition. This menu exists for experimentation and for confirming and undoing changes made using the Automatic Tuning feature (below).

While manual manipulation of these values is possible, doing so is largely a matter of trial and error. Consequently, specific information about the meaning and use of each parameter is not available, and manipulation of the values is not an officially supported operation.

Appendix C – Automatic Tuning

Automatic Tuning is an extremely powerful advanced option that is useful when creating a new profile from scratch or making coarse adjustments to an existing profile.

Automatic Tuning uses a genetic algorithm to tune a stroke profile’s settings and entries by brute force to match a large database of user-entered sample strokes. When running, the program makes numerous random changes to a given profile’s entries and the TealScript’s advanced tuning values, keeping only those which improve recognition when measured against the sample stroke database.

WARNING: this feature should only be used if you are comfortable with manual editing of profile databases, as some manual inspection and editing is almost always needed afterwards. When trying automatic tuning, use the “clone profile” feature to back up any changes to the current profile, as the “snapshot” feature only backs up stroke shapes, not other changes automatic tuning can make. Also, if you have manually changed any automatic tuning values, make a note of the current settings, as they too can be changed.

Step 1 - Entering sample strokes

The first step in automatic tuning is to build a large database of sample strokes which will be used to tune the current profile. Do this by tapping the “Add Alpha” or “Add Nums” button to begin adding strokes using the same process as manual training.

The goal is to create a database which is representative of all individuals who might use the handheld, and which contains any variation on a letter which might be entered and still expected to be recognized. Thus, enter strokes carefully but representative of how you would normally write. If another person uses the handheld, have them enter strokes as well. If letters are sometimes entered using alternate strokes, be sure to include these as well. When done, there should be at least 500 letters and 200 numbers. The default TealScript database was created with about 2000 letters and 600 numbers, but the “optimal” number (if it exists) may be different.

Step 2 - Removing mistakes

After entering the sample strokes, the next step is to remove any strokes which should not be recognized because they were too sloppily entered or are simply incorrect. Leaving in strokes which actually look more like other characters would unbalance the tuning, modifying the database so that when you are really trying to enter those other characters, you’d get the mistaken entry instead. The system will scan through all the strokes in the sample database and bring up the Remove Mistakes screen, where you can scroll through all the entries and delete ones which aren’t representative strokes.

Step 3 – Set AutoTune Options

The AutoTune Options allows you select which actions the genetic algorithm will use.

Change tuning values

Tries new values for the advanced tuning values

Merge distort strokes

Alters existing “distort” entries to better match unmatched entries in the sample database

Replace distort strokes

Replaces existing “distort” entries with unmatched strokes

Create new distort strokes

Creates new entries in the database based on unmatched strokes

Delete unused distort strokes

Removes “distort” entries which don’t help recognition

Modify squelch values

Changes the squelch value of existing distort entries

Modify cutoff values

Changes the cutoff value of existing distort entries

Limit max entries

If adding entries, stops if specified limit is reached

When selecting AutoTune options, there is no single correct process to follow, but here are a few guidelines we found during use which may help:

· When AutoTuning the default profile, we changed advanced tuning values first, and then came back in a second pass to allow adjustment of the other settings after advanced tuning seemed to stabilize.

· Left on its own, the engine could always achieve 100% numerical accuracy by simply adding “distort” strokes for all entries in the sample database, and yet this would not necessarily be representative of new strokes which were in-between ones in the sample database. Thus, it’s useful to add new strokes only if the total limit is capped to a reasonable limit.

· Removing distort strokes can also remove useful strokes if the sample database is not completely representative of the possible strokes entered during use. Yet, it’s still useful in culling out confusing or redundant distort entries.
If used, some manual distort entries will likely need to be added after some manual testing after Automatic Tuning.

Step 4 – Evolve profile

Once started, automatic tuning will run in a continuous loop, continually evolving the profile to improve recognition. Displayed are the total number of recognized and unrecognized strokes in the sample database, as well as the current change (mutation) which is being tried and the ones that have been successful.

NOTE: Tuning will continue until you tap and hold on the screen to stop the process. Tuning can take many hours, so you may wish to leave the device running on a cradle overnight. Automatic shutoff is disabled while automatic tuning is in progress.

Step 5 – Manually fix-up entries

When complete, Automatic Tuning will inevitably require some manual adjustment to the stroke profile. Most of these changes will involve multi-stroke characters. As the system does not always know which strokes in the sample database were supposed to be single strokes and which were intended to be the last stroke of multi-stroke characters, some stroke entries may need to be multi-stroke key actions added or removed.

In addition, as mentioned earlier, extra distort entries may need to be added for variations which just did not happen to get used when generating the sample stroke database.

Step 6 – Clean up files

When done, you may wish to re-enter the AutoTune screen and use the “Del All” button to delete the sample stroke database (named “TS AutoTune Strokes.PDB”) to free the memory it uses.

If you decide to discard the changes made with AutoTuning, you can create a new profile or use a cloned version of the old one if you created one. Remember to restore the advanced tuning parameters too, however, if you don’t want to keep those changes either.

Appendix D – Frequently-Asked Questions

As we cannot control the style and robustness of other products, we cannot guarantee compatibility with PalmOS applications beyond those included from Palm Computing. However, we try to resolve compatibility issues as best we can.

I only want to use Graffiti 1 strokes. How do I turn off multi-stroke characters like 'T'?

Set the multi-stroke timing in preferences to "disable" to turn off all multi-stroke characters at once. If you only want to disable certain combinations, you can edit them in the stroke profile. If the second stroke of the sequence you want to disable would normally generate its own character, look it up by this letter. For instance, the second horizontal stroke in a 'T' normally generates a space, so edit all space entries to disable a 2-stroke 'T'.

When use the "Write anywhere" feature, it sometimes doesn't work. I only sometimes get "ink".

When you tap on the screen, it can either be recognized as a text-entry stroke or used to activate buttons and other controls. TealScript differentiates between the two by seeing if the stroke follows a previous character and if the pen is moving when it hits the screen or if it stays briefly in one place. Knowing this, you can usually improve results by making sure the pen is moving when it hits the screen to be recognized as a character, and pause in one spot briefly, if necessary, to force recognition as a screen/control tap.

You can also use the "write anywhere prefs" menu in TealScript to fine-tune how the program differentiates between a screen tap and a graffiti stroke.

I can't enter punctuation characters in full screen "write anywhere" mode.

When you tap on the screen, it can either be recognized as a text-entry stroke or used to activate buttons and other controls. TealScript differentiates between the two by seeing if the stroke follows a previous character and if the pen is moving when it hits the screen or if it stays briefly in one place. When the pen is quickly tapped on the screen (as in a punctuation shift), the behavior can be changed in TealScript preferences. Under the "Write anywhere prefs" menu, if you have the "off on quick taps" option set, a quick tap of the screen not following another stroke gets interpreted as a pen tap instead of a punctuation shift. This option allows you use full screen writing without forcing you to hold the pen down to push buttons, drop menus, etc. When this option is on, and you need to *start* a sentence with a punctuation character, simply write a shift stroke before the screen tap. The tap will then closely follow a graffiti stroke and will not be interpreted as a screen tap or button press.

Every once in awhile, I get a whole word like "and" or "the" when I write. What is causing this?

There is a sample macro in the default profile which writes "and" if you draw an equilateral clockwise triangle from the lower left. Another macro generates "the" if you do a stroke which combines a one-stroke "T" with an "H". You can delete these entries by going to the edit profile screen and removing either or both macro shortcuts if you don't want to use them.


I've upgraded from the older version, but I'm not seeing the new strokes or improved recognition.

The improved tuning and new strokes are reflected in the new default profile which is imbedded into the program. While you can still use your old profile with the new engine, we recommend you do so only if you have made extensive changes you need to keep or have made a custom profile from scratch to support a unique language or stroke set of your own design. For normal text entry using Graffiti-style strokes, we recommend using the new default profile which has been specifically tuned to work with the new engine. With TealScript 3.0 or higher, you'll be given a choice of an "empty" or "default" profile when creating a new one. You should choose "default" and make sure it is selected as the active profile before continuing.

I can't get any characters to be recognized.

Make sure your current profile is not empty. If so, create a new default profile from the drop down menu and choose 'standard' for the type of profile.

I can't get autocaps to work.

Make sure you have "Enable Globally" check off in the TealScript's main screen. Also, if you were running MiddleCapsHack, turn that program off. You may have to do a soft reset as well to completely unhook it.

TealScript crashes when running certain hacks.

TealScript is known to be incompatible with CorrectHack and perhaps SelectHack on OS4 or earlier. With other hacks running PalmOS 4 or earlier, you may need to use TrapWeaver to run hacks which patch directly into the Graffiti text routines.

I can't get the full screen "write anywhere" option to work on my Treo/OS4 handheld.

This option is only available on devices running PalmOS 5 and higher (like the Treo 600), due to support and technical compatibility concerns. We have no plans at this time to implement full screen writing on older devices.

The "Write anywhere" seems to work, but I can't get any custom or Graffiti 1 strokes to be recognized.

If you are running on a handheld with Graffiti 2 - installed, you must turn off Graffiti 2's own "write anywhere" functionality. You can find this option in the "writing area" item under Preferences. You can tell if TealScript is responding to the full screen stroke because the drawing "ink" for TealScript is noticeably different from Graffiti 2's.

If this does not help, also try turning off any keyboard drivers you may be running. It has been reported that driver for the KB11 interferes with TealScript.

Can I program TealScript to understand two-taps in the number area as an umlaut (diaeres) shift for entering "ö", "ü", and "ä" characters like Graffiti 2?

To do so, you must Edit Stroke Entries, unchecking the "number" checkbox for the entry for the period (.) stroke. Then create a new "Diaeres" entry, checking the "Number area" and "Punctuation Mode" boxes only and training it as a single tap. You can also create a unique new stroke to enter a whole diaeres-shifted character (like "ä") as a single ASCII or macro stroke.

I cannot get Graffiti shift modes to work on my CLIE.

Turn off MinikeyE, the driver for the mini thumb keyboard, if you have it, as it resets the PalmOS system shift modes when operating.

Appendix E – Revision History

Version 3.94 – January 15, 2008

· Added option to turn on/off filtering of initial pen bounces

Version 3.93 – November 19, 2007

· Improved recognition to reject false punctuation shifts entered by bouncing stylus at start of stroke

Version 3.92 – October 24, 2007

· Updated TealScript not to save stroke history in TealLock or system Security lock screen

Version 3.91 – January 23, 2007

· Updated so TealScript doesn't relaunch itself after a reset if global recognition is off

· Improved stroke calculation to apply squelch factor even to perfect stroke matches (single taps)

Version 3.90 - June 25, 2006

· Fixed menu selection with 5-way nav on Treo 700p

Version 3.89 - June 13, 2006

· Fixed push-to-write mode from activating alert manager or underlying application (broken in 3.88)

Version 3.88 - June 14, 2006

· Improved graffiti shift drawing to better reflect auto-shifting on Treos

· Improved automatic relaunching after reset to run even after automatic locking/unlocking by TealLock

· Improved up-stroke mapping to pay attention to "Beep on activation change" setting when mapped to "write anywhere"

Version 3.86 - May 16, 2006

· Added new "up stroke" option to easily change current profile database from within any other program

· Added new 'Bottom of field' macro stroke code (%$) - for use at start of macro only

· Added new 'End of hard-broken line' macro stroke code (%>) - for use at start of macro only

· Added new 'Start of hard-broken line' macro stroke code (%<) - for use at start of macro only

· Added new 'Top of field' macro stroke code (%^) - for use at start of macro only

· Improved "up stroke" recognition to not interfere with TealTools strokes

· Improved restart sequence after soft reset to occur automatically without waiting for user to switch apps

· Fixed 'Lock and Off' up-stroke mapping to return to current app when TealLock is running

Version 3.83 – November 7, 2005

· Added support for 'Write-Anywhere' status bar icon on TX and LifeDrive devices

· Added updating of 'Write-Anywhere' status bar icon to reflect TealScript 'Write-Anywhere' state

· Added new 'if crossing border' autocaps mode

· Fixed leftover frame graphics from 'updating' popup status window

· Fixed multistroke characters to ignore non-overlapping strokes

· Fixed support for multistroke macro strokes

Version 3.82 - September 15, 2005

· Added prefs screen for editing Graffiti Shortcuts (for Treo650, which doesn't have one in System Preferences)

· Added optimizations for better 5-way navigation ordering

· Added lockout of 5-way direction arrows after starting writing in push-to-write mode

· Improved write-anywhere mode to catch initial pen-down point even when cpu is occupied during start of stroke

· Improved compatibility of push-to-write mode with third-party party apps

· Improved look of popup message windows when updating profile or reinstalling after reset

· Updated default initial profile to deemphasize sample "and", "for" and "the" macro strokes

· Updated TealScript default settings for write-anywhere auto-detect mode to lean more towards normal screen taps

· Fixed detection of alpha/num/caps areas when using "auto-caps if starting" mode

Version 3.76 – July 20, 2005

· Added new “push to write” mode, enabling write-anywhere screen writing by holding down 5-way control when writing on screen

· Added option to draw alpha/number border line(s) when using write-anywhere mode ·

· Added support for keyboard shift indicator on Treo 650

· Added new alternate graffiti orientations and layouts for left-handed use

· Added 'Edit Match' button in test screen to jump to a matched stroke

Appendix F – Contact Info

TealScript by TealPoint Software

©1998-2008 All Rights Reserved.

TealPoint Software - TealScript

454 Las Gallinas Ave #318

San Rafael, CA 94903-3618

We look forward to hearing from you.

Please visit us at www.tealpoint.com, or email us at support@tealpoint.com.

Appendix G – Registering

Registering allows you to use the program past the 30 day expiration period and turns off registration reminders.

Currently, you may register by snail mail or online with a credit card and a secured server from the store where you downloaded the software. For the first option, send the following information on a sheet of paper separate from your payment.

· Product Name

· E-Mail Address

· HotSync User ID (Pilot Name Required for Passkey generation. It can be found on the main screen of the HotSync application on the Pilot as "Welcome ________" or in the corner on a PalmIII or higher)

· Check (drawn off a US Bank) or Money Order for ($29.95 US). No international checks or money orders please.

Appendix H – Products

Products Visit us online for our complete product line, including:

SHORTCIRCUIT ( http://www.tealpoint.com/softshrt.htm )
A new twist on gameplay fused from your all time action puzzle favorite games, connect falling conduit pieces into explosive loops in this frantic race against the clock.

SUDOKUADDICT ( http://www.tealpoint.com/softsudo.htm )
Sudoku Addict brings to your handheld the addictive worldwide puzzle craze that has displaced crossword puzzles in many newspapers in Great Britain and Japan.

TEALAGENT ( http://www.tealpoint.com/softagnt.htm )
Get news, movie times, stock quotes, driving directions, web pages and more without need for a wireless connection. TealAgent fetches and formats web-based content for offline viewing.

TEALALIAS ( http://www.tealpoint.com/softalia.htm )
Free up memory and make the most of external expansion cards. Placeholder 'Alias' shortcut files automatically find, load, and launch apps and data from external SD cards, increasing free main memory.

TEALAUTO ( http://www.tealpoint.com/softauto.htm )
Track and graph automobile mileage, service, and expenses with TealAuto, the complete log book for your car or any vehicle. Extensive customization options and unmatched in features and functionality.

TEALBACKUP ( http://www.tealpoint.com/softback.htm )
Backup your valuable data with TealBackup, supporting manual and automatic backups to SD/MMC/CF cards and Memory Stick, backups through HotSync, and optional compression and encryption.

TEALDESKTOP ( http://www.tealpoint.com/softdesk.htm )
Launch applications with TealDesktop, the themed replacement for the standard system launcher screen with tabs, multiple card folders, drag and drop, and more

TEALDIET ( http://www.tealpoint.com/softdiet.htm )
Shape up your life with TealDiet, the diet, exercise, and personal tracking application for mobile devices. Lose weight, build more muscle, and live healthier with TealDiet.

TEALDOC ( http://www.tealpoint.com/softdoc.htm )
Read, edit, and browse documents, Doc files, eBooks and text files with TealDoc, the enhanced doc reader. Extensive display and customization options; TealDoc is unmatched in features and usability.

TEALECHO ( http://www.tealpoint.com/softecho.htm )
Improve your Graffiti text input speed and accuracy, seeing what you write with TealEcho digital "ink". No more writing blind!

TEALGLANCE ( http://www.tealpoint.com/softglnc.htm )
See the time, date, upcoming appointments and todo items at power-up with TealGlance. The TealGlance pop-up utility and key guard comes up when you power up, letting you see your day "at a glance."

TEALINFO ( http://www.tealpoint.com/softinfo.htm )
Lookup postal rates, area codes, tip tables, schedules, airports, and info from hundreds of free TealInfo databases. Create you own mini-apps; a handheld reference library.

TEALLAUNCH ( http://www.tealpoint.com/softlnch.htm )
Launch applications instantly with the TealLaunch pop-up launcher and button/stroke-mapping utility. Map applications to button presses and pen swipes so you can get to your apps quickly.

TEALLOCK ( http://www.tealpoint.com/softlock.htm )
Secure and protect your handheld with TealLock, the automatic locking program with encryption and card support. TealLock has unmatched features and customization options for personal or corporate use.

TEALMAGNIFY ( http://www.tealpoint.com/softlens.htm )
Save your eyesight with TealMagnify, an ever-ready magnifying glass that works with most any program. TealMagnify lets you enlarge the screen for those times the text is too small to read.

TEALMASTER ( http://www.tealpoint.com/softmstr.htm )
Replace Hackmaster with TealMaster, the supercharged 100%-compatible system extensions manager. TealMaster adds enhanced stability, configuration and diagnostic features and PalmOS 5.0 hack emulation.

TEALMEAL ( http://www.tealpoint.com/softmeal.htm )
Save and recall your favorite restaurants with TealMeal, the personal restaurant database. With TealMeal's handy sorting and selection options, never ask "where to eat" again.

TEALMEMBRAIN ( http://www.tealpoint.com/softmemb.htm )
Stop crashes and monitor your memory use with TealMemBrain, the application stack stabilizer. TealMemBrain boosts your stack space on OS3 and OS4 handhelds, eliminating causes of system instability.

TEALMOVER ( http://www.tealpoint.com/softmovr.htm )
Beam, delete, rename, and copy files with TealMover, the file management utility for SD/CF/MS cards. TealMover lets you see, move, modify, hex edit, and delete individual files.

TEALMOVIE ( http://www.tealpoint.com/softmovi.htm )
Play and convert high-quality video and synchronized sound with the TealMovie multimedia system. TealMovie includes a handheld audio/movie player and a Windows AVI/MPEG/Quicktime converter program.

TEALNOTES ( http://www.tealpoint.com/softnote.htm )
Insert freehand graphics anywhere with TealNotes "sticky notes" for Palm OS. TealNotes can be inserted into memos, to-do lists, address book entries--almost anywhere you currently have editable text.

TEALPAINT ( http://www.tealpoint.com/softpnt.htm )
Paint, sketch, or draw with TealPaint, the all-in-one mobile graphics paint program and photo editor. Highlights include 25 tools, 32 patterns, 49 brushes, zoom, layers, undo, & JPEG/GIF/BMP support.

TEALPHONE ( http://www.tealpoint.com/softphon.htm )
Supercharge the address book with TealPhone, the contacts replacement with superior interface and options. Highlights include enhanced display, search, phone-dialing, groups, and linking.

TEALPRINT ( http://www.tealpoint.com/softprnt.htm )
Print text and graphics to IR, serial, and Windows printers with TealPrint. With numerous connection options, TealPrint, is the all-in-one text and graphic printing solution.

TEALSAFE ( http://www.tealpoint.com/softsafe.htm )
Store your passwords, credit cards, PIN numbers, and bank accounts in the TealSafe data wallet. With maximum security and encryption, TealSafe is a must for features and security.

TEALSCRIPT ( http://www.tealpoint.com/softscrp.htm )
TealScript adds Graffiti text input to Treo and Centro smart phones. For devices that already support Graffiti, TealScript adds a trainable system that supports both multi-stroke and Graffiti-1.

TEALTRACKER ( http://www.tealpoint.com/softtrac.htm )
Track time and expenses with a fast, easy to use interface that requires minimal effort. Generate reports and export data to a spreadsheet. TealTracker is your personal time clock.

TEALTOOLS ( http://www.tealpoint.com/softtool.htm )
Improve productivity with TealTools pop-up Palm Desk Accessories. TealTools includes a popup calculator, clock/stopwatch, preferences panel, editing panel, memopad, and a file/backup manager.

Appendix I – Legal Notice

We at TealPoint Software are committed to providing quality, easy-to-use software. However, this product is provided without warranty and the user accepts full responsibility for any damages, consequential or otherwise, resulting from its use.

This archive is freely redistributable, provided it is made available only in its complete, unmodified form with no additional files and for noncommercial purposes only. Any other use must have prior written authorization from TealPoint Software.

Unauthorized commercial use includes, but is not limited to:

§ A product for sale.

§ Accompanying a product for sale.

§ Accompanying a magazine, book or other publication for sale.

§ Distribution with "Media", "Copying" or other incidental costs.

§ Available for download with access or download fees.

This program may be used on a trial basis for 30 days. The program will continue to function afterwards. However, if after this time you wish to continue using it, please register with us for the nominal fee listed in the program.

If you do choose to register with us and are using ReScript, please also register TealMaster with if you have not already done so.

Thank you.



1. License. You are authorized to use the Software Product owned and developed by TealPoint Software, Inc. on a single hand-held computing device on a trial basis for thirty (30) days. If after 30 days you wish to continue using it, you are required to register with TealPoint and pay the specified fee. This license is not exclusive and may not be transferred. You may make one copy of the Software for back-up and archival purposes only.

2. Ownership. You acknowledge that the Software Product is the exclusive property of TealPoint Software, Inc, which owns all copyright, trade secret, patent and other proprietary rights in the Software Product.

3. Restrictions. You may NOT: (a) decompile or reverse engineer the Software Product; (b) copy (except as provided in 1 above) sell, distribute or commercially exploit the Software product; or (c) transfer, assign or sublicense this license.


5. Termination. You may terminate this Agreement at any time by destroying your copy(ies) of the Software Product. The Agreement will also terminate if you do not comply with any of its terms and conditions, at which time you are required to destroy your copy(ies) of the Software Product and cease all use.

6. Applicable Law. This Agreement is governed by the laws of the State of California.