FX-602P Page

English version

 ここは、カシオ(CASIO)製のプログラム電卓、FX-602Pに関するページです。


この色が好きだったなあ…
2008/05/16
リンクratscatsさんのページを追加しました。FX-602P,FX-603Pも掲載されている古いCASIOのカタログを見ることができます!(ratscatsさん、お知らせ感謝です。)
2008/04/20
Tossyさんのページの移転に伴い、リンクを修正しました。(Tossyさん、お知らせありがとうございました!)
2008/03/21
リンクFX-602P Simulator project他を追加しました。待望のFX-602Pシミュレータの開発がスタートしたようです!画面デザインを見ただけで感動です。これは目を離せません。
counter

もくじ Index


FX-602P FAQ

FX-602Pとは?
 1981年3月に発売された、カシオ(CASIO)製のプログラム電卓です。驚異的なロングセラーで、少なくとも1989年頃までは販売されていたようです。ちなみに、当時の定価は¥29,500でした。

どんな機能があるの?
 20年前の電卓とはとても思えないほどの高機能です。当時のパンフレットにも「新世代の会話型プログラム電卓」とあります(笑)。以下に、その機能を列挙してみます。


(*1) 別売のカセットインターフェース FA-1かFA-2が必要です。

どんなプログラムが組めるの?
 アセンブラライク、と形容される独自の言語体系を持っています。関数電卓で数式を入力するのとほぼ同じ感覚で、そのままプログラムが組めます(もう少し詳しい説明は,すぐ下をご覧ください)。最初はとっつきにくいかもしれませんが、慣れてしまうと手放せなくなります。私は以前、電車に置き忘れて紛失してしまい、迷わずもう1台買いました。その数年後にまた紛失して以来、HP-100LXなどに浮気していたのですが、10年以上のブランクを経て、とうとう最近3台目のFX-602Pをオークションで手に入れました。(うろ覚えですが、4台目だったかもしれません。)

どんなコマンドがあるの?
 コマンドを簡単な表にしてみました。
コマンド解説(関数は除く)
命令 機能
Minxxメモリーxx(xx=00〜19, F, 1F)に現在の値(xレジスタ)を代入する
MRxxメモリーxxを参照する
M+xxメモリーxxに現在の値を足す
M-xxメモリーxxから現在の値を引く
X←→Mxxメモリーxxと現在の値を交換する
x=0現在の値が0ならば次の命令を読む。そうでなければ,次の命令をスキップする
x>=0現在の値が0以上ならば次の命令を読む。そうでなければ,次の命令をスキップする
x=F現在の値がメモリーF(MRF)と等しければ次の命令を読む。そうでなければ,次の命令をスキップする
x>=F現在の値がメモリーF(MRF)以上ならば次の命令を読む。そうでなければ,次の命令をスキップする
GOTOxラベルx(x=0〜9)へジャンプする
LBLxGOTOx文用のラベル
GOSUBPxプログラムPx(x=0〜9)へ行き,終了後戻ってくる
HLT実行を中断し,EXEが入力されるまで待つ(キー入力可能)
PAUSE実行を約1秒停止する(キー入力可能)
"..."...を表示する(ALPHA文)。#で現在の値,ARxxでメモリーxx(xx=00〜19, F, 1F)の内容を表示することもできる。
ISZメモリー00(MR00)の内容を1増やし,その結果MR00の値が0になったときは,次の命令をスキップする
DSZメモリー00(MR00)の内容を1減らし,その結果MR00の値が0になったときは,次の命令をスキップする
IND MRxxメモリーxxの内容が示すメモリーの値を参照する(いわゆる間接参照)。例えば,MR00=3, MR03=5の場合,IND MR00は5になる。
IND GOTOxメモリーx(x=00〜09)の内容が示すラベルへジャンプする。例えば,MR00=3のとき,IND GOTO0はLBL3へジャンプする。
IND GOSUB(0)メモリー00の内容が示すプログラムを呼び出す。例えば,MR00=3のとき,IND GOSUB(0)はP3を実行し,戻ってくる。


マニュアルを読んでみたいのですが?
 Google等の検索エンジンで探せば、運がよければPDFファイルが見つかるかもしれません(ただし英語版)。

兄弟機は?
 FX-602Pの元になった、FX-501P/502Pという関数電卓があります(FX-502Pで定価¥24,800)。表示が7セグメント方式でアルファベットが表示できない、プログラム容量がそれぞれ128/256ステップしかないという違いはありますが、基本的にはよく似ています。また、FX-602PでいうMR10〜MR19、MR1Fというメモリーは、それぞれMR.0〜MR.9、MR.Fとドット付きで入力するようになっています。FX-502Pについては、『プログラム電卓 FX-502P』というこちらのページが詳しいです。

 また、FX-601Pというのはプログラム容量が128ステップしかないバージョンです。メモリはMR00〜MR09、MRFの11個しかないため、MR00は実際にはMR0と1桁で入力するようになっていたはずです。その他の機能はFX-602Pと同じです。

 FX-702Pというのは、BASICを採用したポケットコンピューターで、当時大ヒットしましたが、FX-602Pとはまったく違う機械と考えてよいでしょう(FX-702Pの倍速改造についてはこちら)。ただし、カセットインターフェースFA-2は共通で使えました(FA-2はFX-501P/502Pにも対応)。この後、BASICを搭載したポケコンは複雑な進化をたどりますが、それはまたFX-602Pとは別の話です。(^^) ちなみに、FX-602PはFX-702Pが消えた後もカタログに長く載り続け、いつしかFA-2はFX-602P用の専用オプションとして売られることになるのでした。ちゃんちゃん。(参考資料:当時のカタログ)

 そして、1990年にはFX-603Pという、長く待ち望まれたFX-602Pの後継機種が発売されました(定価¥19,800)。表示が2行になり、プログラム容量が6144ステップ,メモリーが110個(どちらも固定)と、格段に増えているのが大きな特徴です。また、FA-6S(定価¥14,800)という別売のインターフェースを使って、パソコンとの接続も可能です。FX-603Pについては、CASIO FX-603Pの部屋というページがお勧めです。

どうしたら手に入りますか?
 新品を手に入れるのはほぼ絶望的なので、中古を探すしかありません。Yahoo!オークションの電卓あるいはポケットコンピュータで時々出品があるようです。また、FX-603Pも既にCASIOのホームページのカタログから消えているようですが、お店によってはまだ新品の在庫を持っているところがあるようです。例えば秋葉原では、つかさ無線若松通商でFX-603Pを販売していましたし、秋葉原駅前にあるサトームセンのカシオショップでは、メーカー再生品(袋に入ったパッケージ)を売っていることがありました(以上2000年6月現在)。また、FX掲示板にはAtsutaさんによる名古屋のショップに関する情報がありますので、興味ある方はそちらをご覧ください。下のリンクコーナーにもFX-603Pを扱っているショップの情報があります。

周辺機器は?
 FX-602Pで使えるオプションとしては,FA-1/FA-2(カセットインターフェース)とFP-10(プリンター)があります。
 FX-603Pのオプションには,カセットインターフェースFA-6S(Sは○の中に入っている)があります。なお,FA-6という"S"のついていないものとの違いは,FA-6SはVCCI基準(電波障害基準)に適合するように対策をとったものだそうです(
FX掲示板での,みゅさんの書き込みによる)。他のFX-603P用の周辺機器としては,FP-40(プリンター; 型番うろ覚え)があります。

コントラストを調整できますか?
 FX-603Pにはコントラスト調整用のダイヤルがついていますが、FX-602Pではコントラストの調整はできないようです。ただ、FX-602Pでもキーの組み合わせでコントラストを調整可能という情報もあり、この件についてご存知の方は、ぜひ情報をお寄せください。なお、こちらのページには、断片的ですがFX-602P内部のポテンショメータを調整することでコントラストを調整できたとの記述があります。


FX-602P クイズ [Quiz]

 ここでは,FX-602Pに関する問題を出します。答えがわかった方は,メールでお知らせください。

Q.1 「いくつ増える?」
 P9GSBP9 GSBP9 ISZというプログラムを入れて,これを実行させると,MR00の値はいくつ増えるでしょうか?(ただし,機種によって解答は異なります。)

Q.2 「1/10にする」 (ヒント)
 MR00に0〜99999の任意の整数が入っています。この状態から,MR00の内容を1/10にするプログラムを書いてください。例えば,最初の値が11なら,1.1になるようにしてください。ただし,普通に書くと,MR00 ÷ 10 = Min00 で6ステップかかりますので,工夫して5ステップに収めてください。なお,他のメモリの内容は不定とします。(FX-502P/602P/603Pで動作確認済み)

Q.3 「ステップ半減」
 再び省ステップ問題です。MR00に0〜99999の任意の整数が入っています。この状態で,MR00 × 20 + 100 = Min00 という,MR00の内容を20倍して100を加え,再びMR00に代入するという10ステップのプログラムがあります。これをなんとか工夫して,5ステップに収めてください。

Q.4 「何をするプログラム?」
 下記のプログラムは何をするプログラムでしょうか?

SAC M-09 LBL0 XD MR09 x>=0 x=0 GOTO0 MR07

Q.5 「ビッグになろう」
 RUN Mode (MODE 1)にして、MAC AC 2.5と入力してください。この状態でP0を実行して、実行結果ができるだけ大きな数になるようなP0を考えてください。ただし、P0は3ステップ(P0自体も含むので、実質2ステップ)とし、以下の使用は禁止です。 エラー表示は0とみなします。私の記録は10^15以上ですが、もっと大きな解が見つかりましたら、ぜひお知らせください。

FX-602P プログラミングテクニック [Programming Tips]

 ここでは、プログラムを作る上で知っておくと便利なテクニックを紹介します。なお、これらは1980年代からよく知られていたテクニックをまとめたもので、私が発見したものとはかぎりません。
メモリーの使い方
 標準状態ではMR00〜MR19、MRF、MR1Fの22個のメモリが使用できます。これらのメモリーは機能的には等価ではありません。それぞれのメモリで何ができるか/できないかを知っておけば、プログラムの省ステップや高速化に役立ちます。

各メモリーの機能一覧表
メモリ 比較
x=F, x>=F
カウンタ
ISZ/DSZ
統計計算
SAC
間接呼出
IND GOSUB
間接ジャンプ
IND GOTO
間接参照
IND MR
被間接参照
MR00××
MR01〜MR06××××
MR07〜MR09×××
MR10〜MR19×××××
MRF×××××
MR1F××××××


 上の表を見ると、x レジスタとの比較の対象として使えるMRFや、判定付のインクリメント/デクリメント可能なMR00を除くと、最も高機能なのはMR07〜MR09であることがわかります。この3つのメモリーは統計処理に割り当てられており、SACの一命令で0にクリヤーできるため、何かと便利です。さらにその次に高機能なのはMR01〜MR06で、間接ジャンプの際に行き先変数として指定できるという特徴があります。そしてMR10〜MR19と続き、最も機能が制限されているメモリーはMR1Fということになります。このMR1Fは間接参照の対象にもできないので、後述の定数としての利用など、使い所を考えて使用しましょう。

プログラムの省ステップ化
 最大で512ステップしかないため、プログラムを組む際には如何にステップを減らすかが大切になります。そのためにいろいろな小技があります。

定数代入
 プログラム中に10という数字が多く出てくる場合、いちいち"10"と書いていたのでは、それだけで2ステップ消費します。そこで、メモリーを一つ犠牲にして、たとえば"10 Min1F"としてMR1Fに10を入れておけば、後は"MR1F"と1ステップで10の代用ができます。なお、これもよくあることですが、初期化の際に他に1を代入するメモリーがある場合、これを利用して、"1 Min01 10^x Min1F"などと書けば"1 Min01 10 Min1F"と書くよりも1ステップ減らすことができます。同様に、100の代わりに"2 10^x"、120の代わりに"5 x!"とすれば1ステップ減らせるなど、組み込み関数をうまく利用することも効果的です。

xレジスタ・メモリ交換命令
 X←→Mで、xレジスタとメモリの内容を交換することができます。この命令は、メモリ代入とxレジスタの変更という、いわば一度に二つの働きを持っているので、うまく使えば省ステップに大変役立ちます。例えば、MR00の内容を(1 - MR00)の値に置き換えたい場合を考えてみましょう。これを素直に書くと、"1 - MR00 = Min00"と5ステップかかりますが、X←→Mを効果的に使って"1 X←→M00 M-00"と書けば僅か3ステップで実現できます。他にも、リンクゲームのキー入力の判定や台札変更にも、このレジスタ・メモリ交換命令が効果的に使われていますので、興味ある方はそちらもご参照ください。

途中演算
 計算式の途中のxレジスタの値を利用することで、ステップ数の削減に役立てようとするテクニックです。例えばMR00から9を引いたものに9を掛けた値を知りたいとします。これを素直に書くと、"(MR00 - 9) × 9 ="で8ステップかかります。さらに、カッコの省略を使うと、"9 × (MR00 - 9 ="で7ステップで書けますが、これ以上少なくすることは可能でしょうか?実は、途中演算のテクニックを使うと、(MR00の値を壊してもいいという条件つきですが) "9 M-00 × MR00 ="とわずか5ステップで実現できるのです。

 上記の例は特殊な例にも見えますが、xレジスタの利用のやり方には、これ以外にもいろいろな可能性が考えられます。ステップを減らしたい場合には、「何とか途中の値をうまく利用できないか?」と考える癖をつけておくと役に立つと思います。

1ステップ割算
 上のメモリーの使い方でも書きましたが,MR07MR09は統計用のメモリーですからいろいろと便利な機能があります。平均x~や標準偏差σn は1ステップで参照できる数値で,それぞれMR07MR09と次のような関係があります。

平均 x~MR08 ÷ MR09
標準偏差 σn = ((MR07 - MR08^2 ÷ MR09MR09)^(1/2)
推定標準偏差 σn-1 = ((MR07 - MR08^2 ÷ MR09)÷(MR09-1))^(1/2)

 まあ,標準偏差が役に立つケースは少ないかもしれませんが,平均の方は1ステップで割算ができるので,省ステップに使える場合があります。つまり,統計計算とかと関係なく,プログラムでA÷Bという値が出てくるのであれば,MR08MR09を割り当てるメモリの使い方をして,x~の1ステップでA÷Bの値を参照しようということです。イコール()も含めると3ステップも減らせる場合があるので,覚えておいて損はないかもしれません。
特殊なテクニック
 ここでは、さらに細かいテクニックについて記述します。なお、いずれも動作確認はFX-602Pのみで行っています。

〜以下の判定
 組み込み命令のx>=0x>=Fを使えば、「〜以上」の判別ができますが、"x>=0 x=0"あるいは"x>=F x=F"と判定文を2つ組み合わせることにより、「〜以下」の判定も行うことができます。

not判定
 例えば、x=Fで*ない*ときにLBL2へ分岐させたいとします。こんなときに"x=F GOTO1 GOTO2 LBL1"というようなプログラムを書いていないでしょうか?"x=F x=0 GOTO2"というように書けば、無駄なラベルを使わず、ステップも減らすことができます(ただし、MRFが0でないときに限る)。要は、成立しない判定文をショートGOTO文の代わりに使って、判定を逆転させたわけです。下の素数表示素因数分解のプログラムでこれを利用していますので、参照してみてください。

and判定
 例えば、MR01とMR02がどちらも0以上であるかどうかを判定するには、"MR01 x>=0 MR02 x>=0"とすればよいです。同様に、どちらも0かどうかを調べるには"MR01 x=0 MR02 x=0"とします。基本的には前半の条件と後半の条件が同じ時に使えますが、異なる場合でも、後半の条件が前半の条件に含まれる場合には、"MR01 x>=0 MR02 x=0"というように、同様に書くことができます。

or判定
 上のand判定と似ていますが、MR01とMR02のどちらかが0であるかどうかを判定するには、少しだけ変えて,"MR01 x=0 x=F MR02 x=0"とします。ここで,MRFは0でなければ任意で,要はnot判定でも使った,成立しない判定文をショートGOTO文として用いているだけです。実際にor判定になっていることを確かめてみてください。
 実は,上の例に限れば,MR01 × MR02 = x=0と書いてもステップ数は同じです。しかし,or判定の方が,応用は効きます。例えば,x=0の代わりにx=Fの場合にも使うことができます(この場合,x=0を成立しない判定文に使います。←MRFが0でないときに限りますが)。また,or判定では前半の条件と後半の条件が同じ時に使えますが、異なる場合でも、前半の条件が後半の条件に含まれる場合には、"MR01 x=0 x=F MR02 x>=0"というように、同様に書くことができます(MR01=0か,MR02>=0の時に,この判定文は成立)。and判定と条件が逆転することに注意してください。

範囲判定 (0以上かつMRF以下、0以上かつMRF未満)
 ある値が0以上MRF以下(ただしMRF>=0とする)の範囲に入っているかどうかは、"x>=0 x>=F x=F"と判定文を3つ並べれば調べることができます(確かめてみてください)。また、0以上MRF未満(ただしMRF>0とする)の場合には、少し変えて"x>=0 x>=F x=0"とします。

間接ジャンプ
 間接ジャンプ(IND GOTO)は、メモリ内の数値を(仮想的に)ABS、INTした後の数値を使って飛び先を決定し、数値が10以上の場合には、最初の桁の数字と同じラベルにジャンプします。この特性をうまく利用して、場合分けに使うことができます。また、間接ジャンプの際に対応するラベルがない場合、IND GOTOは無視され、次に処理が移ります。この特性を知っておくと、多くの場合にラベルを1つ省略して1ステップ減らすことができます。

プログラムの配置
 サブルーチンやジャンプの場合、行先は現在の位置から逆方向に検索されます。そこで、プログラムを入力する場合には、よく使うサブルーチンほど先に入力した方が実行速度が速くなります。また、ジャンプの場合、この特性を利用してプログラムの前と後の方で、それぞれのループに同じラベルを使うことできます(いわゆる二重ラベル)。二重ラベルの例としては、例えば「麻雀」P0中でのLBL0を参照して下さい。

サブルーチンループ
 変数の代わりにスタックを使ってループを作るテクニックです。試しに,P9にGSBP9 ISZというプログラムを入れて,実行してみてください。実行後,MR00の値が10増えているはずです(FX-603Pでは,スタックが増えているので,20増えるはずです)。FXシリーズでは,サブルーチンのスタックが一杯の場合には,GOSUB文を無視するようになっています。そのため,スタックオーバーフローを起こさず,決められた数でループが止まるのです。したがって,このテクニックを使う限り,ループ回数は固定(FX-602Pで10)ですが,プログラムの中から呼ぶ場合には既に使用しているスタックの数だけ小さくなります。例えば,P0から呼ばれる場合には9回のループになります。

 実際に,このテクニックが何の役に立つかというと,あまり役に立ちません(^^;。しいていえば,表示時間の調整などにいいかもしれません。実際,「麻雀」の中でそのような使い方をしています。

09ループ
通常、ループ変数にはISZ,DSZが利用できるMR00か、値を直接比較することができるMRFを使うことが多いですが、特殊なケースではMR09をループ変数として使うことも考えられます。MR09を使う場合、XDまたはXDELでMR09をインクリメントまたはデクリメントに利用します。この時、MR07やMR08も値が変わってしまいますが,上の方にあるクイズの4問目のように、むしろこの点を積極的に利用できる例もあります。

プログラム領域全てを変数に割り当てる (FX-602P only)
 FX-602Pでは、デフォルトでプログラム領域が512 step、変数が22個ですが、MODE . xx (xxは20〜80)とすることによって、プログラム領域の一部を追加の変数に割り当てて使うことができます。例えばMODE . 80のとき、プログラム領域が32 step、変数が88個になりますが、ある裏技(*1)を使うとプログラム領域全てを変数に割り当て、プログラム領域が0 step、変数が92個の状態にすることもできます。もし、このような状態になってしまっても、MODE . 20とすることで通常の状態に戻すことが可能です。

*1 乱暴な方法なので、敢えて非公開にしておきます。

隠れキャラクター (FX-601P/602P only)
 「隠れキャラクター」といっても、ゲームの話ではありません(笑)。ALPHA文の中で次のように入力してみてください。"MODE INV EXE BST" いかがでしょうか?小さな点が表示されたことと思います。次に、"MODE INV EXE FST"と入力してみてください(MODEの代わりにARでも可)。今度はただのスペースが表示されましたね。実は、この2つがFX-602Pの隠れキャラクターなのです。どちらの文字も11桁以上表示しても、一時停止しないという特徴があります(この2つ以外の文字が含まれているとダメです)。下のミニプログラムの中に、これを利用したしし座流星群のプログラムがありますので、参照してみてください。

隠れキャラクター [追加版] (FX-601P/602P only)
 まずは、次の画面写真をよく見てください。

一見、どうということもない文字ばかりですが…
FX-602Pの特殊記号

 これは、普通のALPHA文の実行結果をデジカメで撮影したものですが、FX-602Pをお持ちの方はご存じの通り、ALPHA文では通常表示させることができない文字ばかりです(ちゃんとRUN MODEになっていることにも注目)。これらの隠れキャラクターは、ある特殊な手順により入力することができます。なお、音声ファイルが下記にありますので、FA-1かFA-2をお持ちの方は実際に試すことができます。

 この他にも、こんな隠れキャラクターがあります。

ゲームにも使えるかな?
上付き文字シリーズ

Small Caps風
下付き文字シリーズ

さらに、こんな不思議な文字を表示することもできます。

クリンゴン語??
謎の文字列

最後の文字列は左から数字の0〜9に対応するのですが、これを判別できるようになるには、ちょっと訓練がいりそうです。(^^; これらの隠れキャラクターは、通常の文字と混在して表示させることも可能ですので、FX-602Pの表現力をこれまでより少し高めることができるかもしれません。これで、いろんな文字や記号を表示できることで当時有名だった、PB-100ともいい勝負か?!

 ただし、これらの隠れキャラクターには難点もあって、入力するのにかなり面倒な手続きを必要とします。(もし、簡単なやり方をご存じの方は、ぜひお知らせください。よろしくお願いします。)

 なお、今のところ、FX-603Pでこれらの隠れキャラクターを入力することは不可能のようです。

(2005/06/26)  上の隠れキャラクターを表示するプログラムを音声ファイル(MP3)で公開します。FX-602P+FA-1orFA-2をお持ちの方は試してみてください。プログラムのロード方法ですが、例えばP0にロードするには、MODE 3にして、INV LOAD P0 EXEと入力します。

※隠れキャラクター表示プログラム (右クリックで保存してください)

FX-602P ベンチマーク [Benchmark]

 私は2台のFX-602Pを所有していますが、あるとき、2台のマシンの実行速度に微妙な差があることに気がつきました。最初はバッテリーの残り容量の差が影響しているのかとも思ったのですが、バッテリーを入れ替えても結果が変わらなかったので、どうも機械自体に差があるようです。以下に私の試した結果について報告しますので、よろしければFX-602Pをお持ちの方は、一度試していただければ幸いです。(ただし、プログラムと変数をいったんクリアする必要があるので、必ずバックアップを取って試してください。)

FX-602P用ベンチマークプログラム (単純な1000回のループ)
P0 AC MAC DEG 3 10^x Min00 LBL0 "AR00" DSZ GOTO0 AC  …14 steps (P0含む)


※上のプログラムを入力する前に、MODE 3 inv MACであらかじめ全てのプログラムをクリアし、MODE .20で変数領域をデフォルトにしておいてください。

 実行方法ですが、MODE 1にしてP0を押すだけです。数字が減っていきますので、0になるまでにかかる時間をストップウォッチなどで計測してみてください。私の手元のマシンの結果を示します。

実行結果
機種 かかった時間
FX-602P その1 (Janta)2分44秒〜45秒
FX-602P その2 (Janta)2分49秒〜50秒


さすがに20年以上前の電卓だけあって、時間がかかりますね。(^^; よろしければ、みなさんのFX-602Pで実行した結果も
メールでお知らせください。その際は、メールの題名になるべくFX-602Pを含むようにしてくださると助かります。


音声ファイルの扱いについて [Wave Files Handling]

 FX-602PはFA-1またはFA-2、FX-603PはFA-6Sを使って、プログラムを音声として保存・呼出することができます。もちろん、FX-602Pが発売された当初はカセットテープレコーダーを使うのが一般的だったのですが、今ならコンピュータに*.wavファイルとして保存するのがお勧めです。(FX-603P + FA-6Sの場合には、クロスケーブルでコンピュータにテキストで送る方が便利だと思います。)

*.wavファイルとして保存する際の注意点
 なお、MP3 Playerをお持ちの方は、*.wavファイルを*.mp3に変換して、転送しておくと便利かもしれません。パソコンがなくてもカセットインターフェースとMP3 Playerがあれば、出先で別のプログラムを呼び出すことができます(参照: 小道具間の連携図)。ただし、「ピーゴロゴロゴロ」というのをそのまま耳で聞いてもあまりうれしくないと思うので(笑)、通常聴く音楽とは別のメディアに保存しておいた方がいいでしょう。


音楽演奏させてみよう! [Let's Play Music!]

 FX-602Pは,FA-1かFA-2を接続して音楽演奏することができます。プログラム電卓になぜこのような機能がついているか,今となっては頭をひねる部分もありますが(笑),ついている機能ならば遊んでみなければ損と言えましょう。また,これは数少ない,FX-602PがFX-603Pより優れている点でもあります。ちなみに,この音楽演奏機能は,FX-501P/502P,FX-601Pでも利用できます。

 インターフェースには,FA-2よりサイズが小さいFA-1の方がおすすめです。
PROGRAMMING CALCULATOR CASIO FX-502PというページにFA-1に圧電スピーカを内蔵するやり方が書いてあります。私もこのページに従ってFA-1を改造してしまいました。これなら,すぐ音楽演奏結果が聴けるので,デバッグしやすくなります。改造は非常に簡単な上,部品代も私の場合,スイッチ(90円)とスピーカ(80円)の合計170円しかかかりませんでした。FA-1のお持ちの方は,試してみる価値がありそうです(もちろん,自己責任でお願いします)。

 音楽演奏の機能としては単音,3オクターブしかないので,かなり貧弱です。また,音楽モードでは基本的に通常の意味で変数が使用できないので,ループ,条件判断など通常のプログラム処理はかなり困難です。(しかし,まったく不可能というわけではありません。)

 実例については,ライブラリの音楽関係のところを見ていただいた方がいいでしょう。問題は実用になるかどうかですが,例えばカラオケで音がとりにくい部分の練習に使うとか…。ダメですか?(^^;


FX-602P ライブラリ [Program Library]

自作プログラム集

 いずれもFreewareです。動作に責任は持ちません。(^^; 特に、FX-603Pで動作するかどうかは不明です。なお、ステップ数には、P0P1などプログラムエリアのナンバー自体も含んでいますので、チェックの際はご注意ください。また、FA-1やFA-2をお持ちの方用に、音声ファイル(*.wav)も用意しました。ただし、音声ファイルは数百キロバイト〜2メガバイトとサイズが大きいので、ご注意ください。また、再生する音源ボードとの相性によっては、うまく読み込めない場合もあるようです。その時は、諦めて手でプログラムを入力してください。
(C) 1985-2001, K. Miyahara

ゲーム、ジョークなど

プログラム名 説明 リスト ステップ数 音声ファイル 更新日
麻雀  雑誌PiO(工学社刊) 1986年9月号に掲載された拙作「麻雀」を14年振りにバージョンアップしました!!FX-602Pの限界に迫ります!?(FX-603P対応版もあります。) 詳細
(Ver 11.5)
510 なし 2001/05/26
99Game  これも雑誌PiO(工学社刊) 1985年10月号に掲載された、拙作のトランプゲームです。5人の中であなたは見事勝ち残ることができるでしょうか?(残りの4人はFX-602Pが代打ちします。) 詳細 430 なし 2000/10/03
リンクゲーム  ゲームセンターによくある、1組のトランプを使って遊ぶゲームです。P0を押すと、4枚のカードが表示されます。最初に1枚選ぶと、選んだ札が台札になり、自動的にカードが1枚補充されます。次からは、スーツか数字が台札と同じカードしか選ぶことができません。条件に合ったカードを選ぶと、そのカードが台札になって、あとはカードがなくなるまでこれの繰り返しです。台札に合うカードがなくなったら終わりです。ハイスコア、平均スコアの表示機能付きです! 詳細 239 1.1MB 2000/06/22
しし座流星群  次々と流れる流星を表示するプログラムです。幻に終わったしし座流星群のことを思い出して、作ってみました。リスト中の"MODE INV EXE FST"(スペースが表示される)と、"MODE INV EXE BST"(小さな点が表示される)と入力して下さい。 P0 .2 MinF LBL0 RAN# x>=F ";@" x>=F GOTO0 ";・" GOTO0 18 0.3MB 2000/06/13
ブラックボックス  2人以上で遊ぶゲームです。出題者は3ステップ以内(実質2ステップ以内)で関数を作ります。解答者は適当な数値を入力してP0を押し、出力を見て関数を当てます。役割を交代して行い、なるべく少ない回数で当てた方が勝ちです。(あまり難しい関数を入れても面白くないので、適当に制限をつけましょう。逆に慣れてきたら、ステップ数の制限を緩めてください。) (例) P0 √ FRAC 3 なし

数学

プログラム名 説明 リスト ステップ数 音声ファイル 更新日
切符くん  4つの数字を使って10を作る…誰でも一度は聞いたことのある有名なパズルですね。このプログラムは独自のアルゴリズムを用いて、入力した4つの数字に対して10を作る全ての解を数式で教えてくれます。しかも、ごくわずかの例外を除き(現在対応中)、独立でない解は表示しないというおまけつきです。つまり、例えば1234の場合、1+2+3+4=10という解を表示したら、1+2+4+3=103+2+4+1=10などの解をさらに表示することはありません。さあ、あなたは6889(解2つ)をFX-602Pより早く解けるか!? 詳細
(Ver 1.05)
457 なし 2000/10/27
素数表示  素数を求めるプログラムです(ただし奇数のみ)。実行すると、3から順番に素数を表示していきます。 P0 3 Min1F LBL0 " AR1F " LBL1 2 M+1F 3 MinF LBL2 MR1F ÷ MRF = x>=F x=0 GOTO0 FRAC x=0 GOTO1 2 M+F GOTO2 26 0.4MB 2000/06/12
素因数分解  数字を入れてからP0を押すと、素因数に分解してくれます。付属のライブラリ集にあるほぼ同機能プログラム(100steps)の半分以下のサイズに収まりました。 P0 Min1F 2 MinF " AR1F = " LBL0 MR1F ÷ MRF = x>=F x=0 GOTO9 Min01 FRAC x=0 GOTO1 2 x=F 1 M+F GOTO0 LBL1 MR01 Min1F "; ARF × " GOTO0 LBL9 "; AR1F " 39 0.4MB 2000/06/13

音楽

プログラム名 説明 リスト ステップ数 音声ファイル 更新日
音楽演奏設定  FX-602Pは音楽演奏機能を持っていますが,その際,メモリに各音程を示す特定の数字を設定する必要があります。これをいちいち手で入力するのは大変なので,各メモリに数字を代入するプログラムを作ってみました。また,使いやすいように,MR01〜07,08〜14,15〜19が,それぞれ低い音のド〜シ,通常のド〜シ,高い音のド〜ソとなっています。つまり,半音はあまり使われないので,スキップして登録するようにしてあります(^^)。余っているMR1FやMR00に半音を登録するときは,隣接する二つの音の相乗平均をとってください。例えば,MR1Fにファ#を設定するには,MR11 × MR12 = √ Min1F とします。あと,曲のテンポ設定(MRF)ですが,忘れやすいので,1 MinFとか入れておいた方がいいかもしれませんね。
 ※MUSICモードでは実行しても,正しく動作しません。必ず通常(CAL)モードで実行してください。
P9 19 Min00 LBL0 263 ÷ 1.06 x^y (12 ÷ 7 × MR00) INT = IND Min00 DSZ GOTO0 28 なし 2001/01/30
威風堂々(一部)  エルガー作曲の「威風堂々」から,私の好きなフレーズだけ取り出したものです。楽譜を見たことがない上に,原曲をしばらく聴いていないので,かなり適当です。期待しないで聴いてください。FX-602Pでこんなこともできるというサンプルとして公開します。(^^;
上の設定プログラムの最後に,1 MinF MR04 × MR05 = √ Min1Fを追加し,CALモードで実行した後,MUSICモードにしてこのプログラムを実行してください。
P0 M-08 Min07 Min08 MR09 M-06 M-05 M-04 Min03 Min04 MR05 M-02 - MR02 MRF M-03 Min1F Min05 MR06 M-09 M-05 M-11 Min11 MR10 Min09 M-08 - MR08 MRF 29 実行結果 (400KB) 2001/01/30


FX-602P 関連リンク集 [Links]

 検索エンジン等を使って、FX-602P関連のリンクを集めてみました。なお、リンクに問題がありましたら、お知らせくだされば、直ちに削除・修正いたします。
If you have a problem about following links, please let me know. I will fix or remove the link as soon as possible.
メーカー等 (私はここに挙げている企業と何ら関係はありません。)
  • カシオ計算機株式会社
  • Yahoo!オークション (電卓)(ポケットコンピュータ) - たまにFX-602PやFX-603Pが出品されることがあるようです。
  • パソQ - オンラインショッピングでFX-603PとFA-6Sを買うことができるようです。
  • サワダデンキオンラインショップ - 通信販売でFX-603Pを扱っているようです。
  • NTT-X Store - 2001年2月現在,FX-603Pを取り扱ってます。
  • 情報・解析
  • CASIO FX-603P 用カセットインターフェイスの製作 - (2006/10/17 追加、2008/04/20更新) Tossyさんのページに自作インターフェイスの記事が追加されました。(Tossyさん、お知らせありがとうございました。)
  • CASIO FX-603Pの部屋 (2003/11/10移転先更新) - 自作のプログラムや小技集、ライブラリのバグ修正、ミニ解析などがあります。FX掲示板もあります。
  • CASIO 計算機 FX-603Pの独り言 - FX-603PのPASSコードに関する解析が書かれています。(2003/04/30 リンクミス修正しました)
  • PROGRAMMING CALCULATOR CASIO FX-502P - FX-502Pに関するページです。FX-502PやFA-1の改造法についての情報もあります。
  • ソフトウェア
  • FX-Tennis - (2003/10/31更新) 空色そふとさんの作られたFX-602P用のテニスゲームです。なんと2人用です。
  • CASIO FX-602P 測量計算プログラム - Tossyさんの作られたFX-602P用の測量計算プログラムが公開されています。FX-502P、FX-603P用の測量計算プログラムもあります。 (2007/05/18) CASIO FX-602P用測量プログラムの音声による公開ページが追加されました。ご連絡感謝です。
  • ダゴシさんポケコン・コレクション - FX-603Pが写真付きで紹介されています。また、FX-603P用のTDS_Surveyという測量計算プログラムが公開されています。
  • 楽々データ共有術 - FX-603P 電卓用ソフトとして、測量計算プログラムが公開されています。プログラムの転送サービスもあります。
  • 測量土木支援(プログラム電卓603P 4800P) - (2004/06/25更新)FX-603PとFX-4800用の測量計算プログラムがあります。
  • 写真屋・バヤサン - 「国際宇宙ステーション(ISS)やスペースシャトル(STS)をウォッチング!」の中で,FX-603P用の人工衛星の位置を手計算(関数電卓使用)で求めるプログラムがあります。
  • X68000でFX-602PやPC-1350のプログラムの吸い出しや転送を行うツール - 誰かWindows版を作ってくれないかな…。(^^; (2004/09/24) 下の方にあるwav2binをチェック!
  • 歴史等
  • ratscats web page - 古い電卓などのカタログを公開されています。CASIO 電卓総合カタログ'91 No.3には、FX-602P、FX-603Pが掲載されています。 - New!
  • 有限会社窪屋鉄工所 - 技術マル秘画像集 プログラム関数電卓編でFX-502P,602P,603Pが紹介されています。(リンク感謝です。)
  • プログラム電卓 - (2003/10/20現在行方不明) FX-502PやFX-602Pの写真があります。
  • NANZO計算機博物館 - FX-603Pの画像はこちらです。 (リンク更新しました。はまちゃん!さん,感謝です。)
  • Kako's Home page - 携帯電脳 博物館にFX-502PやFX-602P、FX-603Pなどの写真が掲載されています。
  • CASIOポケコン PB history - (2006/10/17 移転先更新) カシオポケコンの歴史がわかりやすく書かれています。
  • 俺様の闘いの記録 - (2003/10/20現在行方不明)中に大変珍しいFX-602Pのパンフレットの写真が載せられています。
  • 人から見ればがらくた〜電卓・電子手帳編
  • 海外のページ
  • FX-602P Simulator project - New!
  • another FX-602P Simulator - New!
  • new wav2bin page - New!
  • Vintage programmable calculators (英語) - 自作インターフェース、コード表など独自の解析結果があります。
  • Casio FX-602P (ロシア語)
  • Casio FX-502P Geek - FX-502P中心のサイトです。 私の知らなかったことも書いてありました。クイズもあります。おすすめ。 (英語)
  • Casio FX-602P - Cool! (フランス語)
  • pooh's calculator collection (英語) - 電卓収集を趣味としている方のページです。FX-602Pをベストなプログラム電卓だと評価されています。その内容は、非整合ALPHA文「ミラー」の入力方法や、バグについての報告など、非常に濃いです。
  • Casio FX-602P(ドイツ語) - ナイスなURLですね。面白そうな自作プログラムが12個も公開されています。(2004/09/24) wav2binというFX-602Pのセーブファイル(*.wav)をプログラムテキストに変換してくれるプログラムが掲載されています。
  • Marcus' FX602P Page - 手書きのプログラムリストが掲載されています。
  • Vorstellung: Casio FX-602P (ドイツ語) - FX-602P用のHIGH SCORE IIというゲームが掲載されています。FX-702Pのドイツ語版の広告とかもあって、面白いです。
  • Casio FX-602P programs (英語) - 作曲用?の自作ユーティリティプログラムが掲載されています。
  • Mon mus馥 de l'Informatique (フランス語) - FX-602Pを含め、昔の電卓やコンピュータが展示されています。
  • MES CALCULATRICES (英語/フランス語?)- コンピュータやゲームウォッチが展示されています。なぜかFX-602Pがトップに紹介されています。(^^)
  • Museum of Pocket Calculating Devices (英語) - こちらも電卓などの博物館のようです。FX-602Pもしっかり展示されています。
  • Casio FX-602P (英語)
  • The Pocket Computer Museum (英語とフランス語) - FX-602Pももちろん展示されています。
  • casio fx-602p (英語)

  • 履歴 [History]

    2008/05/16
    リンクratscatsさんのページを追加しました。FX-602P,FX-603Pも掲載されている古いCASIOのカタログを見ることができます!(ratscatsさん、お知らせ感謝です。)
    2008/04/20
    Tossyさんのページの移転に伴い、リンクを修正しました。(Tossyさん、お知らせありがとうございました!)
    2008/03/21
    リンクFX-602P Simulator project他を追加しました。待望のFX-602Pシミュレータの開発がスタートしたようです!画面デザインを見ただけで感動です。これは目を離せません。
    2007/05/18
    リンクTossyさんCASIO FX-602P用測量プログラムの音声による公開ページを追加しました。
    2006/11/05
    リンクを1件修正しました。
    2006/10/17
    リンクに1件(CASIO FX-602P, FX-603P 用カセットインターフェイスの製作)追加しました。
    2006/04/15
    コントラスト調整についての記述を追加。情報をお持ちの方はぜひお寄せください。また、クイズ1問リンクに1件(casio fx-602p)追加しました。
    2005/07/14
    FX-602P ベンチマークを追加しました。
    2005/07/02
    リンクに1件(Vintage programmable calculators)追加。自作のインターフェースなど、興味深い記事があります。
    2005/06/26
    隠れキャラクター [追加版] に、隠れキャラクターを表示するプログラムをMP3で公開しました。FX-602PとFA-1orFA-2をお持ちの方は、ぜひ試してみてください。(^^)
    2004/09/24
    関連リンク集に1件追加 (Casio FX-602P)。また、ドイツのサイトで、FX-602Pのセーブファイル(*.wav)をテキストに変換してくれるプログラム(wav2bin)が発表されています。
    2004/09/18
    隠れキャラクター [追加版] を追加。
    2004/09/14
    プログラミングテクニックに09ループとメモリ割り当ての件を追加。FAQにマニュアルの件を追加。
    2004/09/09
    サワダデンキオンラインショップへのリンクを更新しました。
    2004/06/25
    リンク切れしていた測量土木支援(プログラム電卓603P 4800P)へのリンクを更新しました。お知らせ感謝です!
    2003/11/10
     CASIO FX-603Pの部屋のリンクを更新しました。Atsutaさん、お知らせありがとうございました!(^^)
    2003/11/09
     海外リンク1件追加しました。(Casio FX-502P Geek)
    2003/10/31
     さらにリンクの整理中です。空色そふとさん、新URLのお知らせありがとうございました!(^^)
    2003/10/20
     リンクの整理中です。高橋さん、貴重な情報提供ありがとうございました。大変助かります。(^^)
    2003/04/30
     リンクミス1件修正しました。ご指摘ありがとうございました。
    2003/04/23
     リンク切れのページについて注記しました。メールでご指摘くださった方、どうもありがとうございました。m(__)m
    2003/02/12
     Tossyの部屋のリンクを更新 (Tossyさん、ご連絡ありがとうございます。
    2003/01/02
     有限会社窪屋鉄工所さんのリンクを更新 (お知らせ感謝です!)
    2002/09/16
     English versionを追加。
    2002/09/15
     クイズとFAQ(周辺機器)に追加。リンクに1件追加。
    2002/06/13
     ちゃんとした内容の更新は約1年ぶりですね。テクニックに「1ステップ割算」を追加しました。(ついでに「09ループ」の予告を追加)
    2002/05/27
     リンク (NANZO計算機博物館他)を更新しました。
    2002/03/04
     久々の更新になってしまいました。リンクに1件追加。
    2001/08/25
     リンクに3件追加。近いうちにリンクゲームを更新予定です。
    2001/05/26
     「麻雀」のVer 11.5のFX-603P用のテキスト化ミスを修正(失礼しました)。
    2001/05/26
     「麻雀」のVer 11.5を公開(思考ルーチンの25%高速化と表示タイミングの修正)。
     リンクに2件追加。
    2001/05/03
     「麻雀」のVer 11.4で,FX-603P用のテキスト化にミスがあったのを修正。すみませんでした。
    2001/05/02
     「麻雀」のVer 11.4を公開。FXのアルゴリズムを変更し,イイペイコーを作るのが少しうまくなりました。
     クイズをもう一つ追加。
    2001/04/27
     Yahoo!オークションのポケットコンピュータカテゴリへのリンクを追加
     [予告] 「麻雀」のVer 11.4をいじってます。(^^;
    2001/04/23
     「麻雀」の役満和了者の殿堂にairfewさんを追加しました。(お知らせ感謝です。(^^) >airfewさん)
    2001/02/28
     「麻雀」のVer 11.3を公開 (3レンコウ判定のバグ修正)
    2001/02/27
     クイズにヒントを追加
    2001/02/22
     「麻雀」のVer 11.2改を公開。(入力ミスがありました。どうもすみませんでした。)
    2001/02/20
     「麻雀」のVer 11.2を公開。FX-602Pの思考ルーチン改善と誤入力に対する対応。FX-603P対応版の作成。
     リンクにショップ情報を1件追加。
    2001/02/16
     FAQにコマンドの説明を追加
     クイズを追加
     「麻雀」のVer 11.1を公開。省ステップ化と三角関数モード制限解除。
    2001/02/09
     「麻雀」のVer 11.0を公開。3レンコウの追加。
     準備中だった、テクニックのうちの「サブルーチンループ」を追加。
    2001/02/06
     「麻雀」のVer 10.9を公開。チンロウトウの追加。
     テクニックに「or判定」を追加。
    2001/01/30
     音楽演奏させてみよう!を追加。
     ライブラリに音楽関係のプログラムを追加。
     PROGRAMMING CALCULATOR CASIO FX-502Pのリンクを更新
    2001/01/25
     小道具のページFX-502Pへリンクをはる。
    2000/11/21
     リンクに日本語ページ1件、英語ページ1件追加。
    2000/10/27
     「切符くん」を公開
     テクニックに「and判定」を追加。「範囲判定」に記述を追加。
    2000/10/20
     「切符くん」の予告を追加
    2000/10/06
     長らく準備中だった、テクニックのうちの「途中演算」について記述。(ついでに「サブルーチンループ」の予告を追加)
     項目名に英語を併記するようにした。
    2000/10/03
     「99 Game」のバグを再度修正。(_ _)
     ライブラリの表をちょっとだけ整理。
    2000/09/23
     「99 Game」のバグを修正。(ご指摘ありがとうございます。(^^) >Atsutaさん)
    2000/09/16
     リンクを更新。
    2000/09/13
     音声ファイルの扱いについてを追加。
     プログラム一覧を整理
    2000/09/04
     CASIO FX-603Pの部屋のリンク先を更新しました。(お知らせ感謝です(^^)>Atsutaさん)
     「99 Game」を公開。
    2000/08/20
     「麻雀」のVer 10.8を公開。
    2000/08/19
     「99 Game」の予告を追加。
    2000/08/01
     リンクを整理。
    2000/07/31
     FAQにFX-603P購入情報を追加。
    2000/07/25
     リンクに1件追加。
    2000/07/23
     「麻雀」のFX-603P正式対応版を公開。
    2000/07/19
     リンクに2件追加。
    2000/07/15
     「麻雀」を公開。
    2000/07/12
     プログラムの省ステップ化に項目追加。
    2000/07/04
     「麻雀」の予告を追加。
    2000/06/22
     「リンクゲーム」を追加。
    2000/06/19
     メモリー機能一覧にミスがあったのを訂正。テクニックに追加。
    2000/06/16
     ライブラリに.wavファイルを追加。
    2000/06/14
     テクニックに追加。
    2000/06/13
     バグ修正、HTMLタグの改善。テクニック、自作プログラムに追加。
    2000/06/12
     リンク2件、自作プログラム追加。
    2000/06/11
     思い立ってFX-602Pのページを作ってみる。(^^)

    ※このページはリンクフリーです。 You may link this page freely
    ※FX-602Pに関する情報等がありましたら、ぜひこちらまでお寄せください。(なるべく題名にFX-602PあるいはFX-603Pを入れてくださると助かります。)
    Informations and comments are always welcome. Please let me know!

    [ HomePage | 小道具のページ ]

    PED00725@nifty.ne.jp, ey5k-myhr@asahi-net.or.jp
    Last modified 2008/05/16