MUIProCalc 1.3

quite powerful calculator suited for programmers, too

Kai Iske

MUIProCalc (MCalc) is © by Kai Iske


The icon for MUIProCalc was taken from the ToolManager 2.0 distribution and was designed by Michael ’Mick’ Hohmann.


MUI is Copyright © Stefan Stuntz

Copyright © 1993, Kai Iske


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1 Copyright

You are allowed to copy and spread this program but only if you do not make any commercial profit out of the program itself and all supported files. The source of MUIProCalc is considered teachware and the author claims the right to be the only one to produce and distribute new versions of MUIProCalc. Public Domain vendors are not allowed to sell MUIProCalc for more than the price of a regular disk, which should not be higher than 5 Dollars.

MUIProCalc is GiftWare, so if you like it and you you want to express your feelings, feel free to send me anything you think of being suited. Postcards, cookies, money, simply anything ;)


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2 Guarantee

The author does not give any guarantee that the program MUIProCalc works perfectly. The program was tested and it is used every day, anyway nobody is perfect and that is why I can not take the responsibilty for any damages occured during the usage of MUIProCalc.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3 Evolution

Due to the fact that I was still using Calc 3.0, written by Jimmy Yang, which wasn‘t that compatible to newer Kickstarts, I thought about writing a new one, since I couldn‘t find any calculator suited my needs. Not that Calc 3.0 was/is buggy, but it‘s just the fact that it isn‘t font adaptive. Furthermore I wanted to know how powerful MUI really was, so I thought it‘d be a good idea to write it using MUI.

Taking Calc 3.0, I tried to implement the functionality of this calculator, putting it into a MUI-GUI. What is still missing is the plotter. This may change in a later release.

One word to the parser: The grammar might not be perfect. There‘s only a small amout of syntax checking, in order to minimize parser size. Float value error handling isn‘t perfect either, yet. I just wanted to have a calculator as soon as possible. All this will change in future releases, if there are enough of replies.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4 Installing MUIProCalc

Installing MUIProCalc isn‘t that hard. First of all you should get hold of MUI (MagicUserInteface) and install it. MUIProCalc relies on MUI, since the complete User Interface was written using this great system.

Having installed MUI (if you haven‘t done so already), you may copy the program ‘MCalc’ and it‘s icon ‘MCalc.info’ to a place you like.

If you want to use the online help, you have to have AmigaGuide© installed. If so, move the supplied ‘MCalc.guide’ file to the same directory you moved the main program to.

That‘s it. In order to get online help, simply position the mouse over the object you want to get help for and MUIProCalc will pop up a window containing the help text.

One word to the menu shortcuts : They might not be Style Guide compliant, but I think it‘ll work just fine, anyway ;)

NOTE that you better set the stack size to at least 8192 bytes


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5 Using MUIProCalc

Well, it isn‘t that hard to use MUIProCalc. The main input window is devided into three areas, which are


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 The input/output area

Within this area (the upper) you see a String gadget and a ListView gadget. The String gadget is used to enter the expressions you want to calculate.

Within the ListView you see a history of all entered expressions and results. Per default the left column of the ListView is used to display the expression, whilst the right one reflects the result. You may set the number of lines bufferd using the Preferences. Furthermore you may tell MUIProCalc how to format the entry, i.e. you may have four different output types. See section History settings, to find out more about history settings.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 Function tables

Within this area you‘ll find all the functions supported by MUIProCalc. Simply click on the function you want to be added to the expression. You will also notice a Cycle gadget. This one may be used to switch between two function tables. The first set is a more mathematical set, whilst the second might only be of use to programmers. There are functions for bit-manipulation etc.pp.

This Group may be hidden, thus leading to more space. See section Window layout, to find out more about that.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 Input fields

These are buttons probably known from any other calculator. Simply click on the digit/operator you want to add to your expression. The characters ’A-F’ are used to enter hexadecimal values. The other characters ’X-Z’ are memories. These can be set using an expression of the form


x = sqrt (2*3)


This expression will set memory ’X’ to the result of ’sqrt (2*3)’. You may now use this value during other operations. You may even set a memory relative to another one, like


x = y + sqrt (2*3)


MUIProCalc supports four different value formats, these are :

Decimal

Decimal values are entered with no additional characters, like ’2.12322’. You may even enter doubles using scientific notation, like ’2.123e-2’

Hexadecimal

These values are preceded by a ’$’-sign or by ’0x’

Octal

These values are preceded by a ’\’-sign

Binary

These values are preceded by a ’%’-sign

The ’!’ operator is used to calculate the factorial of a value. This one is limited to a value of !170.

The ’Exec’ button may be used to ’start’ the calculator. This can also be done, by simply hittin RETURN from within the String gadget

’CLR’�clears the current display.

’ACLR’�will clear the display and all memories

This Group may be hidden, thus leading to more space. See section Window layout, to find out more about that.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4 The menus

MUIProCalc offers a set of menus. These are :


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.1 Project

The Project menu offers three entries :

Preferences...

Will open the Preferences editor (see section Preferences)

About...

Will display about messages

Quit

Will quit MUIProCalc


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.2 History

If you prefer to use your mouse or the menu shortcuts you may paste an entry from the history to the current cursor position from within this menu :

Pick left entry

Will pick the left entry from the list and paste it to the current cursor position. If only one column is shown, this will be used (see section Preferences).

Pick right entry

Will pick the right entry from the list and paste it to the current cursor position. If only one column is shown, this will be used (see section Preferences).

Copy left entry

Selecting this item will copy the left entry from the history to the selected clipboard unit. If only one column is show, this one will be used (see section Preferences).

Copy right entry

Selecting this item will copy the right entry from the history to the selected clipboard unit. If only one column is show, this one will be used (see section Preferences).


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.3 Display Bases

This menu may be used to set the display mode for output. You may have ’Decimal’, ’Hexadecimal’, ’Octal’, or ’Binary’�output.

In any other mode than ’Decimal’�there will be no difference between ’Signed’�and ’Unsigned’ modes (see section Sign).

The default output type may be set using Output settings.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.4 Size

For the ’Hexadecimal’, ’Octal’, and ’Binary’�modes (see section Display Bases), you may set an output value size (number of bits). This will reduce/increase maximum numbers.

The default output type may be set using Output settings.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.5 Sign

For ’Decimal’ output (see section Display Bases), you may have signed or unsigned results, when you enter ’Hexadecimal’, ’Octal’, or ’Binary’ values.

The default output type may be set using Output settings.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.4.6 Angle

For trigonometrical functions you may set the type of angle you‘ve entered. If you set ’RAD’, the values will be interpreted as of type radians, but if you set ’DEG’�angles will be interpreted as of type degree.

The default output type may be set using Output settings.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5 The ARexx Port

In addition to the default ARexx commands every MUI application knows about, MUIProCalc offers some more, these are :

As with every MUI Application the name of the ARexx Port is constructed from the base name of the Application. For MUIProCalc this will be ’MCALC’.

BTW: If you read something about TeX compatible output, this means you may use these strings directly within a mathematical environment. The current conversion routine isn‘t quite intelligent I have to admit. Maybe I‘ll add a smarter one for the next release...

There are two scripts included for use with CygnusED which demonstrate how to use the ARexx Port.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.1 CALC - Command

Format:

CALC EXPRESSION

Template:

EXPRESSION/A

Parameter:

Any valid expression as accepted by MUIProCalc

Result:

Will be a string containing the calculated expression

Example:

CALC ’1 + 2 + 3’

6.000000


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.2 CALCTEX - Command

Format:

CALCTEX EXPRESSION

Template:

EXPRESSION/A

Parameter:

Any valid expression as accepted by MUIProCalc

Result:

Will be a string containing the calculated expression converted to TeX compatible format.

Example:

CALCTEX ’1 / 100000’

1\\cdot 10^{-5}


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.3 GETOUTPUT - Command

Format:

GETOUTPUT [ENTRY]

Template:

ENTRY/N

Parameter:

Supply an entry number you want to get from the history‘s output list. ENTRY may either be

Result:

Will be a string containing the expression at the specified entry.

Example:

GETOUTPUT 2

12.000001


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.4 GETTEXOUTPUT - Command

Format:

GETTEXOUTPUT [ENTRY]

Template:

ENTRY/N

Parameter:

Supply an entry number you want to get from the history‘s output list. ENTRY may either be

Result:

Will be a string containing the expression at the specified entry, formatted to TeX compatible output.

Example:

GETTEXOUTPUT 3

1\\cdot 10^{-5}


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.5 GETINPUT - Command

Format:

GETINPUT [ENTRY]

Template:

ENTRY/N

Parameter:

Supply an entry number you want to get from the history‘s input list. ENTRY may either be

Result:

Will be a string containing the expression at the specified entry.

Example:

GETINPUT 2

2 + 2 + 3 + 4


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.6 GETTEXINPUT - Command

Format:

GETTEXINPUT [ENTRY]

Template:

ENTRY/N

Parameter:

Supply an entry number you want to get from the history‘s input list. ENTRY may either be

Result:

Will be a string containing the expression at the specified entry, formatted to TeX compatible output.

Example:

GETTEXINPUT 3

1\\cdot 32


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.7 FORMATTEX - Command

Format:

FORMATTEX EXPRESSION

Template:

EXPRESSION/A

Parameter:

Supply an expression you would like to have converted to TeX compatible format.

Result:

Will be a string containing the converted expression, formatted to TeX compatible output.

Example:

FORMATTEX ’1 * 10^-5’

1\\cdot 10^{-5}


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.5.8 SETMODE - Command

Format:

SETMODE [BASE=DEC|HEX|OCT|BIN] [SIZE=8|16|32] [SIGN=SIGNED|UNSIGNED] [ANGLE=RAD|DEG]

Template:

BASE/K,SIZE/K,SIGN/K,ANGLE/K

Parameter:
BASE

Specify a new conversion/output base for ARexx calculations. You may supply either one of the following :

  • DEC Decimal output
  • HEX Hexadecimal output
  • OCT Octal output
  • BIN Binary output
SIZE

Specify the default conversion size for hexadecimal/octal/binary values. You may supply either one of the following :

  • 8 8 Bits
  • 16 16 Bits
  • 32 32 Bits
SIGN

Specify signed or unsigned output. Supply either one of :

  • SIGNED Signed output
  • UNSIGNED Unsigned output
ANGLE

Spcify the default type of supplied angles. This may either be :

  • RAD Angles of type radians
  • DEG Angles of type degree
Result:

This will always be FALSE (0)

Example:

SETMODE ’BASE=HEX’ ’SIZE=8’ ’SIGN=SIGNED’ ’ANGLE=DEG’


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6 Preferences

Within the Preferences window you may configure some of MUIProCalc‘s default values. These are :

Furthermore the active function table, set with the ’Functions’ cycle gadget within the main window, will be taken into account.

Use

will use the current settings and store them temporarily, so if you restart MUIProCalc, these settings will be used again.

Save

will save/store the settings on disk.

Cancel

will restore the previously used values.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.1 Window layout

Within this group there are two CheckBox gadgets. if the ’No Functions’�CheckBox is set, the main window will not contain the function tables. If not the function tables will be displayed. If you set ’No Input’ the input fields will not be displayed. If you clear this CheckBox, the lower gadget group will be displayed.

Using the ’In/Out Order’ gadget you may control the ordering of the input String gadget and the output ListView gadget. When ’Input then Output’ is selected, the String gadget will appear ’on top’�of the ListView. Otherwise (’Output then Input’) it will appear underneath the ListView.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.2 Output settings

You may set the default values for ’Display Bases’, ’Size’, ’Sign’ and ’Angle’�here.

See Display Bases Size Sign Angle


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.3 History settings

Using the ’Lines’ Slider gadget you may adjust the maximum number of lines to capture during a session.

With the ’Entries’�Cycle gadget you may set the output format for the history. You may choose from the following formats :

Input & Ouput

Within the left column you‘ll see the expression entered. In the right column there‘ll be the result for that expression.

Output & Input

Is the opposite to the above

Input

Will only show your input expression

Output

Will only show the result


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.4 Misc

Set the ’Clear input on exit’ CheckBox gadget if you prefer to have the input gadget cleared every time you‘ve entered an expression. Otherwise simply clear it.

The ’Flush memory’ CheckBox gadget may be used to tell MUIProCalc to flush all unused libraries (including unused MUI-Classes) from memory on exit, thus freeing all that precious memory used up by MUIProCalc.

Using the ’ClipUnit’�Slider gadget you may set the default clipboard unit for History clipping. Simply select a unit you want to use.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7 Whom I must say ’thank you’

I would like to thank the following people

Dirk Federlein

For betatesting and suggestions

Stefan Stuntz

Especially for MUI and for answering all my questions...

Volker G�th

For being the first (and only one so far) contacting me just because of MUIProCalc...

My girlfriend

Who accepts what I‘m doing

...and all the others I forgot


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8 How to obtain updates

MUIProCalc will be available on ADS, FRAS, FTP, and Fred Fish disks as soon as there‘s a new release available.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9 How to contact the author

If you have any questions, suggestions, bug reports or anything else you want to tell me, you may contact me under one of these addresses.

Either use normal snail mail:

Kai Iske
Brucknerstrasse 18
63452 Hanau
Germany
Tel.: +49-(0)6181-850181

or reach me using electronical mail

USENET:   kai@iske.adsp.sub.org
FIDO:     Kai Iske, 2:244/6302.11
ZNET:     KAI@SWEET.ZER

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10 Program history

Revision V1.3
————–
created on Friday, 11.02.94 23:34:08  by  Kai Iske.   LogMessage :
 -*-  changed on Friday, 11.02.94 23:35:32  by  Kai Iske.   LogMessage :
  - One couldn‘t use 1e3 for scientific notation of 1000. You
    had to write 1.0e3. Changed
    (Reported by : Henry Norman)
  - No more error lines will be copied from History
    (Requested by : Stefan Stuntz)
 -*-  created on Friday, 11.02.94 23:34:08  by  Kai Iske.   LogMessage :
  - "Radiant" was wrong. Changed. Why didn‘t anybody tell me.
    (Reported by : Henry Norman)
  - Chose wrong case for mathematical "e".
    (Reported by : Henry Norman)

Revision V1.2
————–
created on Tuesday, 19.10.93 23:41:00  by  Kai Iske.   LogMessage :
 -*-  changed on Wednesday, 08.12.93 23:48:31  by  Kai Iske.   LogMessage :
  - Default number of history lines increased
    (Requested by : Stefan Stuntz)
 -*-  changed on Sunday, 05.12.93 22:30:41  by  Kai Iske.   LogMessage :
  - No checks were made on the ENTRY argument to an ARexx
    function
 -*-  changed on Sunday, 05.12.93 18:13:56  by  Kai Iske.   LogMessage :
  - For calculations via ARexx one can set the type, size, sign
    and angle flags seperately, now
 -*-  changed on Sunday, 05.12.93 17:50:09  by  Kai Iske.   LogMessage :
  - Improved error handling from within ARexx commands a bit
 -*-  changed on Sunday, 05.12.93 17:46:35  by  Kai Iske.   LogMessage :
  - MUIProCalc may output TeX style mathematical expressions
    when using the ARexx commands. Additionally there is another
    option to convert expressions to TeX format.
    (Requested by : Volker G�th)
 -*-  changed on Sunday, 05.12.93 16:47:59  by  Kai Iske.   LogMessage :
  - Added more ARexx functions to the default ones
    (CALC, GETINPUT, GETOUTPUT)
    (Requested by : Volker G�th)
 -*-  changed on Sunday, 05.12.93 01:47:36  by  Kai Iske.   LogMessage :
  - MUIProCalc didn‘t handle extremly small values
    (Reported by : Volker G�th)
 -*-  changed on Sunday, 05.12.93 01:38:18  by  Kai Iske.   LogMessage :
  - Default values weren‘t set up
  - ACLR and CLR gadget have got menu entries too, now
    (Requested by : Volker G�th)
  - History entries may be copied to clipboard now
    (Requested by : Volker G�th)
 -*-  changed on Saturday, 27.11.93 01:01:25  by  Kai Iske.   LogMessage :
  - Recompiled using SAS 6.50
 -*-  changed on Wednesday, 20.10.93 00:24:41  by  Kai Iske.   LogMessage :
  - Bug in ListView display fixed
 -*-  created on Tuesday, 19.10.93 23:41:00  by  Kai Iske.   LogMessage :
  - You may now tell MCalc to clear the input string after
    hitting RETURN or EXEC.

Revision V1.1
————–
created on Tuesday, 12.10.93 01:50:26  by  Kai Iske.   LogMessage :
 -*-  changed on Sunday, 17.10.93 15:03:10  by  Kai Iske.   LogMessage :
  - Save and Use gadgets weren‘t arranged as proposed
    by the AUISG. (Reported by: Stefan Stuntz)
  - Changed layout of Prefs window a bit
    (Suggested by: Stefan Stuntz)
 -*-  changed on Friday, 15.10.93 18:39:50  by  Kai Iske.   LogMessage :
  - NOT operator didn‘t behave as expected ;) It was a simple
    negate... (Reported by : Top on IRC)
 -*-  changed on Thursday, 14.10.93 18:01:32  by  Kai Iske.   LogMessage :
  - Hex-Values may be entered using ’C’-Style now (e.g. 0xff)
 -*-  changed on Thursday, 14.10.93 00:34:55  by  Kai Iske.   LogMessage :
  - One can use the faktorian ’!’ behind numbers now, too.
    (Suggested by : Top on IRC)
 -*-  changed on Thursday, 14.10.93 00:28:52  by  Kai Iske.   LogMessage :
  - One could accidentially change the ordering of the
    functions and input-gadgets groups by using
    ’No Functions’�and ’No Input’ (reported by: Top on IRC)
 -*-  created on Tuesday, 12.10.93 01:50:26  by  Kai Iske.   LogMessage :
  - Order of Input and Ouput gadgets (String + ListView) may be
    set now, ie. the input string may show up underneath the
    ListView and vice versa (Requested by Dirk Federlein)

Revision V1.0
————–
created on Saturday, 02.10.93 02:12:50  by  Kai Iske.   LogMessage :
    — Initial release —

[Top] [Contents] [Index] [ ? ]

About This Document

This document was generated on January 5, 2023 using texi2html 5.0.

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ << ] FastBack Beginning of this chapter or previous chapter 1
[ < ] Back Previous section in reading order 1.2.2
[ Up ] Up Up section 1.2
[ > ] Forward Next section in reading order 1.2.4
[ >> ] FastForward Next chapter 2
[Top] Top Cover (top) of document  
[Contents] Contents Table of contents  
[Index] Index Index  
[ ? ] About About (help)  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:


This document was generated on January 5, 2023 using texi2html 5.0.