Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ xcalc(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

X(7)

xrdb(1)

XCALC(1)  —  NEWS-OS Programmer’s Manual

名称

xcalc −  X 用の科学計算器

形式

xcalc [−stipple] [−rpn] [−toolkitoption...]

解説

xcalc は、 TI-30、HP-10C および計算尺をエミュレートできる科学計算用の デスクトップアクセサリーです。

オプション

xcalc はすべての標準的なツールキットコマンドラインのオプションに加え、 次の2つのオプションを受け入れます。

−stipple
このオプションは、計算器のバックグラウンドを、フォアグラウンドと バックグラウンドの色の点刻を使用して描くことを示します。 白黒ディスプレイでは、これによってディスプレイがより良くなります。

−rpn このオプションは、 Reverse Polish Notation を使用することを示します。 このモードでは、計算器は HP-10C のように見え、そのように動作します。 このフラグがないと、それは TI-30 をエミュレートします。

操作

ポインタの使用法 : 操作は、 Button1( 通常、ポインタ上の最も左側のボタン )、あるいは、 キーボードを使用します。 多くの計算器のコマンドは、キーボードからの入力を受けます。 Button3 ( 通常、右側 ) で TI 計算器上の AC キー、あるいは ON キーを 押すと計算器を脱出します。

計算器のキーの用途 ( TI モード ) : 数字キー、 +/- キー、および +、-、∗、/ および = キーはすべてそれぞれが 示すとおりに動作します。 オペレータは、標準の優先規則に従わなければならないことに注意してください。 よって、 "3+4∗5=" と入力すると、 "35" ではなく "23" となります。 これをオーバライドするには括弧を使用します。 たとえば、"(1+2+3)∗(4+5+6)=" は "6∗15=90" になります。 アクションプロシージャは、下のそれぞれの関数に関連しています。 もし、カスタム計算器を定義するのに興味があるなら、これらは非常に便利です。 すべての数字のキーを使うアクションは、digit(n) です。 n は、数字の 0..9 に対応しています。

1/x ディスプレイ中の数字を逆数に置き換えます。 対応するアクションプロシージャは、reciprocal() です。

x^2 ディスプレイ中の数字を 2 乗します。 対応するアクションプロシージャは、square() です。

SQRT ディスプレイ中の文字の平方根をとります。 対応するアクションプロシージャは、squareRoot() です。

CE/C 1 回押すと、ディスプレイ中の数字をクリアします。 このときマシンの状態はクリアされません。 数字を再入力することができます。 これを 2 回押すと、状態もクリアされます。 対応する TI モードのアクションプロシージャは、clear() です。

AC ディスプレイ状態、メモリ、などすべてをクリアします。 右側のボタンでこれを押すと、計算器が ’ オフになり ’ プログラムを 終了します。 状態をクリアするアクションプロシージャは、off() であり、 終了するのは、quit() です。

INV ファンクションキーの意味を逆にします。 詳細については、個々のファンクションキーを参照。 対応するアクションプロシージャは、inverse() です。

sin 現在の DRG モード ( 下記の DRG を参照 ) によって解釈されるとおりに、 ディスプレイ中の数字の正弦を計算します。 逆にされた場合は、これは逆正弦を計算します。 対応するアクションプロシージャは、sine() です。

cos 余弦を計算します。 逆にされた場合は逆余弦を計算します。 対応するアクションプロシージャは、cosine() です。

tan 正接を計算します。 逆にされた場合は逆正接を計算します。 対応するアクションプロシージャは、tangent() です。

DRG 計算器の数字ウィンドウ下部の ’DEG’、’RAD’、あるいは ’GRAD’ で示される とおりに DRG モードを変更します。 ´DEG’ モードの場合は、ディスプレイ中の数字は度数ととられます。 ´RAD’ モードでは、数字はラジアンで、 ’GRAD’ モードでは、数字は グラジアンです。 逆にされた場合、 DRG キーは度数をラジアンからグラジアンへそしてその逆に 変換するという優れた機能をもちます。
例 : 計算器を ’DEG’ モードにし、 "45 INV DRG" と入力します。 ディスプレイは ".785938" の行に沿って何かを表示します。 これは 45 度がラジアンに変換されたものです。 対応するアクションプロシージャは、degree() です。

e 定数 ’e’ (2.7182818...) です。 対応するアクションプロシージャは、e() です。

EE 指数を入力するのに使用します。たとえば、"−2.3E−4" を入力するには、 "2 . 3 +/− EE 4 +/−" と入力します。 対応するアクションプロシージャは、scientific() です。

log ディスプレイ中の数字の対数 ( 基数 10) を計算します。 逆にされた場合は、 "10.0" をディスプレイ中の数字乗します。 たとえば、 "3 INV log" と入力すると、 "1000" となります。 対応するアクションプロシージャは、logarithm() です。

ln ディスプレイ中の数字の対数 ( 基数 e) を計算します。 逆にされた場合は、 "e" をディスプレイ中の数字乗します。 たとえば、 "e ln" と入力すると、 "1" になります。 対応するアクションプロシージャは、naturalLog() です。

y^x 左側の数字を右側の数字の累乗にします。 たとえば、 "2 y^x 3 =" は、 "8" になります。 これは 2^3 にあたります。 さらに例を示すと、 "(1+2+3) y^x (1+2) =" は、 "6 y^x 3" で、 "216" となります。 対応するアクションプロシージャは、power() です。

PI 定数 ’pi’ (3.1415927....) です。 対応するアクションプロシージャは、pi() です。

x!  ディスプレイ中の階乗を計算します。 ディスプレイ中の数字は、 0−500 の範囲にある整数でなければなりませんが、 数字ライブラリに応じて、それよりはるか以前にあふれるでしょう。 対応するアクションプロシージャは、factorial() です。

( 左カッコです。 対応する TI 計算器のアクションプロシージャは、leftParen() です。

) 右カッコです。 対応する TI 計算器のアクションプロシージャは、rightParen() です。

/ 割り算です。 対応するアクションプロシージャは、divide() です。

∗ かけ算です。 対応するアクションプロシージャは、multiply() です。

- 引き算です。 対応するアクションプロシージャは、substract() です。

+ 足し算です。 対応するアクションプロシージャは、add() です。

= 計算の実行です。 TI の特殊なアクションプロシージャは、equal() です。 STO ディスプレイ中の数字を記憶位置に複写します。 対応するアクションプロシージャは、store() です。

RCL 記憶位置からの数字をディスプレイに複写します。 対応するアクションプロシージャは、recall() です。

SUM ディスプレイ中の数字を記憶位置中の数字に加算します。 対応するアクションプロシージャは、sum() です。

EXC ディスプレイ中の数字と記憶位置中の数字をスワップします。 対応する TI 計算器のアクションプロシージャは、exchange() です。

+/- 符号変換です。 対応するアクションプロシージャは、negate() です。

.  小数点です。 対応するアクションプロシージャは、decimal() です。

計算器のキーの用途 (RPN モード ): 数字キー、 CHS ( 変更記号 )、+、-、∗、/ および ENTR キーはすべて それぞれが示すとおりに動作します。 これら以外のキーのほとんどは、TI モードにおけるのと同じです。 相違は以下に記述します。 ENTR キーに対応するアクションプロシージャは、enter() です。

<− 数字を入力しているときに使用できるバックスペースキーです。 これで、ディスプレイ中から数字を消去します。 対応するアクションプロシージャは、back() です。

ON ディスプレイ、状態、メモリ、などすべてをクリアします。 右側のボタンでこれを押すと、計算器を ’ オフにし、 ’ プログラムを 終了します。 たとえて言えば、計算器をゴミ箱に捨てるようなものです。 状態のクリアに対応するアクションプロシージャは、off であり、 終了に対応するアクションプロシージャは、quit() です。

INV ファンクションキーの意味を反対にします。 これは、 HP 計算器における f キーと同じですが、xcalc は各キー上に 複数の記号を表示するリゾリューションはもっていません。 詳細については個々のファンクションキーを参照してください。

10^x "10.0" をスタックの 1 番上の数字乗します。 逆にされると、ディスプレイ中の数字の対数 ( 基数 10) を計算します。 対応するアクションプロシージャは、tenpower() です。

e^x "e" をスタックの 1 番上の数字乗します。 逆にされると、表示されている数字の対数 ( 基数 e) を計算します。 対応するアクションプロシージャは、epower() です。

STO スタックの 1 番上の数字を記憶位置に複写します。 記憶位置は 10 あります。 希望する記憶位置は、このキーを押してから数字キーを押して指定します。

RCL 指定された記憶位置からの数字をスタックの上にプッシュします。

SUM スタックの 1 番上の数字を指定された記憶位置内の数字に加算します。

x:y スタックの上から 2 つの位置にある数字を交換します。 対応するアクションプロシージャは、Xexchange() です。

R v スタックを下方向にロールします。 逆にされた場合は、これはスタックを上方向にロールします。 対応するアクションプロシージャは、roll() です。

blank これらのキーは、 HP10-C 上のプログラミング機能として用いられていました。 それらの機能性については xcalc では述べません。

最後に、3 つのアクションプロシージャを付け加えます。 ベルをならす bell() と、計算器の”液晶”画面で、全体の数をカットする selection()、他のクライアントから計算器の”液晶”画面へ、数をペーストする ための get_selection() です。

アクセラレータ

アクセラレータは、コマンドを入力する近道です。 xcalc は、いくつかのサンプルキーボードアクセラレータが用意されています。 ユーザがアクセラレータをカスタマイズすることもできます。 xcalc によって用意された数字のキーパッドアクセラレータは、 直観的に直すべきです。 xcalc によって定義されたメインキーボードのアクセラレータは、 以下のようになっています。

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()
+/- CHS n negate() negate()





x:y x XexchangeY()
ENTR Return enter()
ENTR Linefeed enter()

カスタマイゼーション

アプリケーションクラスの名前は、XCalc です。

xcalc は、位置、ラベル、計算器のキーの関数を指定する たくさんのアプリケーションデフォルトファイルがあります。 キーボードアクセラレータ これらのリソースは、ソースコードで指定されていませんから、 サイズやボタンの位置や、ボタンのラベルやボタンの関数を指定するために、 Athena コマンドやフォームウィジェットリソースを使って、 自分のアプリケーションデフォルトファイルを書くことによって、 カスタマイズされた計算器を作ることができます。

それぞれの計算器の foreground と background のカラーは、 視覚的に指定することができます。 TI 計算器のための、クラシカルなカラーリソースの指定は、次のようになります。 XCalc.ti.Command.background:  gray50
XCalc.ti.Command.foreground:  white For each of buttons 20, 25, 30, 35, and 40, specify:
XCalc.ti.button20.background: black
XCalc.ti.button20.foreground: white For each of buttons 22, 23, 24, 27, 28, 29, 32, 33, 34, 37, 38, and 39:
XCalc.ti.button22.background: white
XCalc.ti.button22.foreground: black

ウィジェット階層

リソースを指定するのに、xcalc を構成するウィジェットの階層を知るのは 便利です。下の表記で、インデントは階層的構造を示しています。 ウィジェットクラスの名前は、まず、続くウィジェットインスタンスの名前 によって与えられます。

XCalc xcalc
      Form  ti  or  hp    (the name depends on the mode)
              Form  bevel
                      Form  screen
                              Label  M
                              Toggle  LCD
                              Label  INV
                              Label  DEG
                              Label  RAD
                              Label  GRAD
                              Label  P
              Command  button1
              Command  button2
              Command  button3
and so on, ...
              Command  button38
              Command  button39
              Command  button40

アプリケーションリソース

rpn (Class Rpn)
rpn モードが使われるべきであることを指定します。デフォルトは、TI モードです。

stipple (Class Stipple)
バックグラウンドは点刻にすることを示します。 デフォルトは、白黒ディスプレイの場合は “ オン ” で、 カラーディスプレイの場合は “ オフ ” です。

cursor (Class Cursor)
ポインタの表現に使われるシンボルの名前です。 デフォルトは、”hand2 ”です。 アイコンの色を指定します。

色

xcalc で ti 色を使用したい場合は、 xrdb で読み込むファイルの #ifdef COLOR 部分に 以下の行を追加してください。 ∗customization:−color これにより、xcalc は、 アプリケーションのデフォルト色指定のカストマイゼーションファイル (/usr/lib/X11/app-defaults/XCalc-color) から、色を得ます。

関連事項

X(7), xrdb(1)

バグ

HP モードにおいて、5、ENTR、<- という順番で、キーを押したときに表示が クリアされなければならないが、クリアされない、というバグレポートがあります。

著作権

Copyright 1988, Massachusetts Institute of Technology. 
権利と許可の声明文については X(7) を参照のこと。

著者

John Bradley, University of Pennsylvania
Mark Rosenstein, MIT Project Athena

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026