438 lines
15 KiB
Groff
438 lines
15 KiB
Groff
|
.\" Copyright (c) 1994 X Consortium
|
||
|
.\"
|
||
|
.\" Permission is hereby granted, free of charge, to any person obtaining
|
||
|
.\" a copy of this software and associated documentation files (the
|
||
|
.\" "Software"), to deal in the Software without restriction, including
|
||
|
.\" without limitation the rights to use, copy, modify, merge, publish,
|
||
|
.\" distribute, sublicense, and/or sell copies of the Software, and to
|
||
|
.\" permit persons to whom the Software is furnished to do so, subject to
|
||
|
.\" the following conditions:
|
||
|
.\"
|
||
|
.\" The above copyright notice and this permission notice shall be included
|
||
|
.\" in all copies or substantial portions of the Software.
|
||
|
.\"
|
||
|
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||
|
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
|
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||
|
.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||
|
.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||
|
.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||
|
.\" OTHER DEALINGS IN THE SOFTWARE.
|
||
|
.\"
|
||
|
.\" Except as contained in this notice, the name of the X Consortium shall
|
||
|
.\" not be used in advertising or otherwise to promote the sale, use or
|
||
|
.\" other dealings in this Software without prior written authorization
|
||
|
.\" from the X Consortium.
|
||
|
.\"
|
||
|
.\"
|
||
|
.de EX \"Begin example
|
||
|
.ne 5
|
||
|
.if n .sp 1
|
||
|
.if t .sp .5
|
||
|
.nf
|
||
|
.in +.5i
|
||
|
..
|
||
|
.de EE
|
||
|
.fi
|
||
|
.in -.5i
|
||
|
.if n .sp 1
|
||
|
.if t .sp .5
|
||
|
..
|
||
|
.TH XCALC 1 __xorgversion__
|
||
|
.SH NAME
|
||
|
xcalc \- scientific calculator for X
|
||
|
.SH SYNOPSIS
|
||
|
.B xcalc
|
||
|
[-stipple] [-rpn] [-\fItoolkitoption...\fP]
|
||
|
.SH DESCRIPTION
|
||
|
.I xcalc
|
||
|
is a scientific calculator desktop accessory that can emulate a TI-30
|
||
|
or an HP-10C.
|
||
|
.SH OPTIONS
|
||
|
.PP
|
||
|
\fIxcalc\fP accepts all of the standard toolkit command line options along
|
||
|
with two additional options:
|
||
|
.PP
|
||
|
.TP 8
|
||
|
.B \-stipple
|
||
|
This option indicates that the background of the calculator should be
|
||
|
drawn using a stipple of the foreground and background colors. On monochrome
|
||
|
displays improves the appearance.
|
||
|
.PP
|
||
|
.TP 8
|
||
|
.B \-rpn
|
||
|
This option indicates that Reverse Polish Notation should be used. In this
|
||
|
mode the calculator will look and behave like an HP-10C. Without this flag,
|
||
|
it will emulate a TI-30.
|
||
|
.SH OPERATION
|
||
|
.PP
|
||
|
.I Pointer Usage:
|
||
|
Operations may be performed with pointer button 1, or in some cases,
|
||
|
with the keyboard.
|
||
|
Many common calculator operations have keyboard accelerators.
|
||
|
To quit, press pointer button 3 on the AC key of the TI calculator,
|
||
|
or the ON key of the HP calculator.
|
||
|
.PP
|
||
|
.I Calculator Key Usage (TI mode):
|
||
|
The numbered keys, the +/- key, and the +, -, *, /, and = keys all do exactly
|
||
|
what you would expect them to. It should be noted that the operators obey
|
||
|
the standard rules of precedence. Thus, entering "3+4*5=" results in "23",
|
||
|
not "35". The parentheses can be used to override this. For example,
|
||
|
"(1+2+3)*(4+5+6)=" results in "6*15=90".
|
||
|
.PP
|
||
|
The entire number in the calculator display can be selected, in order to
|
||
|
paste the result of a calculation into text.
|
||
|
.PP
|
||
|
The action procedures associated with each function are given below. These
|
||
|
are useful if you are interested in defining a custom calculator.
|
||
|
The action used for all digit keys is \fBdigit(\fIn\fP)\fR, where \fIn\fR
|
||
|
is the corresponding digit, 0..9.
|
||
|
.TP 10
|
||
|
.B 1/x
|
||
|
Replaces the number in the display with its reciprocal.
|
||
|
The corresponding action procedure is \fBreciprocal()\fR.
|
||
|
.TP 10
|
||
|
.B x^2
|
||
|
Squares the number in the display.
|
||
|
The corresponding action procedure is \fBsquare()\fR.
|
||
|
.TP 10
|
||
|
.B SQRT
|
||
|
Takes the square root of the number in the display.
|
||
|
The corresponding action procedure is \fBsquareRoot()\fR.
|
||
|
.TP 10
|
||
|
.B CE/C
|
||
|
When pressed once, clears the number in the display without clearing the state
|
||
|
of the machine. Allows you to re-enter a number if you make a mistake.
|
||
|
Pressing it twice clears the state, also.
|
||
|
The corresponding action procedure for TI mode is \fBclear()\fR.
|
||
|
.TP 10
|
||
|
.B AC
|
||
|
Clears the display, the state, and the memory. Pressing it with the third
|
||
|
pointer button turns off the calculator, in that it exits the program.
|
||
|
The action procedure to clear the state is \fBoff()\fR; to quit, \fBquit()\fR.
|
||
|
.TP 10
|
||
|
.B INV
|
||
|
Invert function. See the individual function keys for details.
|
||
|
The corresponding action procedure is \fBinverse()\fR.
|
||
|
.TP 10
|
||
|
.B sin
|
||
|
Computes the sine of the number in the display, as interpreted by the current
|
||
|
DRG mode (see DRG, below). If inverted, it computes the arcsine.
|
||
|
The corresponding action procedure is \fBsine()\fR.
|
||
|
.TP 10
|
||
|
.B cos
|
||
|
Computes the cosine, or arccosine when inverted.
|
||
|
The corresponding action procedure is \fBcosine()\fP.
|
||
|
.TP 10
|
||
|
.B tan
|
||
|
Computes the tangent, or arctangent when inverted.
|
||
|
The corresponding action procedure is \fBtangent()\fP.
|
||
|
.TP 10
|
||
|
.B DRG
|
||
|
Changes the DRG mode, as indicated by 'DEG', 'RAD', or 'GRAD' at the bottom of
|
||
|
of the calculator ``liquid crystal'' display.
|
||
|
When in 'DEG' mode, numbers in the display are taken as being
|
||
|
degrees. In 'RAD' mode, numbers are in radians, and in 'GRAD' mode, numbers
|
||
|
are in grads. When inverted, the DRG key has a feature of
|
||
|
converting degrees to radians to grads and vice-versa. Example: put the
|
||
|
calculator into 'DEG' mode, and enter "45 INV DRG". The display should now
|
||
|
show something along the lines of ".785398", which is 45 degrees converted to
|
||
|
radians.
|
||
|
The corresponding action procedure is \fBdegree()\fP.
|
||
|
.TP 10
|
||
|
.B e
|
||
|
The constant 'e'. (2.7182818...).
|
||
|
The corresponding action procedure is \fBe()\fR.
|
||
|
.TP 10
|
||
|
.B EE
|
||
|
Used for entering exponential numbers. For example, to get "-2.3E-4" you'd
|
||
|
enter "2 . 3 +/- EE 4 +/-".
|
||
|
The corresponding action procedure is \fBscientific()\fR.
|
||
|
.TP 10
|
||
|
.B log
|
||
|
Calculates the log (base 10) of the number in the display. When inverted,
|
||
|
it raises "10.0" to the number in the display.
|
||
|
For example, entering "3 INV log" should result in "1000".
|
||
|
The corresponding action procedure is \fBlogarithm()\fP.
|
||
|
.TP 10
|
||
|
.B ln
|
||
|
Calculates the log (base e) of the number in the display. When inverted,
|
||
|
it raises "e" to the number in the display. For example, entering "e ln"
|
||
|
should result in "1".
|
||
|
The corresponding action procedure is \fBnaturalLog()\fR.
|
||
|
.TP 10
|
||
|
.B y^x
|
||
|
Raises the number on the left to the power of the number on the right. For
|
||
|
example "2 y^x 3 =" results in "8", which is 2^3. For a further example,
|
||
|
"(1+2+3) y^x (1+2) =" equals "6 y^x 3" which equals "216".
|
||
|
The corresponding action procedure is \fBpower()\fR.
|
||
|
.TP 10
|
||
|
.B PI
|
||
|
The constant 'pi'. (3.1415927....)
|
||
|
The corresponding action procedure is \fBpi()\fR.
|
||
|
.TP 10
|
||
|
.B x!
|
||
|
Computes the factorial of the number in the display. The number in the display
|
||
|
must be an integer in the range 0-500, though, depending on your math library,
|
||
|
it might overflow long before that.
|
||
|
The corresponding action procedure is \fBfactorial()\fR.
|
||
|
.TP 10
|
||
|
.B (
|
||
|
Left parenthesis. The corresponding action procedure for TI calculators
|
||
|
is \fBleftParen()\fR.
|
||
|
.TP 10
|
||
|
.B )
|
||
|
Right parenthesis. The corresponding action procedure for TI calculators
|
||
|
is \fBrightParen()\fR.
|
||
|
.TP 10
|
||
|
.B /
|
||
|
Division. The corresponding action procedure is \fBdivide()\fR.
|
||
|
.TP 10
|
||
|
.B *
|
||
|
Multiplication. The corresponding action procedure is \fBmultiply()\fR.
|
||
|
.TP 10
|
||
|
.B -
|
||
|
Subtraction. The corresponding action procedure is \fBsubtract()\fR.
|
||
|
.TP 10
|
||
|
.B +
|
||
|
Addition. The corresponding action procedure is \fBadd()\fR.
|
||
|
.TP 10
|
||
|
.B =
|
||
|
Perform calculation. The TI-specific action procedure is \fBequal()\fR.
|
||
|
.TP 10
|
||
|
.B STO
|
||
|
Copies the number in the display to the memory location.
|
||
|
The corresponding action procedure is \fBstore()\fR.
|
||
|
.TP 10
|
||
|
.B RCL
|
||
|
Copies the number from the memory location to the display.
|
||
|
The corresponding action procedure is \fBrecall()\fR.
|
||
|
.TP 10
|
||
|
.B SUM
|
||
|
Adds the number in the display to the number in the memory location.
|
||
|
The corresponding action procedure is \fBsum()\fR.
|
||
|
.TP 10
|
||
|
.B EXC
|
||
|
Swaps the number in the display with the number in the memory location.
|
||
|
The corresponding action procedure for the TI calculator is \fBexchange()\fR.
|
||
|
.TP 10
|
||
|
.B +/-
|
||
|
Negate; change sign. The corresponding action procedure is \fBnegate()\fR.
|
||
|
.TP 10
|
||
|
.B .
|
||
|
Decimal point. The action procedure is \fBdecimal()\fP.
|
||
|
.sp
|
||
|
.PP
|
||
|
.I Calculator Key Usage (RPN mode):
|
||
|
The number keys, CHS (change sign), +, -, *, /, and ENTR keys all do exactly
|
||
|
what you would expect them to do. Many of the remaining keys are the same as
|
||
|
in TI mode. The differences are detailed below. The action procedure
|
||
|
for the ENTR key is \fBenter()\fR.
|
||
|
.sp
|
||
|
.TP 10
|
||
|
.B <-
|
||
|
This is a backspace key that can be used if you make a mistake while entering
|
||
|
a number. It will erase digits from the display. (See BUGS).
|
||
|
Inverse backspace will clear the X register.
|
||
|
The corresponding action procedure is \fBback()\fR.
|
||
|
.TP 10
|
||
|
.B ON
|
||
|
Clears the display, the state, and the memory. Pressing it with the third
|
||
|
pointer button turns off the calculator, in that it exits the program.
|
||
|
To clear state, the action procedure is \fBoff\fR; to quit, \fBquit()\fR.
|
||
|
.TP 10
|
||
|
.B INV
|
||
|
Inverts the meaning of the function keys. This would be the \fIf\fR key
|
||
|
on an HP calculator, but \fIxcalc\fR does not display
|
||
|
multiple legends on each key. See the individual function keys for details.
|
||
|
.TP 10
|
||
|
.B 10^x
|
||
|
Raises "10.0" to the number in the top of the stack.
|
||
|
When inverted, it calculates the log (base 10) of the number in the display.
|
||
|
The corresponding action procedure is \fBtenpower()\fR.
|
||
|
.TP 10
|
||
|
.B e^x
|
||
|
Raises "e" to the number in the top of the stack.
|
||
|
When inverted, it calculates the log (base e) of the number in the display.
|
||
|
The action procedure is \fBepower()\fR.
|
||
|
.TP 10
|
||
|
.B STO
|
||
|
Copies the number in the top of the stack to a memory location. There are 10
|
||
|
memory locations. The desired memory is specified by following this
|
||
|
key with a digit key.
|
||
|
.TP 10
|
||
|
.B RCL
|
||
|
Pushes the number from the specified memory location onto the stack.
|
||
|
.TP 10
|
||
|
.B SUM
|
||
|
Adds the number on top of the stack to the number in the specified
|
||
|
memory location.
|
||
|
.TP 10
|
||
|
.B x:y
|
||
|
Exchanges the numbers in the top two stack positions, the X and Y registers.
|
||
|
The corresponding action procedure is \fBXexchangeY()\fR.
|
||
|
.TP 10
|
||
|
.B R v
|
||
|
Rolls the stack downward. When inverted, it rolls the stack upward.
|
||
|
The corresponding action procedure is \fBroll()\fR.
|
||
|
.TP 10
|
||
|
.I blank
|
||
|
These keys were used for programming functions on the HP-10C. Their
|
||
|
functionality has not been duplicated in \fIxcalc\fR.
|
||
|
.PP
|
||
|
Finally, there are two additional action procedures:
|
||
|
\fBbell()\fR, which rings the bell;
|
||
|
and \fBselection()\fR, which performs a cut on the
|
||
|
entire number in the calculator's ``liquid crystal'' display.
|
||
|
.SH ACCELERATORS
|
||
|
.PP
|
||
|
Accelerators are shortcuts for entering commands. \fIxcalc\fP provides
|
||
|
some sample keyboard accelerators; also users can customize accelerators.
|
||
|
The numeric keypad accelerators provided by \fIxcalc\fP
|
||
|
should be intuitively correct.
|
||
|
The accelerators defined by \fIxcalc\fP on the main keyboard are given below:
|
||
|
.PP
|
||
|
.nf
|
||
|
.ta .5i 1.0i 1.5i 2.0i 2.5i 3.0i 3.5i 4.0i 4.5i 5.0i 5.5i 6.0i 6.5i 7.0i
|
||
|
TI Key HP Key Keyboard Accelerator TI Function HP Function
|
||
|
|
||
|
SQRT SQRT r squareRoot() squareRoot()
|
||
|
AC ON space clear() clear()
|
||
|
AC <- Delete clear() back()
|
||
|
AC <- Backspace clear() back()
|
||
|
AC <- Control-H clear() back()
|
||
|
AC Clear clear()
|
||
|
AC ON q quit() quit()
|
||
|
AC ON Control-C quit() quit()
|
||
|
|
||
|
INV i i inverse() inverse()
|
||
|
sin s s sine() sine()
|
||
|
cos c c cosine() cosine()
|
||
|
tan t t tangent() tangent()
|
||
|
DRG DRG d degree() degree()
|
||
|
|
||
|
e e e()
|
||
|
ln ln l naturalLog() naturalLog()
|
||
|
y^x y^x ^ power() power()
|
||
|
|
||
|
PI PI p pi() pi()
|
||
|
x! x! ! factorial() factorial()
|
||
|
( ( leftParen()
|
||
|
) ) rightParen()
|
||
|
|
||
|
/ / / divide() divide()
|
||
|
* * * multiply() multiply()
|
||
|
- - - subtract() subtract()
|
||
|
+ + + add() add()
|
||
|
= = equal()
|
||
|
|
||
|
0..9 0..9 0..9 digit() digit()
|
||
|
. . . decimal() decimal()
|
||
|
+/- CHS n negate() negate()
|
||
|
|
||
|
x:y x XexchangeY()
|
||
|
ENTR Return enter()
|
||
|
ENTR Linefeed enter()
|
||
|
.fi
|
||
|
.PP
|
||
|
.SH CUSTOMIZATION
|
||
|
The application class name is XCalc.
|
||
|
.PP
|
||
|
\fIxcalc\fP has an enormous application defaults file which specifies
|
||
|
the position, label, and function of each key on the calculator.
|
||
|
It also gives translations to serve as keyboard accelerators.
|
||
|
Because these resources are not specified in the source code, you can create
|
||
|
a customized calculator by writing a private application defaults file,
|
||
|
using the Athena Command and Form widget resources to specify the size and
|
||
|
position of buttons, the label for each button, and the function of
|
||
|
each button.
|
||
|
.PP
|
||
|
The foreground and background colors of each calculator key can be
|
||
|
individually specified.
|
||
|
For the TI calculator, a classical color resource specification might be:
|
||
|
.sp
|
||
|
.br
|
||
|
XCalc.ti.Command.background: gray50
|
||
|
.br
|
||
|
XCalc.ti.Command.foreground: white
|
||
|
.sp
|
||
|
For each of buttons 20, 25, 30, 35, and 40, specify:
|
||
|
.br
|
||
|
XCalc.ti.button20.background: black
|
||
|
.br
|
||
|
XCalc.ti.button20.foreground: white
|
||
|
.sp
|
||
|
For each of buttons 22, 23, 24, 27, 28, 29, 32, 33, 34, 37, 38, and 39:
|
||
|
.br
|
||
|
XCalc.ti.button22.background: white
|
||
|
.br
|
||
|
XCalc.ti.button22.foreground: black
|
||
|
.SH WIDGET HIERARCHY
|
||
|
In order to specify resources, it is useful to know the hierarchy of
|
||
|
the widgets which compose \fIxcalc\fR. In the notation below,
|
||
|
indentation indicates hierarchical structure. The widget class name
|
||
|
is given first, followed by the widget instance name.
|
||
|
.nf
|
||
|
.ta .5i 1.0i 1.5i 2.0i 2.5i 3.0i 3.5i 4.0i 4.5i 5.0i 5.5i 6.0i 6.5i 7.0i
|
||
|
.sp
|
||
|
XCalc xcalc
|
||
|
Form ti \fIor\fR hp \fI(the name depends on the mode)\fR
|
||
|
Form bevel
|
||
|
Form screen
|
||
|
Label M
|
||
|
Toggle LCD
|
||
|
Label INV
|
||
|
Label DEG
|
||
|
Label RAD
|
||
|
Label GRAD
|
||
|
Label P
|
||
|
Command button1
|
||
|
Command button2
|
||
|
Command button3
|
||
|
\fIand so on, ...\fR
|
||
|
Command button38
|
||
|
Command button39
|
||
|
Command button40
|
||
|
.fi
|
||
|
.SH APPLICATION RESOURCES
|
||
|
.PP
|
||
|
.TP 8
|
||
|
\fBrpn\fR (Class \fBRpn\fR)
|
||
|
Specifies that the rpn mode should be used. The default is TI mode.
|
||
|
.TP 8
|
||
|
\fBstipple\fR (Class \fBStipple\fR)
|
||
|
Indicates that the background should be stippled. The default is ``on''
|
||
|
for monochrome displays, and ``off'' for color displays.
|
||
|
.TP 8
|
||
|
\fBcursor\fR (Class \fBCursor\fR)
|
||
|
The name of the symbol used to represent the pointer.
|
||
|
The default is ``hand2''.
|
||
|
.fi
|
||
|
.SH COLORS
|
||
|
If you would like xcalc to use its ti colors, include the following
|
||
|
in the #ifdef COLOR section of the file you read with xrdb:
|
||
|
.sp 1
|
||
|
*customization: -color
|
||
|
.sp 1
|
||
|
.br
|
||
|
This will cause xcalc to pick up the colors in the app-defaults color
|
||
|
customization file:
|
||
|
.IR __apploaddir__/XCalc-color .
|
||
|
.fi
|
||
|
.SH "SEE ALSO"
|
||
|
X(__miscmansuffix__), xrdb(1), the Athena Widget Set
|
||
|
.SH BUGS
|
||
|
.PP
|
||
|
HP mode is not completely debugged. In particular, the stack is
|
||
|
not handled properly after errors.
|
||
|
.SH COPYRIGHT
|
||
|
Copyright 1994 X Consortium
|
||
|
.br
|
||
|
See \fIX(__miscmansuffix__)\fP for a full statement of rights and permissions.
|
||
|
.SH AUTHORS
|
||
|
John Bradley, University of Pennsylvania
|
||
|
.br
|
||
|
Mark Rosenstein, MIT Project Athena
|
||
|
.br
|
||
|
Donna Converse, MIT X Consortium
|