Running bif-c

よっし、 bif-c のコンパイルが出来ました。それじゃ、次はどうしたらいいですか?

まああああ、そう…です、ね。長い話になりますね。 bif-c は標準 FORTH ではあるまい。正確な fig (Forth Interest Group) FORTH でもありません。それどころか、まだバッグっぱなしです。

(いつか、デーブ=ライオン氏の 6800 模型 fig-FORTH を稼働するために 6800 のエミュレータを作りたい。現在でも エミュレーターの一つを手に入れることができましたが、ディスクのやりとりが分かりませんでした。)

でも、今の bif-c は、後置きの整数電卓として利用することも、簡単な機能を定義したりすることもできます。

先ずは、コンパイルしたディレクトリ内で

./bif-c -h

という構文でコマンド行パラメータを見せてもらえます。現時点では、ディスクイメージ及びメモリ量の二つの種類のオプションを指定できます。

ディスクイメージの指定

ディスクイメージの指定はこんな感じです。

./bif-c -d0 -ro TOOLS.G00.disk -d1 example.disk

これは僕が用意しておいた二つのディスクイメージを最初の二つのディスクドライブとして指定します。使い道はまだそれほど豊富にあるわけではないのですが。

(ディスクイメージを生成したり、その容量を延長したりする道具に興味がござるなら、簡単なものを tools のディレクトリに置きました。)

(因みに、起動する時点ではデバグ情報が結構ながされる。気にする必要ありません。)

記憶の指定

記憶量はデフォルトでは結構きつい制限が付けられています。最終的にはスタック量などをもっと細かく制御出来るようにしておきたいのですが、現時点ではとりあえず、全体的に一メガバイトの記憶領域を以下のとおりコマンド行で指定できます。

./bif-c -m 1M

一メガバイトのメモリ領域を使うことはまだないと思いますが、起動のデバッグ情報で獲得したかどうかを確認でキす。 >8-*

オプションの指定を二つ併せて使うことも出来ます。

./bif-c -d0 -ro TOOLS.G00.disk -d1 example.disk -m 1M

Bif-C の終了

bif-c の命令入力行で

  1. BYE

を打ち込むと脱出できます。

Bif-C の大文字・小文字扱い

現時点では大文字・小文字を区別して認識しています。また、用意済みの定義は大体大文字で定義しています。したがった、たとえ「TOTAL」及び「total」したら、別々の定義として存在してしまいます。(良い事か悪い事かは言いきれないにしてもやや不便が出ます。)それにして、「do」を定義しても FORTH の数取巡回開始識別子の「DO」とは(考えの混乱以外は)追突しません。8-<

いずれも、 caps-lock のキーを使うのは頭痛をさけるでしょう。

Bif-C 上のコード積載(ロード)

現時点は、bif-c にプログラムのソースコード入力については、技術の慎んだコピーペースト法がもっとも効力的でしょう。tools_stdio.textというファイルは幾つかの便利で利用性のある定義を定義しています。例えば、記憶領域を表示する「DUMP」やディスクの「スクリーン」を表示する「LIST」があります。このファイルをテキストエディタで開けて、中身をコピーして bif-c の命令入力行でペーストするとその定義を入力出来ます。

そのソースコードを見るのはいろんなことが分かってくるかもう知りません。

Bif-C のマニュアル

元々の BIF-6809 マニュアルを bif-c 用に直して翻訳することを予定にしていますが、それもぼちぼちと進ませています。申し訳ありませんが未だ途中のままです。いずれも、無いよりは増し、かな? BIF というディレクトリ内の"BIFDOC.TXT"というファイルです。

簡単な例文

後置き整数型電卓

  1. 123 654 + .

777 OK

  1. 256 256 256 * * .

16777216 OK

  1. 31415927 3 * 10000000 / .

9 OK

  1. 31415927 3 * 10000000 MOD .
4247781 OK
  1. 31415927 3 10000000 */MOD . .
9 4247781 OK

世界 (World) へ、よろしく!

  1. : HELLO ." Hello, Waldo!" ;

OK

引用子の後の間隔をよく気をつけてください。稼働させるのは

  1. HELLO

Hello, Waldo! OK

十まで数える

  1. : 10COUNTING 10 0 DO SPACE I . LOOP ;

OK

  1. 10COUNTING
0 1 2 3 4 5 6 7 8 9 OK

失敗したら

FORGET は未だバグっているので "BYE" で終了してやり直すのです。テキストエディターを開いた手の近いところに出したままコピーペーストをよく活躍させてください。

特定の数まで数える

  1. : COUNTING 0 DO SPACE I . LOOP ;

OK

  1. 20 COUNTING
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 OK

もうちょっと先に進んだものは?

よそのところに見つかるソースコードはいじること無く動作しないでしょう。直さないといけない残っているバグの所為か実装するつもりもないモノもあります。

利用になる FORTH をお探しの場合はあちらこちら手に入れること出来ます。自分の定番のサーチエンジンでお探しください。(僕の場合は gforth と言いうモノが結構役に立ちますし、標準に近いところまで出来ています。しかし他にも色々あります。)

しかも、よそに見つかるものの中、少し弄ってでも、動作できるソースコードもあります。

まあ、これで最初の一歩ができると、嬉しゅう存じます。

bif-c を視ていただいて、ありがとうございます。