kcalc -- a scientific calculator for CP/M
=========================================
kcalc is a scientific calculator utility for the CP/M 2.2 platform. It can
evaluate expressions from the command line, but it also has an interactive
mode with rudimentary, WordStar-like line editing.
The floating point math library the program uses provides about 11-12
signigicant figures of precision, and results are displayed to nine figures.
kcalc follows proper arithmetic rules of precence; brackets can be used
to group terms in the conventional way.
A number of logarithmic and trig functions are provided -- type "list" at the
prompt to see them all.
Example
-------
A> kcalc sin (pi/4)
0.70710678
Results are displayed in decimal or hexadecimal: use "dec" or "hex" at the
prompt to select which is used.
Numbers
-------
Numbers are assumed to be decimal, unless they are preceded by '#' to denote
a hexadecimal number. Decimal numbers can be entered in scientific notation
(e.g., `1.2E10`). To enter a negative hex number, put the minus sign first:
`-#20`. Hexadecimal numbers can't be fractional, or use scientific notation.
Operators
---------
The usual math operators are supported; to calculate a power use `^`, e.g.,
`2^16`. The modulus (remainder) operator is `%`, e.g., `7%3`.
Enter `help` at the prompt for more information.
Interactive mode
----------------
kcalc enters interactive mode if invoked without an expression on the command
line. It supports basic line editing, with WordStar-like key bindings. To
get a list of key assignments, type "keys" at the prompt.
To leave interactive mode, enter "quit", or just hit ctrl+C.
Use the `sigfig` command with a single digit (`sigfig 8`) to set the
precision of the output. Although the Aztec floating point library provides
about fourteen digits of precision, `KCalc-CPM` currently only
displays one to nine digits, with five being the default.
Variables
---------
You can define up to ten new variables like this:
kcalc> twopi = 2 * pi
Variables can freely be used in later expressions.
Notes
-----
All function and variable names are case-insensitive.
All angles are in radians by default; to use degrees type "deg" at the
prompt.
"ans" is a built-in variable that denotes the last result calculated.
The "log" function is the _natural_ (base-e) logarithm -- use "log10" for
common (base-10) logarith. The "exp" function is the base-e antilogarithm,
that is, e to the power x. There is no common antilogarithm function -- just
do "10^x".
The maximum line length in the editor is 127 characters
There is, at present, no way to define new functions, or to read definitions
from a file, or to log results to a file.
kcalc can only display hexadecimal numbers up to #FFFFFFFF. Attempting to
display a number larger than this in HEX mode will lead to odd, completely
bogus, results.
Author
------
kcalc is maintained by Kevin Boone, and is distributed under the terms of the
GNU public licence, v3.0.