iconCalc- [ close ]

================================================================================
Calc- (Calc minus): A simple calculator.
Version 1.00 (1 May 2009)

Noriyuki Mihashi
================================================================================

[Contents]
    1. Summary
    2. System reqirement
    3. Installation
    4. Uninstallation
    5. Getting start
    6. Detail description
    7. Note
    8. Licences
    9. Changes history


1. Summary
   This is a simple calculator program. It is a little similar to Psion's built-
   in 'Calc' program but has less functions of scientific view. And instead of
   less spec, it has some useful features that the Psion's one does not have.

   Some features added on it are inspired from the old calculator EL-5103 made
   by SHARP corporation released about 30 years ago. Though EL-5103 calculator
   is old-fashioned scientific calculator defferent from today's intelligent
   machine or legendary one such as HP's RPC calculator, it has much usability
   come from well designed user interface.

   Features inspired from EL-5103 calculator are followings:

   - Naturaly formula expression that makes us enable inputing formula as hand-
     writing. It supports priority of operators and can control them by using
     brackets. And it makes possible scrolling formula when it becomes long.

   - 'Play-back' function that makes it possible re-edit formula once computed.

   - Multiple memory cell assigned from letters 'A' to 'F'.

   - Memoried formula computing with variable from letters 'A' to 'F'. It makes
     us repeat computing with changing value of variables.

   Another useful feature this program has is a in-line scale changing with
   prefix letters 'b,o,d,x'. It was taken idea from the famous calculator pro-
   gram 'Flcalc5' produced by FreEPOC group.

   One more useful features this program is a 'Till-roll' function from Psion's
   built-in 'Calc' program. Getting those useful features, this program become
   much useful though it has less function of scientific calculation. So I named
   'Calc-' to this program.


2. System reqirement
   This program does not needs particular system requirements excepting your
   Psion hardware. But I am afraid that it cannot work on Revo because of lack
   space on their LCD window.

   And one more sorry about system environment restriction that some charactors
   may not be drawn correctly under Asian language environment such as 'UniFEP'.


3. Installation
   You will see the following files after expanding the ZIP archive.

     ./ ----- Calc-.txt                         This text.
              Calc-.SIS                         Installation file.
              srcs/ ------- Calc-.opl           Source lists.
                            Calc-.oph
                            Icon.mbm            Icon file.
                            aSync.mbm           Bitmaps.

   Pick up the extracted 'Calc-.SIS' file and install it on your Psion. When
   installation is complete, an icon of 'Calc-' will appear in the Extras bar on
   your Psion.


4. Uninstallation
   If you have the 'Add/remove' icon in your Psion's control panel, select Calc-
   in the 'Add/remove' window and remove it. Or find the 'Calc-' directory in
   the '\System\Apps\' directories in drives C: and D: on your Psion, and delete
   all the files included in them.


5. Getting start
   This program is very simple, so you will not need any description on begin
   using. You can operate it like your handheld calculator.

   One thing if I can note is that you can use keyboard instead pen-touching on
   LCD screen. If you know what keys assigned to each button, press [Ctrl]+[K]
   keys or [?] key. There displayed keyboard shortcuts on each keys for several
   seconds.


6. Detail description
   6.1. Button keys
      You can see following buttons on LCD screen. Buttons are placed into three
      groupes. The second functions are available when after [Shift] pressed.

      Group 1:
        [Shift]       Selecting second function of each keys.
        [Not\xor]     Operator of 'Not'(~) / Operator of 'Xor'(^)
        [And\<<]      Operator of 'And'(&) / Operator of 'Shift up'(<)
        [Or\>>]       Operator of 'Or'(|) / Operator of 'Shift down'(>)
        [bin\dec]     Prefix means the number after it is binary (b)
                      / Prefix means the number after it is decimal (d)
        [hex\oct]     Prefix means the number after it is hexadecimal (x)
                      / Prefix means the number after it is octal (o)
        [Mode\bit]    Changing mode of scale / Changing bit precision
        [Var\fix]     Symbol of variable ($) / Changing decimal point
        [M+\M-]       Add to memory / Sub from memory
        [MR\mc]       Memory recall / Memory clear
        [Store]       Memory value into any of cell from 'A' to 'F'
        [Load\clr]    Call value from memory cell / Clear memory cell

      Group 2:
        [A]-[D]       Memory cell or hexadecimal number
        [E\1111]      Memory cell or hexadecimal number / input '1111' at once
        [F\1111]      Memory cell or hexadecimal number / input 'ffff' at once
        [1]-[9]       Numeric
        [0\pi]        Numeric / The circular constant (@)
        [.\000]       Decimal point / input '000' at once
        [:\0000]      Separator for time / input '0000' at once

      Group 3:
        [BS\del]      Backspace / Delete charactor on cursor
        [AC]          Clear formula and answer
        [<-\|<-]      Move cusror back / Move cursor to the top of formula
        [->\->|]      Move cursor forward / Move cursor to the end of formula 
        [(\pow]       Left bracket / Operator for 'power'(")
        [)\sqr]       Right bracket / Operator for 'square root'(_)
        [*]           Operator for 'multiply'
        [/\mod]       Operator for 'divide' / Operator for 'modulus'(%)
        [+]           Operator for 'add'
        [-]           Operator for 'sub' or 'negative'
        [=]           Start computing


   6.2. Inputing formula
      Different from other calculators for office use, this program do not start
      computing until pressed [=] button or enter key. You can edit formula as
      you like before start computing. And once you computed, you can re-edit
      formula by moving cursor anywhere unless you press [AC] button.

      This program understands formula as we write on a paper. There exists some
      priority among operators and you can control them by using brackets.

      Example)
        '1+2*3'    becomes '7'.
        '(1+2)*3'  becomes '9'.

      Brackets allows be nested. But caution too much nesting might cause error.


   6.3. Priority among operators
      Operators used in this program have priority among them. The priority is
      listed below from higher to lower:

        Operator                  Operand          Direction
        ----------------------------------------------------------
        -(nega),~(not),_(sqrt)    Single(After)    Right to left
        "(power)                  Double           Left to right
        *(mult),/(div),%(mod)     Double           Left to right
        <(shft-up),>(shft-dn)     Double           Left to right
        +(add),-(sub)             Double           Left to right
        &(and)                    Double           Left to right
        |(or),^(xor)              Double           Left to right

      Operators takes single operand(-,~,_) will have higher priority if they
      lined up each other. Caution they are not allowed lined continuously over
      three and not cannot appear twice in the same lined part.

      Example)
        '1+-~_4"-~_9/9' means '1+pow(-not(sqr(4)),-not(sqr(9)))/9' becomes 10.
        '1+~-~_4' becomes error (four operators of single operand lined)
        '1+~(-~_4)' becomes -3 (lined part is separated by brackets)
        '1-~-4' becomes error (operators of single operand appared twice)
        '1-(~-4)' becomes -2 (lined part is separated by brackets)


   6.4. Mode
      This program has five mode of number format: binary, octal, decimal, hexa-
      decimal, and date.

      In each mode, default number format is same as mode. But you can change it
      temporaly by using prefix of mode under any mode, there ar 'b', 'o', 'd',
      and 'x'.

      Example)
        '10+1' means '2+1' under binary mode.
        '10+1' means '8+1' under octal mode.
        '10+1' means '10+1' under decimal mode.
        '10+1' means '16+1' under hexadecimal mode.
        'b10+o10+d10+x10' means '2+8+10+16' becomes 36 in decimal format.

      The date mode is special. This mode bases on decimal but it computes value
      as dates and times. Values are expressed on 'DD.MM.YYYY:hh:mm:ss' format
      and they are computed as days from 1st Jan 1900 internaly. You can reduce
      to input date or time if you do not need.

      Example)
        '31.1.2009:9:45:30' means 31 Jan 2009 9:45:30.
        '31.1.2009' means 31 Jan 2009.
        '31' means 31 days.
        '9:45:30' means 9:45:30.
        '2:9:45:30' means two days and 9 hours 45 minutes 30 seconds.

      You can change setting of date format according to your country from three
      types: 'DD.MM.YYYY', 'MM.DD.YYYY' and 'YYYY.MM.DD'.

      Answers in this mode are noted as 'days / day of week / absolute date'. If
      you need only diffrerent of days among two dates, see only days and ignore
      other part. Similarly if you want only different of times, see only days
      part and time in absolute date.

      Example)
        '28.2.2009-31.1.2009' becomes '28 DAYS / MON / 29.1.1900'. But then you
        will need only '28 DAYS' and ignore others.

        '23:30+1:30' becomes '1 DAYS / TUE / 02.01.1900:02:00:00'. You can think
        it as 2:00 of next day.

      Caution that you can use any operator in this mode other than '+' and '-'.
      So it was allowed non-sense calculation such as '31.1.2009*_14:30', and it
      will become '30968 DAYS / MON / 15.10.1985:10:52:20'.


   6.5. Using variable
      This program takes it as variable if the formula contains a numeric with
      '$' before it. You can use up to ten variables from '$0' to '$9', and they
      can be places any times in the formula.

      If this program starts computing the formula contains variables, it asks
      each value for the variables in turn from one with lower number. You can
      use any variable you like, not need from '$0', not need use sequentialy.

      Example)
        Formula input     '1+$0*3'
        Value entered     '$0=2'
        Formula computed  '1+2*3' becomes 7

        Formula input     '1+$5*3+$1%4-$1/10'
        Value entered     '$1=30', '$5=2'
        Formula computed  '1+2*3+30%4-30/10' becomes 6

      I called this function 'variable'. In fact, it is not variable exactly but
      just a pattern replacing. So you should care following usage.

      Example)
        Formula input     '1+2$0'
        Value entered     '$0=3'
        It does not computed as '1+2*3', but '1+23'. So it becomes 24.

        Formula input     '1+$0*4'
        Value entered     '$0=2+3'
        Entered '2+3' is not computed at first. It is replaced to '1+2+3*4', so
        the answer becomes 15, not 21. If you want to compute '2+3' at first,
        input '(2+3)' to asked '$0='.


   6.6. Memories
      This program has two kind of memories. One of them is just same as other
      popular calculator. It is operated by [M+], [M-], [MR] and [mc] functions.
      The other one can only keeping value that cannot adding or subtracting. It
      is operated by [Store], [Load] and [clr] functions.

      The first one is named 'M', and the other one has six cells named from 'A'
      to 'F'. You can see current values of them at once by selecting 'Memories'
      function in 'Tools' menu.

      To storing value into cells from 'A' to 'F', press [Store] button first,
      then press any of keys 'A' to 'F'. It takes same step as this to recalling
      or clearing cells.


   6.7. Changing width of decimal fraction
      In decimal mode, width of decimal fraction is fixed and it can be set from
      0 to 15 as you like. To change width of it, press [fix] button first, then
      press one of keys from '0' to 'F'. Keys 'A' to 'F' means 10 to 15.

      Caution that it is rounded off under smallest collumn after decimal point.

      Example)
        '0.123456789' brcomes '0.1235' when width is 4.
        '0.123456789' brcomes '0.123' when width is 3.


   6.8. Logging
      You can see logging window initialy on the left side of screen. Same as
      the Psion's built-in 'Calc' program, formulas and answers are recorded on-
      to it. Also same as Psion's one, this program can change side of logging
      window left to right too by selectiing 'Flip layout' function in 'Settings'
      menu.

      In this program, there are two more features what Psion's built-in 'Calc'
      does not have. One of them is detail logging feature. You can see detail
      process of complex calculation if this option turned on. It can be select
      by checking the 'Logging details' item on in 'Preferences' window.

      The other one is function of saving logs. It can save logged records into
      text files by 'Save log' function in 'File' menu.


   6.9. Preferences
      Some features about a view of this program can selected as you like. They
      can be set in 'Preferences' function in 'Settings' menu. Items you can set
      are following:

      - Format of date in the 'Date' mode. You can select one from 'DD.MM.YYYY',
        'MM.DD.YYYY' or 'YYYY.MM.DD'.

      - Operator symbol for multiply. You can select '*' or mathematical symbol.

      - Operator symbol for divide. You can select '/' or mathematical symbol.

      - Detail logging. This was described in previous section 6.7.


7. Note
   7.1. This program allows nesting of brackets in formula. But too meny nests
        of brackets may cause error from memory lack.

   7.2. In binary, octal, and hexadecimal mode, any real number are converted to
        integer by omitting the figures after the decimal fraction. It is same
        when logical oparation are done, such as 'And', 'Or', 'Not', or 'Xor'.

   7.3. This program cannot compute imaginal number. It makes error if you let
        it computing square root of negative number.


8. Licences
   8.1. The copyright of this program and other related products distributed
        together (source codes, icons, documents, etc.) belongs to the author of
        this program.

   8.2. This program is distributed as freeware by the copyrighter. No payment
        is necessary for commercial or noncommercial use.

   8.3. The author of this program accepts no claims for physical, mental,
        material, monetary, social, religious, political or any kind of damages
        caused by you using this program. Anyone who use this program must aban-
        don all claims for all damages described above.

   8.4. Those who have this program may reuse a whole or part of its source code
        for their own products and can redistribute them freely for commercial
        or non-commercial use without the permission of the copyrighter, except
        the official application UID allocated by the Symbian Ltd.

   8.5. Those who make their own products by reusing the source code of this
        program may not prevent others from using this program and must allow
        its free distribution, free use, free redistribution and free reuse by
        claimimg their copyrights.

   8.6. You agree to all the articles listed above in this chapter when you use
        this program or reuse source code of it.


9. Changes history
    Ver.1.00 (01 May 2009):
       - Released.