FX-870P/VX-4 マニュアル
注意
本内容は,カシオ計算機株式会社製 VX-4同梱のマニュアルを中心にまとめたもので,別の文献に基づいた情報については,
適宜,参考文献を明示するよう心がけています。
しかしながら,情報の発表時期は古いものが多いので,カシオ計算機株式会社等の引用先に問い合わせるのは避けるようお願いします。
目次
0. 序章 FX-870P/VX-4について
FX-870P/VX-4は,PB-100系から発展した機種で,
| ① | 内部での計算精度が他社より高い仕様のため,複雑な計算・金融計算等においてより正確な計算が可能, |
| ② | 10個のプログラムエリアと10個のファイルエリア, |
| ③ | 数式機能, |
| ④ | データバンク機能, |
| ⑤ | 統計処理機能, |
| ⑥ | ラベルが使えないものの,他次元配列,最大255文字の変数名が使えるという比較的強力なBASIC, |
| ⑦ | C言語インタープリタ, |
| ⑧ | CASL, |
| ⑨ | 日立製作所のHD61700という8-bit CPU搭載で,動作周波数 910 KHz,多くの命令が10~20クロックなので,0.1 MIPS弱の処理性能ながら,ポケコンの消費電力は0.08Wで,約200時間弱の動作時間が確保されている,(計算上,0.08Wは最大定格と推定される) |
ということが特長である。
一方,短所として,
| ① | 自作の機械語プログラムの実行が正式にはサポートされなかった(隠し命令で実行可能), |
| ② | 液晶は191×32ドットで,かつ,ドット間隔が完全等周期でグラフィック表示に適しているにもかかわらず,グラフィック関連の命令がサポートされていない残念な仕様。グラフィックは機械語を通じてのみ可能, |
| ③ | BASICにおいてラベルが使えないので不便, |
| ④ | C言語によるプログラムの実行速度がBASICの1/10程度と遅く,C言語は学習用にしか使えない, |
| ⑤ | メモリを8KBしか搭載していないVX-4は,システムエリアで3.3KB程度消費するため,それなりのプログラムを実行させるには,オプションのRP-33または改造によるメモリー増設が必須, |
などが挙げられる。
1. 基本操作
1-1. 電池の交換
FX-870P / VX-4の使用する電池は,
| | 動作用電池 | : 単 3電池(アメリカ規格 AA) × 4本 |
| | データ保存用電池 | : CR1220 × 1個 ... (注) |
の2種類の電池であり,ONキー("BRK"キー)を押しても起動しない,または,ONキーを押した後に,ローバッテリーのメッセージが表示されたときに電池の交換作業が必要になる。
電池交換時の注意事項として,
- 動作用電池・データ保存用電池を同時に取り外すと,プログラム等のデータが保存されない,
- 動作用電池・データ保存用電池を同時に取り外した場合,本体裏面の・Pボタンと本体表面のALL RESETボタンを
爪楊枝のような先端の細い棒で順次押す必要がある。
が挙げられる。
動作用電池(単 3電池; AA 電池)の交換
- 本体の金属ブタのネジ 3本をコインなどで回して,金属ブタを外す。
- 金属ブタを取り外すと,本体裏にON,OFFと刻まれたスライドスイッチがあるので.そのスイッチをOFFにする。
- 電池スライドブタの▼を押しながらスライドさせて,電池スライドブタを外す。
- 古い電池を取り出し,内側の電極の刻印の指示に従って単 3電池(AA電池)を4本セットする。
- 電池スライドブタを元通りにはめる。
- スライドスイッチを ONにする。
- 金属ブタをはめて,3本のネジを締める。
データ保存用電池(CR1220)の交換
データ保存用電池の寿命は,24ヶ月なので,2年に1回交換作業が必要になる。
- 本体の金属ブタのネジ 3本をコインなどで回して,金属ブタを外す。
- 金属ブタを取り外すと,本体裏にON,OFFと刻まれたスライドスイッチがあるので.そのスイッチをOFFにする。
- スライドスイッチ近くの直径 1 inch(2.54 cm)程度の丸い押さえ板の下が CR1220をセットする場所なので,締めてある小さいネジを緩め,押さえ板を外す。
- CR1220の + 電極を上側(押さえ板をはめたとき,押さえ板に近い側)にして,電池をセットする。
- 押さえ板をはめて,小さなネジを締める。
- スライドスイッチを ONにする。
- 金属ブタをはめて,3本のネジを締める。
単 3電池(AA 電池)またはCR1220を交換する際の注意事項として,交換作業の間,スライドスイッチをOFFのままにしておくこと。
なお,例えば永らく使用しなかったなど理由で,電池の交換前にFX-870P,VX-4が"BRK"キー(ONキー)正常に起動できなかった場合,
本体裏面の・Pボタンと本体表面のALL RESETボタンを爪楊枝のような先端の細い棒で順次押していく。
ALL RESETを押した後,
| * | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
| | | | | | | |
A | l | l | | r | e | s | e |
t | / | M | e | m | o | r | y |
| | | | | | | |
| | | | | | | |
R | A | M | | : | | | 8 |
K | B | | + | | | 0 | K |
B | | | | | | | |
| * | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
* | * | * | * | * | * | * | * |
のように表示されるので,"BRK"キーを押して上のメッセージが消えると,全てのメモリーが初期化されて,保存されていたデータが全て消去された状態で使用可能となる。
なお,上記のメッセージで"RAM:"に続く最初の数字が本体のRAMの容量,後者の数字がRP-33等の増設RAMの容量であり,FX-870P/VX-4のメモリー容量を確認できる。
本体裏面の・Pボタンは,
- 強度の静電気のショックを受けた,
- 機械語を実行して,ポケコンが暴走した
などが原因で,正常に動作しなくなった場合に使用する。
・Pボタン,ALL RESETボタンは,回路図入手や解析を行っていないので,他資料からの推測であるが,
それぞれCPUのリセット,キー割り込みのようである。したがって,
- ・PボタンでCPUのリセットがかかり,CPUの初期化ルーチンを行い,CPUの最低限のセッティング(例えば,レジスタ$30,$31への定数代入など)を行うが,
RAMの初期化は行わない。
- ALL RESETボタンの押下はキーマトリックスの標準入力ルーチンで検出して,RAMの初期化ルーチンを実行する。
という2段階構成と推測している。
ローバッテリー表示
電池が消耗して電池の交換作業が必要になると,以下のようにロー・バッテリーのメッセージが表示される。
その場合は,上記のように単 3乾電池(AA 電池)の交換が必要になる。
| - | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
| | | | | | | |
L | o | w | | B | a | t | t |
e | r | y | | ! | ! | ! | |
| | | | | | | |
| | | | | | | テ |
゙ | ン | チ | | ヲ | | コ | ウ |
カ | ン | シ | テ | ク | タ | ゙ | サ |
イ | | | | | | | |
| - | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
- | - | - | - | - | - | - | - |
この表示が出ても使用できるが,約1時間後に強制的に電源がOFFになる。
その場合,ONキーを押しても,FX-870P/VX-4は電源がONにならないので,ローバッテリー表示が出たら速やかに電池交換作業を行うべきである。
電池交換せずに放置すると,電池の液漏れまたはデータ内容の破壊が起きる可能性がある。
また,プログラム中にエラーが発生して,かつ,電池が消耗している場合は,"Low Battery!!!"の表示が現れた後,
エラーメッセージが表示される。
(注)
ボタン電池の型番は,国際規格 IEC60086で定められたもので,電池の仕様が分かるようになっている。CR1220の場合,Cは電池系が二酸化マンガン・リチウム電池(公称電圧: 3.0V)であることを意味し,
Rは円形(Round)を意味する。1220は,直径 12 mm, 厚さ 2.0 mmを表す。
1-2. 電源のON・OFFとコントラスト調整
電源のON
一番右の赤い"BRK"キーがONキーも兼ねているので,このボタンを押す。正常に起動すると,CALモードとなり,カーソルが点滅して入力待ち状態になる。
押しても反応がない場合,故障以外の可能性と対処方法は以下の通り。
FX-870P/VX-4 は,関数電卓のようなCALモード以外に6個のモードがある。表1-1に各モードへの入り方とそのモードの簡単な説明を示す。
表1-1. FX-870P / VX-4 のモードおよび移行方法
| モード | 移行方法 | モードの概要 |
| CALモード | 電源ON時のデフォルト・モード。 "SHIFT"(赤い"S"キー)を押してから,"0"を押す。 | 関数電卓ライクな機能と数式記憶計算機能。 |
| データバンク/メモインモード | "SHIFT"(赤い"S"キー)を押してから,"9"を押す。 | データ(メモ)の入力と検索。 |
| F X(統計計算)モード | 一番上にある"FX"キーを押す。 | 統計計算とトレーニング・ボード(解説対象外)。 |
| F.COMモード | "F.COM"キー,すなわち,"SHIFT"キーを押してから"CASL"キーを押す。 | BASICプログラムも含めたファイルの外部装置への入出力。また,編集・削除等のファイル操作。 |
| BASICモード |
右上の"MODE"キーを押してから,"1"を押す。 CALモードで,"SHIFT"(赤い"S"キー)を押してから数字キー(0-9)を押した時,押した数字のプログラム番号にBASICのプログラムが存在していれば,それの実行を開始する。 |
BASICモード。 |
| C言語モード | "¢"キー,すなわち,"SHIFT"キーを押してから"FX"キーを押す。 | C言語モード。 |
| CASLモード | "CASL"キーを押す。 | CASLモード。 |
電源のOFF
左上のOFFボタンを押すと,電源がOFFになる。
また,入力待ち状態,すなわち,FX-870P/VX-4に計算を行っていない状態で放置していると,一定時間(数分程度)で自動的に電源が切れる。
これをオートパワーオフ機能と呼ぶ。オートパワーオフで電源がOFFになると,桁数指定等の各種モード指定はすべて解除されるが,
プログラム等のファイル,数式記憶,実体化している変数の値などは保存されたままである。
コントラストの調整
- "CONTRAST"キー,すなわち,"SHIFT"キーを押してから"MODE"キーを押す。
- LCD直下の"↑"キーでコントラスト・アップ,"↓"キーでコントラスト・ダウン。終了させたいときは,それ以外のキーを押す。
なお,これでも正常に表示できない場合,電池が切れている可能性が高い。
1-3. 特殊キー
2. CALモード
3. データバンク/メモインモード
4. FX(統計計算)モード
5. F.COMモード
6. BASICモード
fx-870p_basic_jp.html 参照。
7. C言語モード
8. CASLモード
9. 基本仕様
10. オプション
11. HD61700クロス・アセンブラ
hd61700_jp.html 参照。
12.システムエリアおよびROMコール
fx-870p_inner_info_jp.html 参照。
13. 巻末資料
13-1. 内蔵関数一覧表
./fx-870p_basic_jp.html#BUILT-IN_FUNCTION 参照。
13-2. キャラクター・コード表
./fx-870p_basic_jp.html#CHARACTER_TABLE 参照。
13-3. エラー・メッセージ一覧表
./fx-870p_basic_jp.html#ERROR_MESSAGE 参照。
13-4. ローマ字カナ変換一覧表
参照。
13-5. 予約語一覧
./fx-870p_basic_jp.html#RESERVED_WORDS 参照。
13-6. 丸め処理について
FX-870P / VX-4において,CALモードで計算したり,BASICでPRINT文を使って,例えば,
PRINT A
を実行しても,仮数部は最大10桁しか表示せず,0および±1×10-99~±9.999,999,999×1099 の範囲の数値が限界のように見えるが,
FX-870P / VX-4の数値は内部でBCDで仮数部 13桁,指数部 2桁( 0および±1×10-99~±9.999,999,999,999×1099 )で表現・計算を行っており,
変数もその精度で保存されている。
例えば,
A=1.123456789012
と入力して,
PRINT A
を行っても,
1.123456789
までの精度でしか表示できない(SET文は,表示桁数を落とすだけである)。
しかし,PRINT USING文を使って,
PRINT USING"#.############";A
を実行すれば,
1.123456789012
が出力されて,内部精度が13桁まであるのを確認できる。
また,
PRINT USING"#.###############";1/9
を実行して,
0.111111111111100
と表示されることからも内部精度が13桁であることを確かめられる。
FX-870P / VX-4は,デフォルト(初期化時)および,MODE10によって,四則演算後の丸め処理を行う。
丸め方法は,
- 11~13桁の数値が 049以下のとき,切り捨て,
- 11~13桁の数値が 950以上のとき,切り上げ
である。また,MODE11によって,四則演算後の丸め処理を無効にできる。
丸め処理の確認は,まずMODE10によって丸め処理を有効にして,
A=1.123456789049
PRINT USING"#.############";A
と連続実行する。このとき,A=1.123456789049が表示され,
定数の代入は,四則演算後の丸め処理が有効でも,丸め処理されないことを確認できる。
次に,
A=A*1
PRINT USING"#.############";A
と連続実行すると,
A=1.123456789000
と表示されて,四則演算によって丸め処理が行われたことを確認できる。
ここで,丸め処理の閾値近辺での動作例をまとめたものを,以下の表に示す。
表. 四則演算後の丸め処理有効時での計算結果例
(FX-870P / VX-4)
Aへの代入値 | MODE10後の,A=A*1によるAの値 | 丸め処理 |
| 1.123456788049 | 1.123456788000 | 切り捨て |
| 1.123456788050 | 1.123456788050 | 丸めなし |
| 1.123456788949 | 1.123456788949 |
| 1.123456788950 | 1.123456789000 | 切り上げ |
ここで,切り上げの効果を明確にして混乱を避けるため,表の計算前に代入する数値の小数点第9位の値は8にしてある。
また,FX-870P / VX-4が丸め処理が有効か無効かは,システムエリアのRNDFL(旧名:MODED, アドレス:&H1133)の値で確認できる。
このアドレスの値が,0で四則演算時の丸め処理が有効,1で四則演算時の丸め処理が無効である。具体的には,
DEFSEG=0
PEEK(&H1133)
で,内容を確認できる。ただし,それまでに特にDEFSEG命令を行っていなければ,DEFSEG=0 というコマンドは不要である。
数値変数のフォーマットの詳細については,12. FX-870P / VX-4 内部情報のA-2. BCD 浮動小数点フォーマットと内部形式を参照のこと。
最後に,後継機のFX-890P / Z-1では,丸め方法が異なっており,
- 11~13桁の数値が 007以下のとき,切り捨て,
- 11~13桁の数値が 990以上のとき,切り上げ
と丸め条件が厳しくなっている。FX-870P / VX-4より前の機種の丸め条件については,著者がそれらの機体を持っていないため,不明である。
(注)
シャープのポケコンの場合,PC-E650等のPC-E500系の機種が,倍精度をサポートして演算24桁で格納20桁が可能なものの(基本は単精度で従来とほぼ同じ),
ほとんどの機種が演算12桁で格納10桁である。11桁と12桁目は四捨五入され,変数値としてメモリーに格納する8バイトのうち,最終バイトは0であり情報が損なわれている(PC-1350,PC-G850Vで動作を確認済み)。
そのため,シャープのポケコンは複雑な計算をすると,誤差を蓄積しやすい仕様になっている。カシオのポケコンでは,上述のように基本的に13桁の精度が保存されるのとは対照的である。
したがって,計算精度という点では,シャープよりカシオのポケコンの方が優れているようである。
123