PSharp

1. General Information

PSharp is a scientific algebraic calculator just like my old Sharp 1401 that I use since 1982. I looked for an algebraic calculator for the Palm device but most of the programs were similar to RPN. It's a very mighty calculator but YOU have to parse the expression for RPN because the program can't do it. Therefore I decided to develop an own algebraic calculator. I looked for tools and found GCC and PILRC as development enviroment and MathLib as an double precision library for mathematical functions. After a few weeks of testing the parsing algorithm I think the program is ready for use. Because of the use of MathLib (see section below) PSharp requires PalmOS 2.0 or newer.

2. Use of PSharp

If you use the program you will see that all settings including the last input are saved and will be restored at the next start of the program. I think most of the buttons are self explainable, but here is a brief description of the used controls.

2.1 Main Screen

The main screen is divided into the input field for entering the expression and the buttons and lists for input. In addition you can use graffiti for input.
The buttons labeld 01-04 can be defined by the user. It is possible to change the label and the value of these buttons.

2.1.1 Buttons

     

2.1.2 Lists

   
0-9 : 0-9   Rad/Deg/Gon : determine the trigonometric mode: radian, degrees or gon
+-/* : +-/*   Norm/Arc/Hyp/ArcHyp : create prefix for trigonometric functions,
sqr : square root       - norm : normal trigonometric function, e.g. norm + sin => sin
ln : logarithm       - arc : arcus function, e.g. arc + sin => asin
log : common logarithm       - hyp : hyberbolic function, e.g hyp + sin => hsin
sin : sinus       - archyp : arcushyperbolic function archyp + sin => ahsin
cos : cosinus   E/F/S/A : toggle between float, exponential, scientific
tan : tangens       and automatic presentation of the result
Pi : the constant Pi ~ 3.14159265   .0-8 : determine the number of digits after the decimal point
e : used in two ways,
- the constant e ~ 2.71828183
- exponatial sign e.g. 1e3
       
^ : power, e.g. 2^3 = 8        
! : factorial, e.g. 3! = 1*2*3 = 6        
Arrow left : Backspace        
CLR : Clear input field        

2.1.3 Other things

Values with leading & sign are interpreted as hex values.
If you like to have cursor buttons you can assign '<' for cursor left and '>' for cursor right as value to user defined buttons.
List of additional functions:

abs( x ) : absolute value of x
cur( x ) : cube root of x
exp( x ) : power function with base e; e ^ x
int( x ) : convert x to integer value
rcp( x ) : calculate the reciprocal value of x
sgn( x ) : copysign function; returns -1 for x < 0, 0 for x = 0 and 1 for x > 0
squ( x ) : x squared
ten( x ) : power function with base 10; 10 ^ x


2.2 Edit Buttons window


There are four user defined buttons (01 - 04) which can be used to store values or formulas. If you use these buttons the assigned string is inserted at the cursor position in the input field of the main screen. In that way you can customize PSharp for your personal needs.

2.3 Edit Constants window


PSharp can handle up to 20 user defined constants. They must be defined in the edit constants dialog. The minimum number of constants is one, that means you can't delete the last constant. You can change an existing constant (name and/or value) by entering the new information in the two fields and then press the 'Save' button. If you hit the 'New' button a new constant is defined using the name and value in the two fields. The name of a constant must contain only letters. The maximum number of letters is five. The value can be entered using exponential notation. The 'Del' button deletes the selected constant.
Constants are saved in the program's preferences. If PSharp is deleted, all constants are deleted too.

2.4 Register PSharp window


If you register PSharp you will get a registration code to unlock the shareware version. After entering the user specific code the shareware version will automatically turn into the registered one.

3. This program requires MathLib

MathLib is a free shared library that can be used by any OS 2.0+ Pilot program that needs IEEE 754 double precision math functions. It's distributed under the terms of the GNU General Public License, and is freely available with full source code and documentation at the MathLib Information web page. It's not a part of PSharp, and you're not paying anything for its use; a copy is simply included in this archive for your convenience. For more information on MathLib, see the MathLib webpage at http://www.radiks.net/~rhuebner/mathlib.html

4. Future enhancements

If you have any suggestions feel free to contact the author under info@thorsten-tietz.de

5. Tech Support/Info

I make no guarantees to provide technical support, but if you need some feel free to mail to: info@thorsten-tietz.de

6. Registration

For registration please contact me under thorsten.tietz@gmx.de. Registered user will get a registration code to unlock the current version. In this way you will get a version without the nag screen and free updates forever. In addition you can use the user defined buttons and constants in the registered version.

7. Liability

The author of PSharp is not affiliated with Palm Computing (3Com), and is not liable for any damages caused to the user or the user's computer equipment (including both their home PC and their Pilot). This program has been tested on a PalmPilot Professional/Palm III and to the best of the author's knowledge will not harm similar equipment. However, by installing this product the user dissolves the author of all liabilities related to this program or otherwise.

8. Version History

Version 2.3 : Changed the program name from PalmSharp to PSharp to comply fully with Palm trademark provisions :-)))
Version 2.2 : The menu items Cut, Copy, Paste, Copy result and Paste last result now really work :-)
Version 2.1 : Changed the registration model to a user dependend registration key. Therefore only one program version has to maintained.
Use of NewFloatManager to decrease the program size of 10 %.
Added a few new functions found in the manual of my Sharp 1401/1403.
Version 2.0 : Now PSharp works on the actual version of PalmOS 3.5
Version 1.9 : Fixed an internal bug to run PSharp on the PalmOS 3.3 debug rom without any error or warning message.
Now the menu shortcuts in PSharp work.
Version 1.8 : Reworked the documentation as htm file.
The values '<' and '>' at user defined buttons a interpreted as buttons to move the cursor left or right.
After 4 month of searching for the bug in button definition I found the solution.
Added the user defined constants with corresponding dialog.
Changed the format of PSharp preferences.
*** Please delete any old version of PSharp before installing. ***
*** If you don't your Pilot may hang and you have to hard reset it. ***
Version 1.7 : Now PSharp calculates correct again. Sorry for version 1.6
Removed some debug information which created a memopad record every time PSharp is started. I forgot to remove it in version 1.6 ;-(
Version 1.6 : Moved the main screen one pixel to the left.
Fixed a bug while reading the saved preferences.
Added help screen to mention thing not found on buttons.
Version 1.5 : Fixed a bug in the event loop bug of the shareware version. Did the same to the full version.
Fixed a bug in button definition.
Version 1.4 : Fixed some internal bugs.
Now PSharp runs on the debug rom version 3.0.
Tested PSharp on release versions of PalmOS 2.0, 3.0, 3.3 and 3.5 (Build 25). Runs well on all versions. :-)
Changed eventloop so that PSharp now works with MenuHack.
Changed data saving from own database to PalmOS preferences.
*** Please delete any old version of PSharp before installing. ***
*** That's the only way to avoid problems with the saved data. ***
Version 1.3 : Added automatic notation of the result, which changes the presentation automatically from float to exponetial if an overflow error occures.
Fixed the 0^0 bug.
Added support for hex values which means values with leading & are interpreted as hex values.
Version 1.2 : Added scientific notation of the result, which means in steps of 1e3.
A little bit more error checking (ln, log, ahcos)
Found a way to fix the overflow bug in power and factorial function.
Version 1.1 : Nearly total new coding of the program to integrate the new features.
Added menu support, e.g. for cut, copy , paste ...
New buttons to be customized by the user (registered version only).
The result will not longer be copied to the clipboard automatically (Use copy result).
*** Please delete any old version of PSharp before installing. ***
*** That's the only way to avoid problems with the saved data. ***
Version 1.0 : I think now most of the work is done. :-)
Changed the program status from freeware to shareware to become very, very rich ! (only 5.95$)
Now the result is recalculated if the number format or the trigonometric mode is changed. In addition the result is automatically copied to clipboard.
Fixed the leading space error with numbers
Version 0.97 : Removed some error handling in solution to string converter, so that the error '?overflow?' should be fixed.
Float presentation will work up to 2 power 32.
Version 0.96 : Bug with tan(45) fixed
Toggle result between float/exp without deleting result
Added small icon for Palm III list view
Version 0.95 : Bug in arc-function in degree mode fixed.
Error handling for division, tan, log and ln.
Version 0.94 : First public release