TealMaster User's Manual
Program Version 2.40
Last Updated: February 23, 2005
Chapter 1 – Overview
Chapter 2 – Using the Program
How hacks work
An Issue of Priority
Show Active Patches
Activation after Reset
PalmOS 5.0 Emulation
Chapter 3 – Hacks
Where do I get Hacks?
Chapter 4 – Troubleshooting
PalmOS 5.0 Emulation
Appendix A – External Calling Mechanism
Appendix B – Revision History
Appendix C – Contact Info
Appendix D – Registering
Appendix E – Products
Appendix F – Legal Notice
TealMaster is a Hackmaster-compatible system extensions manager. It provides a standard way to safely enhance the functionality of the Palm through third-party add-on system extensions, commonly called “hacks”, and the only way to run selected hacks under PalmOS 5.0 and higher and the new PalmOS handhelds based on ARM processors.
This archive contains the following files:
TEALMSTR.PRC The "TealMaster" program file
SETUP.EXE Easy installer program (Windows only)
MSTRDOC.PDF This manual in Adobe PDF format
MSTRDOC.HTM This manual in HTML format
MSTRDOC.PRC This manual in TealDoc Palm-readable format
REGISTER.TXT TealPoint Registration form in text format
REGISTER.HTM TealPoint Registration form in HTML format
Use the Palm install tool to install the program file TEALMSTR.PRC. The Palm install tool can be found as an icon on the left hand side of the Palm Desktop program on the desktop PC.
In order to be useful, you’ll also need to install some system extensions, commonly called “Hacks”. A number of these are available on the TealPoint Software web site, including TealMagnify, TealGlance, TealNotes, and TealEcho. Dozens of other shareware or free hacks are available online at Palm archive sites like PalmGear HQ.
If you have an external SD/MMC or similar expansion card capability, please note that TealMaster and system extensions must all be installed directly to main handheld memory and not to external expansion cards which might be removed.
You may also optionally install MSTRDOC.PRC, which is this manual in Palm-readable format, which can be read on the handheld with our program TealDoc.
On a Windows PC: you can also alternatively use quick setup installer by double clicking on the SETUP.EXE installer program, and following the on screen prompts.
Important note: Before updating or deleting any system extension loaded into TealMaster, be sure to uncheck the extension first in the TealMaster control screen, or your Palm will likely crash. If you are running another system extensions manager such as Hackmaster, you MUST first turn off all hacks in that other program as well before running TealMaster. Lastly, before updating or deleting the TealMaster program itself, you must turn off the “Protect from delete” option in TealMaster’s preferences screen, “Profile switching”, and all hacks, as they will keep the program from being overwritten or deleted.
TealMaster provides a standard interface to manage and run Palm system extensions, called “hacks”. These extensions provide special functionality not possible with a standard Palm app, such as adding additional fonts, providing pop-up tools, enhancing the find mechanism, extending the text entry keyboard, replacing the system sounds, or adding basic program multitasking, something not supported by the PalmOS.
The PalmOS operating system provides a standard, easy-to-use interface and well thought-out programming framework for applications. Soon after its premiere on the original 128k Pilot organizer, however, ingenious developers started to see a need to enhance the system’s functionality beyond its original design. Most operating systems provide ways to safely extend functionality while offering a central interface for configuration and minimizing the possibility of conflicts. The Palm OS, however, does not.
In 1996, Edward Keyes saw this need and designed the hack extension mechanism for his program Hackmaster, the first system extensions manager for the Palm OS. It provided a standard way to write OS-enhancing programs that don’t accidentally turn each other off, a common activation interface, and centralized configuration panels.
TealMaster improves on the original extensions manager, adding additional device compatibility, improved stability, extra configuration options, automatic activation, and new status and debug information tools.
With TealMaster 2.0’s exclusive “PalmOS 5.0 trap emulation”, many hacks can also be run on the new handhelds based on ARM processors, a feature available nowhere else.
After installing TealMaster and the Hacks you want to run, start TealMaster by tapping on its icon on the Palm applications launcher screen.
An alphabetical list of installed hacks will appear, as well as their size, priority, and active state.
To the left of each Hack’s name is a checkbox indicating whether the current hack is currently activated, and a number indicating the Hack’s current priority. The priority can be set to a value ranging from 1 (highest priority) to 5 (lowest priority), and determines the order in which competing hacks are hooked into operating system functions. See the next section of this document to see how priority can be used to tune hack performance.
To the right of each name are two buttons. Tapping the “?” (question mark) button brings up an “about” window put up by the hack. The “+” (plus) button, if present, brings up the configuration and control panel specific to the hack.
At the top right corner of the screen is the profile selector, which can take two forms. In it’s first form, it appears as six pushbuttons, marked Off, A, B, C, D, and E. In its second form, it appears as a drop-down list similar to the one used to choose categories, and also contains six entries in addition to one used to change the names of profiles.
The entries represent the one inactive and five active pages of settings “snapshots” which can independently adjusted and saved. On each page, you can select which hacks are activated and what their priorities are. The profile pages let you save different settings combinations you can quickly swap between for different activities, say, normal use and playing games. When the “disable” (off) profile is selected, all hacks are turned off. Before any hacks can be activated, an alternate active profile must be selected.
At the bottom of the screen are three pushbuttons: Info, Del, and Beam. Selecting these determines what happens when one taps on the name of a hack. “Del” deactivates and deletes the hack, and “Info” brings up standard information about the hack, including its full name, version, and which system functions it extends. “Beam” can be used to beam the selected hack to another handheld via IR link.
Lastly, to the right of the two selectors are Reset, All On, and All Off buttons, which can be used to soft reset the Palm or easily activate or deactivate all hacks at once.
PalmOS provides approximately 1000 system functions, or traps where applications can call the OS to ask for a service or implement a particular task, such as writing text to the screen or allocating memory. Hacks extend the OS by capturing, or patching, the entry point of a function, so when the current application calls the OS function, it calls the hack instead. Some hacks replace one or more OS functions entirely, while others only use the function simply as a way of starting their own code, calling the original function so it maintains its original behavior.
For instance, FindHack replaces the system Find command, so when you press on the silkscreened “Find” button you get FindHack’s window instead of the standard system find window. Popup programs are examples of the second type of system patch. Many of these patch the SysHandleEvent function, which applications use to see if the screen has been tapped, a button pressed, or other events have occurred. By patching this function and then calling the standard OS function most of the time, hacks can monitor events as they occur and do nothing most of the time but popup up their windows when a specific button or pen stroke is detected.
When multiple hacks want to patch the same function, they typically chain together in a list, which each hack passing on the original call to the next hack when it is done. Sometimes, the order in which the hacks are chained will alter how they behave. For instance, if two hacks both patch SysHandleEvent waiting for the same pen stroke, the one which is earlier in the chain will see the stroke first, and may not pass on the stroke to the second hack if it does.
In these cases, you can often manually manipulate the order in which the hacks respond by setting the relative priorities of the hacks. Higher priority hacks (with a lower number) will be linked earlier in the chain and will thus be activated first. This will not be effective, however, when the hacks patch different system functions to perform similar tasks.
This issue is even more important when a hack, by design, does not pass on the original function call because they entirely replace the standard system trap. In these cases, the hack must always be linked last in the list of patches for that function, as other hacks patching that function will not otherwise get called.
Advanced note: Sometimes, when two hacks are patching the same trap, the hack with the lower priority will actually activate sooner rather than later. This can occasionally occur if the hacks are written internally to activate after they’ve chained to the next hack in the list. When this is the case, the hack later in the chain will actually activate first, because it will be able to perform its functions while the hack which called it is still waiting for it to return and relinquish control of the CPU. When this occurs, reverse the priorities to achieve the desired results.
The Preferences Menu brings up a dialog screen that lets you set various options.
If hacks are active when a system reset is executed, TealMaster will bring up a dialog box allowing you to reactivate those hacks. With the auto-activate delay, you can automatically reactivate after a specified number of seconds of inactivity.
Add version numbers in list
If set, this option adds version numbers next to the displayed hack names on the list of hacks.
Show profile selector as pop list
If this option is set, the profile selector is shown as a popup list of named profiles. If unchecked, profiles are selected by tapping on one of six pushbuttons.
The “protect hacks” option keeps someone from accidentally deleting an active hack from outside TealMaster or installing a newer version of the hack while the old version is still running. When active, note that TealMaster is itself protected, so that it cannot be deleted or overwritten with a newer version.
With profile mapping, the active profile can automatically be changed whenever you start a new application. To set it, choose the Profile Mapping item from TealMaster’s drop down menu.
Activate profile mapping by checking the activation checkbox at the top of the window. Note that when this option is set, delete-protection is also activated to keep TealMaster from being deleted or overwritten while it is still hooked into the operating system.
If the “Beep on profile change” option is set, TealMaster will beep twice quickly whenever the standard profile is automatically changed or restored due to profile mapping.
Any of the five profile pages can be mapped to an
application, or the “Hacks off” option can be set to turn off all hacks
when starting that app. With the “Default”
option, the active profile reverts to the last profile manually set within
TealMaster, while with the “No Change” option the current profile is
left unchanged from its value in the previous app.
Without both an intimate knowledge of the PalmOS and some knowledge of the inner workings of a hack, it’s often not be possible to diagnose an interaction between two hacks, but TealMaster provides some powerful tools to help diagnose possible problems and learn a little bit about the PalmOS in the process.
This menu shows a list of all OS functions patched by active hacks, sorted by system function number and hack link order. Next to each hack name is its priority number to help aide in resorting hacks by adjusting priority. Tapping on the Copy button will copy the screen text to the system clipboard, where it can be pasted into a MemoPad memo or other program, while the Print button will send the text to a printer if TealPrint is installed.
This menu shows a quick count of the hacks installed on your Palm and the functions they patch. Its most useful feature, however, is the ability to detect lost or stolen patches.
For various reasons, some programs such as security programs or hardware drivers patch system functions outside the hack standard. Sometimes, if written poorly, when they remove their patches, they can cut off active hacks from the functions they patch, leaving hacks inactive or malfunctioning. Incidentally, this is the type of interaction the hack mechanism was designed to prevent.
When this occurs, the Patch Analysis will show a stolen patch and the first hack in the chain to be cut off. In fact, if more than one hack patches the same OS function, then they are likely all cut off as well. When this occurs, it’s important to note that the system may be unstable, and no hacks should be enabled or disabled until the external program is identified and the stolen patch restored. As a last resort, a Palm can be reset using the pinhole in the back of the Palm, with no data loss if the conflicting program did no permanent damage.
When the Palm is reset either manually or due to a system crash, TealMaster brings up a dialog afterwards to reactivate whatever hacks were running prior to the reset. You may choose to reactivate the hacks or not, or alternately select the Choose option, which will leave the “Off” profile set, and thus all hacks off, but will launch TealMaster, where you can select a profile to activate and manually choose hacks. Lastly, if you have set an automatic reactivate time in TealMaster’s preferences, a countdown number will appear after a reset and the Reactivate option will automatically be selected if no button is tapped before time runs out.
Under PalmOS 5.0 and the newer ARM-based handhelds, the standard system trap-patching mechanism has been obsoleted, leaving a vast library of useful hacks unsupported and up to now, useless.
Instead, PalmSource has provided a new system-extension mechanism that can be used to implement much of the functionality currently used by simple hacks, but this is not compatible with the current hack standard.
TealMaster, however, uses the new mechanism to emulate the old one, enabling many hacks to run, even under OS 5.0 and the new devices. This functionality works with major classes of hacks, but only if those hacks use emulated functions and don't do things which are otherwise incompatible with the new operating system. Still, very many hacks fall into these categories, leaving much promise for the new compatibility mode.
The compatibility system works with hacks which patch any of seven common operating system functions. The “PalmOS 5.0 Emulation” menu can be used to select which of these traps are emulated.
Under OS5, the main hack list displays icons next to hacks which may not run because they use one or more non-emulated system traps. Hacks requiring exclusively non-emulated traps will definitely not run and will be marked by a red “X” icon.
Hacks which display a yellow triangle icon indicate that the hack uses a combination of emulated and unsupported traps, indicating that some or all features of the hack may not work properly. Some hacks may display the warning icon and still function perfectly well because they use additional traps solely for functionality needed on older devices.
The absence of an icon does not by itself indicate OS5 compatibility either, as the hack may have other problems associated with running under OS5, but is usually a good indicator that the hack can be made OS5-compatible if it is not already.
The first two functions, 'SysHandleEvent' and 'EvtGetEvent', are typically patched by some hacks to detect user-initiated events such as pen taps and button presses. This includes most launchers and pop-up utility hacks. TealMaster can simulate both function calls fairly well, though the emulation may be imperfect for hacks which rely on changing the system idle sleep time passed to ‘EvtGetEvent’ or hacks which patch ‘SysHandleEvent’ but manipulate how the data is passed to the system and underlying application.
TealMaster also supports emulation of the system function ‘SysUIAppSwitch’. This function is typically used by hacks to detect switching of applications, possibly to, say, password protect specified programs or activate or deactivate certain companion programs.
A number of hacks, such as TealMagnify, trap the PalmOS ‘Find’ function as a way of detecting a tap on the silkscreened “find” button. TealMaster can emulate this function to duplicate this behaviour. Note, however, that this is not enough to allow enhanced-search hacks such as “FindHack” to run, as they require replacement of other PalmOS functions not currently possible under PalmOS 5.0.
Graffiti Pen Strokes
While System Event functions can also be used, many hacks use ‘EvtProcessSoftKeyStroke’ to detect custom pen strokes in the silkscreened area, typically from a silkscreened button to the graffiti writing area or to another button. These are often used to open a pop-up window or set a background setting, and are emulated in TealMaster under PalmOS 5.0.
Other popular hacks utilize the PalmOS ‘SysKeyboardDialog‘ function to detect and replace the system pop-up keyboard. This emulation is supported in TealMaster under PalmOS 5.0 too.
A final function, ‘SysSleep’, is normally trapped by hacks to detect either turning on or turning off of the device. Under PalmOS 5.0, separate notifications are sent for turning on (waking) or turning off (sleeping) of the device, while hack running under older versions of PalmOS could do both at the same time.
TealMaster uses the new notification mechanism to simulate one action or the other, but cannot do both simultaneously due to the system differences. Thus, this emulation works well with hacks which need to detect either one action or the other, but both types of hacks typically cannot run simultaneously. Also, hacks which rely on code running both before turning off the unit and after turning it back on will encounter one limitation; the hack cannot correctly detect the length of time the unit has been asleep, and will always act as if the unit was turned on immediately after being turned off.
A few hacks use two alternate mechanisms ‘HwrDisplayWake’ and ‘HwrDisplaySleep’. These are similar to the newer mechanisms, and they are emulated too.
An amazing number of useful and entertaining hacks are currently available for low cost or free download. The best source for them major Palm software archives like PalmGear HQ (www.palmgear.com), or, of course, our site (www.tealpoint.com).
When deleting a hack, you must always first uncheck it to unhook it from the operating system and avoid a likely crash. If you use the delete mechanism in TealMaster instead of the Palm launcher delete menu, this will be done for you automatically. You must also disable a hack before HotSyncing a new version of that hack on top of the new one. The Protect Hacks option in TealMaster preferences can be used to prevent this accidental deletion from happening, and will protect TealMaster itself too.
TealMaster is a system extensions manager designed to manage other hack applications. As we cannot control the robustness of other products, we cannot guarantee or control their quality or stability, but we try to resolve or identify issues where we can.
In order for hacks to run properly under PalmOS 5.0, not only do the traps they need fall under those supported by emulation, but the hacks must also be compatible with the new screen and processor limitations and rules which come under PalmOS 5.0 and ARM processors. As hacks were previously impossible to run at all on the new devices, there was little point for developers to update their hacks to follow the new rules. Now that TealMaster makes it possible, however, hopefully these developers will update their hacks where necessary and possible.
While hacks are generally safe and reliable to use, crashes sometimes occur, but rarely with any serious consequences. By far the most common causes of crashes running hacks are due to conflicts between hacks and programs or between hacks and each other.
Tungsten T5 and Treo650
These new devices support the new PalmOS Non-Volative File System (NVFS) that allows your data to survive a total power loss of the device. This new file system brings with it some functional limitations as well as some bugs that require some programs to be updated for stability. For either of these devices, be sure to use TealMaster 2.37, which has been patched to fix stability problems after HotSync or heavy ram usage.
Usually, the problem is due to resource limitations in the PalmOS. PalmOS has no memory management between programs and hacks, and the current program and all active hacks must share common system resources, such as stack space, which is limited to 2 kilobytes in some versions of the Palm OS.
Programs and hacks, if well written, use the minimum system resources necessary to do their jobs. No matter how well written, however, there is a finite limit on how many and what combination of hacks may be simultaneously run. Hacks or programs that are particularly ambitious tend to use more system resources, as do programs written by companies unfamiliar with the Palm platform, many of whom do not take hacks into account as part of their testing or design.
Thus, if you run into a crash running a hack, the first thing to do is to turn off all other hacks and system-patching program to diagnose the problem. If it works, start turning on other hacks until the crash can be replicated and the maximum stable configuration is determined. If no alternative hacks can be located to alleviate the problem, you may need to make the difficult choice of running only certain combinations of hacks at a time.
First choose the Analyze Patches menu to determine if an external program has cut off the active hack. If so, check to see if an update of that program is available. For instance, the version 1.0 of the Palm Portable Keyboard driver was notorious for both slowing down the system and cutting off hacks, but this has been fixed in version 1.1, downloadable off the Palm web site.
If this does not work, try turning off all other hacks. If some of the hacks are competing for the same system functions, you may need to adjust the priority of the dead hack to bring it to the top of the patch chain. To aid in diagnosing this situation, use the Show Active Patches menu.
A few hacks have been written which interact directly with the Hackmaster program. These hacks explicitly look for Hackmaster by name, and some rely on Hackmaster’s particular workings beyond the system extensions standard interface. For example, some security hacks are written try keep someone from turning them off and expect the Hackmaster interface when doing so. In these cases, the hacks may not work properly with TealMaster until they are modified to expect TealMaster as well.
TealMaster supports custom launch codes for external application support. Launch codes exist to allow programs to query or change the current profile, or to query or set the active state or priority of a specific hack. For more information, check out the developer page at http://www.tealpoint.com/developr.htm for developer information, when available, or contact firstname.lastname@example.org.
Version 2.40 February 23, 2005
Version 2.38 November 16, 2005
Version 2.37 March 3, 2005
Version 2.36 February 22, 2005
Version 2.35 February 21, 2005
Version 2.22 October 15, 2004
Version 2.18 March 1. 2004
Version 2.16 July 29. 2003
Version 2.15 May 23. 2003
Version 2.11 May 13. 2003
Version 2.10 April 18. 2003
Version 2.01 November 11, 2002
Version 1.00 – January 26, 2001
TealMaster by TealPoint Software
©1999-2006 All Rights Reserved.
TealMaster for PalmOS
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 email@example.com.
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 ($9.95 US). No international checks or money orders please.
Visit us online for our complete product line, including:
TEALAGENT ( http://www.tealpoint.com/softagnt.htm )
A PC-based Palm data converter, installer, and web clipper which formats local, network, and web-resident data into standard Palm formats.
TEALALIAS ( http://www.tealpoint.com/softalia.htm )
Making the most of expansion memory, TealAlias creates placeholder alias files that automatically find, load, and launch apps and data from external SD cards, freeing precious main memory.
TEALAUTO ( http://www.tealpoint.com/softauto.htm )
The complete automobile mileage, service, and expense tracking program, TealAuto supports unmatched features and customization options.
TEALDOC ( http://www.tealpoint.com/softdoc.htm )
Powerful reader for Palm documents, e-books, and newspapers, supporting advanced features such as pictures, links, and flash cards.
TEALECHO ( http://www.tealpoint.com/softecho.htm )
Digital "ink" lets you see what you write, vastly increasing graffiti writing speed and accuracy. No more writing blind!
TEALGLANCE ( http://www.tealpoint.com/softglnc.htm )
Pop-up utility shows time, date, appointments and to-dos, and other useful information at power-up. See your day at a glance.
TEALINFO ( http://www.tealpoint.com/softinfo.htm )
A system for creating and displaying interactive databases, reference works, and mini-application folios; a handheld reference library.
TEALLAUNCH ( http://www.tealpoint.com/softlnch.htm )
A pop-up application launcher and mapping utility for launching apps and special functions from pen taps, graffiti strokes, or button presses.
TEALLOCK ( http://www.tealpoint.com/softlock.htm )
Secure automatic locking program with optional data encryption and numerous activation and customization options.
TEALMAGNIFY ( http://www.tealpoint.com/softlens.htm )
An ever-ready magnifying glass that works with most any program, TealMagnify saves your eyes when looking at tiny text.
TEALMASTER ( http://www.tealpoint.com/softmstr.htm )
A supercharged Hackmaster replacement with 100%-compatibility and enhanced stability, configuration, diagnostic and activation features, and PalmOS 5.0 support.
TEALMEAL ( http://www.tealpoint.com/softmeal.htm )
A personal restaurant database and selection wizard. Keep a database of your favorites and easily find them by type or category.
TEALMEMBRAIN ( http://www.tealpoint.com/softmemb.htm )
Memory monitor and stack manager which helps identify conflicts and greatly improves stability running multiple hacks and drivers.
TEALMOVER ( http://www.tealpoint.com/softmovr.htm )
File management utility for beaming, deleting, renaming, and copying files both in memory and on VFS-compatible storage cards.
TEALMOVIE ( http://www.tealpoint.com/softmovi.htm )
High-quality multimedia system with video and synchronized sound. Includes audio/video player and Windows AVI/Quicktime converter program.
TEALNOTES ( http://www.tealpoint.com/softnote.htm )
Insert freehand graphic "Sticky Notes" into memos, to-do lists, address book entries--almost anywhere you currently have editable text.
TEALPAINT ( http://www.tealpoint.com/softpnt.htm )
The most powerful paint and sketch app on Palm OS handhelds, featuring 16 tools, 16 patterns, 12 brushes, color, and desktop image conversion.
TEALPHONE ( http://www.tealpoint.com/softphon.htm )
A powerful Address Book replacement with superior interface, display, search, and indexing options.
TEALPRINT ( http://www.tealpoint.com/softprnt.htm )
The all-in-one text and graphic printing solution for Palm OS, supporting infrared, serial, and HotSync printing to any Windows printer.
TEALSCRIPT ( http://www.tealpoint.com/softscrp.htm )
An improved, tunable, Graffiti replacement that supports custom strokes, macros, better accuracy, and full screen writing under OS5
TEALTOOLS ( http://www.tealpoint.com/softtool.htm )
Six pop-up desk accessories, including a calculator, clock/stopwatch, preferences panel, editing panel, memopad, and a file/backup manager.
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.
CUSTOMER LICENSE AGREEMENT
YOU ARE ABOUT TO DOWNLOAD, INSTALL, OPEN OR USE PROPRIETARY SOFTWARE OWNED BY TEALPOINT SOFTWARE, INC. CAREFULLY READ THE TERMS AND CONDITIONS OF THIS END USER LICENSE BEFORE DOING SO, AND CLICK BELOW THAT YOU ACCEPT THESE TERMS.
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.
4. Disclaimer of Warranty and Liability. TEALPOINT MAKES NO WARRANTY, EXPRESS OR IMPLIED, AS TO THE ACCURACY, COMPLETENESS OR FUNCTIONING OF THE LICENSED SOFTWARE, INCLUDING WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY OR OF FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH TEALPOINT DISCLAIMS. ALL LIABILITY IS DISCLAIMED AND TEALPOINT ASSUMES NO RESPONSIBILITY OR LIABILITY FOR LOSS OR DAMAGES OF ANY KIND, DIRECT OR INDIRECT, INCIDENTIAL, CONSEQUENTIAL OR SPECIAL, ARISING OUT OF YOUR USE OF THE LICENSED SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
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.