135 lines
4.4 KiB
Groff
135 lines
4.4 KiB
Groff
.TH IC 1
|
|
.SH NAME
|
|
ic \- integer calculator
|
|
.SH SYNOPSIS
|
|
\fBic\fR [\fIexpression\fR]\fR
|
|
.br
|
|
.de FL
|
|
.TP
|
|
\\fB\\$1\\fR
|
|
\\$2
|
|
..
|
|
.de EX
|
|
.TP 20
|
|
\\fB\\$1\\fR
|
|
# \\$2
|
|
..
|
|
.SH EXAMPLES
|
|
.EX "ic " "Start the calculator"
|
|
.EX "ic 250 300+" "Start calculator with 550 on the stack"
|
|
.SH DESCRIPTION
|
|
.PP
|
|
\fIIc\fR is a simple RPN (Reverse Polish Notation)
|
|
calculator, used for small calculations
|
|
and base conversions. All calculations are done using 32 bit
|
|
integers.
|
|
The standard input is usually a keyboard and the standard output
|
|
requires a device with a \&'termcap\&' entry.
|
|
The program starts by interpreting any <args> as commands, where
|
|
the separation between arguments is considered to be the same as
|
|
the ENTER key. For example,
|
|
.PP
|
|
.B " ""ic 692 784+"
|
|
.PP
|
|
After reading the arguments input is from the keyboard.
|
|
.SS "Stack Operations"
|
|
.PP
|
|
The operation of this program is similar to an RPN calculator.
|
|
A six level stack is used. The ENTER key pushes the stack up one
|
|
level. For example, \&'12+5\&' is entered as \&'12 ENTER 5 +".
|
|
.PP
|
|
The top two entries on the stack are exchanged by the \fIx\fR
|
|
command, and the stack is rolled down one (popped) by the
|
|
\fIp\fR key.
|
|
The top of the stack may be cleared by pressing the back-space
|
|
key. The whole stack and the registers are initialized by a \fIz\fR.
|
|
.SS "Numeric Entry"
|
|
.PP
|
|
The input and output bases are initially decimal, but they may
|
|
be changed using the \fIi\fR and \fIo\fR commands. The \fIi\fR command changes
|
|
both bases, but the \fIo\fR command changes just the output base.
|
|
These commands take a one character argument of \fIh\fR, \fId\fR, \fIo\fR or
|
|
\fIb\fR to change to Hexadecimal, Decimal, Octal or Binary. While the
|
|
input base is hexadecimal the letters \fIa\fR through \fIf\fR are used
|
|
to represent the decimal values 10 through 15.
|
|
.PP
|
|
When the input base is decimal: multiply, divide and remainder
|
|
are signed, otherwise they are performed unsigned.
|
|
.PP
|
|
The output base may also be changed to ASCII (\fIa\fR), this causes
|
|
the least significant 7 bits of a value to be displayed as a
|
|
character. To input an ASCII value the translate (\fIt\fR) command
|
|
may be used, it accepts one character as its argument.
|
|
.SS "Calculations"
|
|
.PP
|
|
The arithmetic operations supported are: Negate (\&'.\&'),
|
|
Add (\&'+\&'), Subtract (\&'\(mi\&'), Multiply (\&'*\&'),
|
|
Divide (\&'/\&'), and Remainder (\&'%\&').
|
|
The logical (Boolean) operations available are: NOT (\&'~\&'),
|
|
AND (\&'&\&'), OR (\&'|\&'),
|
|
and EXCLUSIVE-OR (\&'^\&').
|
|
.PP
|
|
After one of these operations the last top of stack value is
|
|
saved. It may be restored by pressing \fIl\fR (L).
|
|
.SS "Saving Results"
|
|
.PP
|
|
Ten temporary registers are available. The Store (\fIs\fR) command
|
|
followed by a digit (\&'0\&'..\&'9\&') will copy the top of the stack
|
|
to the specified register. The Recall (\fIr\fR) command pushes the
|
|
contents of a register onto the top of the stack.
|
|
.PP
|
|
If the Store command is followed by a \&'+\&' preceding the digit, then
|
|
the top of the stack will be added to the specified \&'accumulator\&'
|
|
register.
|
|
.PP
|
|
Values may also be written to a file. The \fIw\fR command writes the
|
|
top of the stack, using the current output base, to a file called
|
|
\&'pad\&' in the current directory. If the user does not have write
|
|
access to the current directory then the file \fI/tmp/pad_$USER\fR is
|
|
used as the scratch pad. The scratch pad file is erased on the
|
|
first use of the \fIw\fR command within each new invocation of \&'ic\&'.
|
|
.SS "Miscellaneous"
|
|
.PP
|
|
The Quit (\fIq\fR) key causes an immediate exit.
|
|
The \fIm\fR command temporarily leaves \fIic\fR
|
|
by invoking the shell as a sub-process.
|
|
For help while using \fIic\fR, hit the \fIh\fR key. If an erroneous key
|
|
is pressed the bell will sound.
|
|
.SS "Command Summary"
|
|
.PP
|
|
Note that many commands have an alternative key-code available
|
|
on the extended AT keyboard. This aids entry by including most
|
|
commands on the right side of the keyboard.
|
|
.ta 0.25i 1.5i
|
|
.nf
|
|
.PP
|
|
ENTER Enter (push up)
|
|
BS (DEL) Clear top of stack
|
|
h Help
|
|
i Input base (h, d, o, b)
|
|
l (PGDN) Last top of stack
|
|
m \s-2MINIX\s0 shell
|
|
o Output base (h, d, o, b, a)
|
|
p (DOWN) Pop stack (roll down)
|
|
q (END) Quit
|
|
r (LEFT) Recall (0-9)
|
|
s (RIGHT) Store [+] (0-9)
|
|
t Translate (char)
|
|
w (PGUP) Write top of stack to scratch pad
|
|
x (UP) Exchange top of stack
|
|
z (HOME) Zero all state
|
|
. Change sign
|
|
+ (+) Add
|
|
- (-) Subtract
|
|
* Multiply
|
|
/ Divide
|
|
% (sh/5) Remainder
|
|
(tilde) Not
|
|
& And
|
|
| Or
|
|
^ Exclusive-or
|
|
.fi
|
|
.SS "Author"
|
|
.PP
|
|
\fIIc\fR was written by Terrence W. Holm.
|