Welcome to B-S Calc, the Business-Scientific freeware CALCulator for Palm!
==========================================================================

Copyright 1998, 1999, Nadim Yared
email: nadim.yared@med.ge.com
Version 1.3x, last update: 30-JUL-2000


Features
--------
+ User selectable AOS scientific calculation mode and business chain mode
        (AOS: 1 + 2 * 3 = 7, chain: 1 + 2 * 3 = 9)
+ Interactive financial calculation, based on the HP-12c and the TI-BS2 calculators, 
        providing computation of annuities, down payments, future values, and   
        interest rates
+ Trigonometric functions, degree and rad selectable modes, provided that the 
        Mathlib.prc dynamic library is loaded -- More info on Mathlib.prc in 
        the file: MathlibDoc.htm
+ Trigonometric functions include Hyperbolic, Arc and ArcHyperbolic calculations
+ Standard memory functions: Added to standard Memory register (M), 
        standard Memory register Clear (MC) and standard Memory register Recall (MR)
+ 10 additional memories, accessible via Store (STO) and Recall (RCL)
+ The 11 memories and the 5 financial registers Interest Rate (I), 
        Number of Periods (N), Payment Amount (PMT), Present Value (PV), 
        and Future Value (FV).  Financial registers are saved between sessions, 
        providing you with a total of 16 double precision memory storage for your data
+ View all memories at a glance in a separate window
+ Percent, Percent ratio, percent add-onn, percent discount computation
+ User selectable modes include: 
        number of digit of precision 
        scientific v/s business calculation, 
        degree v/s rad, and
        beginning of period v/s end of period for the financial calculation 
+ 6 levels of brackets for complex computations ((((((...))))))
+ Extended scientific notation when a number exceeds 10 digits
+ Standard double precision computations include:
        raising to the power of real numbers, 
        sign inversion, 
        Neperian logarithm (Ln) and 
        inverse logarithm
+ Number of displayed digits of precision user selectable directly on the screen, 
        using up and down arrows
+ Mode button that switches between a scientific keypad and a business keypad
+ Single digit correction available during data entry
+ Copy displayed results to Clipboard allowing pasting result into other applications
+ Paste numbers from the Palm Clipboard into B-S Calc
+ Comma as thousand's separator, helps entering and interpreting big numbers

Operator's Manual
=================

Basic Operations
----------------
If you have already played with this calculator, you may have noticed the display of 
the numbers has two modes. The editing mode allows adding or removing digits.  
Entering numbers can be done directly by hitting on the corresponding buttons 
on the screen, or by using the Graffiti areas.  For example, entering the number 
1234.567, can either be done by touching the following buttons 
(1) (2) (3) (4) (.) (5) (6) (7), or by writing these values in the Graffiti area. 

Mistakes can be corrected by using the left arrow (the last digit entered is erased).  
Note, if an operator (such as +, or -/+) has been entered, the left arrow 
cannot be used to correct single digits.  In the editing mode, the top left-hand up 
arrow clears your editing data, and displays the last computation results.  
This now-documented feature can be used to retrieve the last result and 
cancel the current entry.

The second mode displays the results of computations to percision selected by the user.  
The precision level defaults to two digits.  To increase the precision, use the 
up-arrow button on the top left-hand side of the calculator.  
Decreasing the precision is done with the down-arrow.  

Clicking on any operations, including: =, brackets, trigonometry or memory functions, 
will terminate the editing mode.  Anything that was entered during the editing 
mode is then placed on the internal stack, interpreted into double precision data, 
and displayed on the screen using the user preferred precision.

In the scientific (AOS) mode, the priorities of the operators are, as follow:
        a. unary operators: +/-, trig functions, Ln, exp, 
        b. raising to the power pow(x, y)
        c. multiply, divide
        d. add, subtract 
        e. brackets
        f. equal

However, when the business chain mode is used, the priorities are simplified:
        a. unary operators, all binary operators
        b. brackets
        c. equal

Internal Precision
------------------
Rounding the internal representation of the last number displayed with the (RND) button 
will remove all non-displayed digits.  Example: 1/3 will yield 0.3333333333....  
If you have selected a precision of two digits, the displayed number will be 0.33, 
but if you multiply this number by 3, you will get back a 1.00.  
However, if you round 1/3 to 2 digits, by clicking on the (RND) button, 
and you multiply the resulting number by 3, you will get 0.99.  
Try playing with (RND) and the up and down arrow to really understand the effect
of the (RND) button.  This function is useful when doing financial and accounting 
calculations, where we usually do not keep track of digits beyond a specified precision.


Memory Operations
-----------------
The (M+) button adds the displayed number to the standard memory register.  
Clicking on (MR) displays the content of the standard memory register.  
(MC) clears out the standard memory register.  Some other calculators also have 
an (M-) button.  The combination of the change sign button (+/-), then M+ provide 
this function.

A (Min) function that simply overwrites the standard memory register is not available.  
However, the sequence (M+) (MC) (M+)has the same effect.  Note: The first click on (M+), 
ends editing mode.  Additional explaination of "the why" of this design is beyond 
the scope of this document.  The other 10 memories can also be used by those 
desiring the Min function.

The 10 memories (Mem 0 through Mem 9) store numbers for recall.  Clicking on (STO), 
followed by a number, will store the currently displayed number in the corresponding 
register.  For example, if you have 34.56 displayed on the screen, clicking on 
(STO) (2) will store the number 34.56 in the memory register 2.  
Clicking on (RCL), followed by a number, will retrieve the content of the 
corresponding register.  If you follow the example above, clicking on 
(RCL)(2) will display 34.56 on the screen.

Adding, subtracting and clearing the memory registers can be done in the 
following ways.  Clearing: click on (AC), followed by (STO) and the number 
of the memory register you want to clear.  For example: (AC) (STO) (2) to clear Mem 2.  
To add, click on (+), then (RCL) followed by the number of memory register 
you want to add to, then on (=), then on (STO) and the number of the register.  
For example: adding 12.34 to the memory register 2: click on 
(1)(2)(.)(3)(4) (+) (RCL)(2) (=) (STO)(2).  
To subtract, multiply, divide, and any other operation can be done in a similar way.


Financial Operations
--------------------
All of the 5 financial operators, (number of periods of payments, interest rate 
per year, payment per period, the present value and the future value), work with 
a single mechanism.  

Each operator is in fact a specialized memory register, which stores the value of 
one of the operators.  Pressing on one of the five financial operator buttons 
stores displayed number in that memory register.  For example, if the numeric 
output screen says 1234.56, and the key (PMT) is pressed, the memory register 
PMT is set equal to 1234.56.

In order to recall the value of a financial register, use the (RCL) button.  
For example, following the example above  pressing (RCL)(PMT) will display 1234.56.

For those not familiar with HP-12c or TI-BS2 calculators, an illustration of the 
financial operators follows. 

Find the payment required at the end of every month (?) for a 7%, 3-year loan of 
$10,000 where the last payment is increased by $1,000.

                                          -1,000 (FV)
                                             /
         ????????????????????????????????????
         ||||||||||||||||||||||||||||||||||||
        /
    $10,000 (PV)

Note: By convention, interest rates are understood to be annual unless a different 
period is specified.  In this example, we are interested in periods of 1 month.   

Enter the following sequence:
(3) (x) (1)(2) (=) (N)                  Enters the number of periods
(7) (=) (I/Y)                           Enters the yearly interest rate
(1)(0)(0)(0)(0) (PV)                    Enters the loan's present value
(1)(0)(0)(0)(+/-) (FV)                  Enters the loan's future (or residual) value
(CPT) (PMT)                             Computes the monthly payments

If you have "end of period", 12 monthly payments, and 12 compounding periods 
per year selected in your preference menu (the defaults, see below), you should 
get -283.73.  The result is negative to show you are making payments.  
Thus, the first 35 payments are $283.73 and the last payment is 
$1,283.73 ($1,000 + $283.73)

The values of the registers are saved between session, even when your palm is 
switched to another application or turned off.  This makes it easy to try 
alternative solutions, modifying only one value before recomputing.  
For example, the effect of changing the present value on the required number 
of payments could be checked by entering a new present value 
(1) (5) (0) (0) (0) (PV) and pressing (CPT) and (N).


The same logic applies to computing the values of (N), (I/Y), (PV), or (FV).  
Note that you have to provide four values by clicking on the corresponding operator's 
button, then compute the missing value by clicking on (CPT) and then the button 
for the missing operator.  If PV or FV is not used for a particular problem 
be sure to enter zero (0).  This is necessary because the values from 
previous problems are carried over.  You can verify values stored in the 
memory registers, including the five financial operators, with the "Display Memories" 
drop down menu: (Menu) (Options) (Display Memories).  

Note that the computation of the interest rate (I/Y) is calculated by iteration 
and can have zero or more solutions. If the successive results of (I/Y) do not 
converge to within 0.0000001 after 20 iterations, B-S Calc returns the 
"-e-" error value.

Financial Preferences
---------------------
The default financial preferences are:
        1) Payments are made at the end of the period
        2) Payments are monthly (12), and 
        3) Compounding is done monthly (12)

1) Payment Period, can have two values:
    . End: Periodic payments are due at the end of every period.  For example,
        in the example above, the monthly payments of 283.73 are due at the
        end of every month. This is the default mode, and most financial 
        institutions and banks uses this setup. I strongly recommend keeping
        this at "End", unless you know what you're doing
     . Begin: Periodic payments are due at the end of every period.  If you
        experiment, you'll find out that the results will differ slightly, which
        is absolutely normal: there is one month less of compounded interest
        in the play. In the example above, you'll find -282.08
2) Payments per Year.  The yearly nominal interest rate that you enter for (I/Y)
        is automatically converted to 1, 2, 4 or 12 payments per year.  The
        default value is 12, which is the monthly periodic payments.  Most 
        banks and financial institutions compute mortgages in monthly periodic 
        fixed payments.  Some bonds however pay coupons twice a year.  In that 
        example, set it to 2.
3) Compounding Periods per Year: Usually, Compounding Periods per Year is set 
        equal to Payments per Year. The default value is 12.  The compunding 
        options are the same as the Payments per Year options: 1, 2, 4, or 12


Financial Examples
------------------

Example 1:
You want to buy a car for $25,000, and you want to pay $5,000 immediately, 
and the rest you'll pay it monthly for 4 years, i.e. 48 months. 
The car dealer offers you a loan with a nominal yearly interest rate of 8%. 
(4) (x) (1)(2) (=) (N)
(8) (I/Y)
(2)(5)(0)(0)(0) (-) (5)(0)(0)(0) (=) (PV)
(0) (FV)
(CPT) (PMT)
result =  -488.26
You'll have to pay monthly $488.26

Example 2:
You have $ 10,000, and you placed these in the bank at 6% yearly interest rate 
compounded monthly.  You believe you can add $ 150 every month to this account.  
How much will you have after 10 years ?
(1)(0) (X) (1)(2) (=) (N)
(6) (I/Y)
(1)(0)(0)(0)(0)(+/-) (PV)
(1)(5)(0)(+/-) (PMT)
(CPT)(FV)
result = 42,775.87


Trigonometry Operations
-----------------------
Have you ever owned a scientific calculator?  If the answer is yes, 
simply skip this section.  This calculator behaves exactly like 99% of the 
scientific calculators.  Make sure you have loaded the program "Mathlib.prc" 
into your Palm before using the trigonometric functions.  I didn't include 
these functions in the main program to try to keep the size of the main program 
acceptable for users that don't care about trigonometry.  
For the others, you probably have Mathlib anyway as it is used many other 
mathematical packages.  In any case, I included it in the distribution package, 
please read the corresponding MathlibDoc.htm help file.

Make sure you have selected, in the preferences menu, the preferred trigonometric 
scale Rad or Degrees. 

        Note: 180 degrees make Pi (3.14159...) Radians.

Clicking (SIN) applies the sine operator on the last entered or calculated number.  
The result will be immediately displayed on the screen.  (COS) and (TAN) work similarly.  
Use the (INV) button to access the arcsine, arccosine and arctangent operators, 
by clicking immediately before the selected operator.  
For example: compute arcsine (0.7) by typing the following sequence: 
(0) (.) (7) (INV) (SIN)

Clicking on (HYP) will activate the hyperbolic functions: hyperbolic sine, 
hyperbolic cosine, and hyperbolic tangent.  Following the same logic, to get access 
to the arc hyperbolic sine, or ahsin, click on (INV) (HYP) and (SIN) respectively.


User Preferences
----------------
There are 6 user selectable preferences:

1) The displayed level of precision.  The display's precision is modified using the 
up and down arrows on the top left hand side of the calculator.

Note: internal precision remains 38 digits.  Only the displayed value is rounded 
to the nearest higher or lower number.  Thus 1.49 rounds to 1.5, and 1.55 rounds to 1.6

The following five user selectable preferences are accessible via pulldown menus.

. AOS(Scientific) vs (business) chain operations:  explained above, in the 
        "basic operations" paragraph. 
. Degree vs Rad: affects the way the trigonometric operators work.
. End of Period v/s Beginning of Period: specifies when the periodical 
        payments computed during the financial calculations are due.  
        Most banks use the end of period (and 90% of these use specifically 
        end of month payment).  Therefore, you probably will not change the default, 
        unless your accounting professor is through and is testing you with a 
        complex exercise.
. Payments per Year, usually set to 12.  See explanation in the financial section 
        of this manual
. Compounded periods per Year, usually equal to Payments per Year, and set by default 
        to 12.

Calculator Reset
----------------
Sets all memories to zero, all financial register to zeros,
and sets the following preferences:
. 2 digits of precision in display
. Trigonometry: Degree Mode
. Scientific AOS mode
. End of Period Payments
. payments per year = 12 
. compounding periods per year = 12 

That's all folks!!

And yes, if you have an idea of what I should implement next in this calculator, 
or if you find a bug, write me at: nadim.yared@med.ge.com, and I'll add the 
appropriate credits in the about menu. 

Good luck, 

Nadim


Aknowledgements
---------------
Peter R. Grierson, Ph.D., for his advices on the accounting practices in the USofA, and for
        rewriting the operator manual 
Cyril N. Yared, certified baby, for playing calmly while dad is programming
 


