ワンべぇは,川俣さん製作の,WonderWitch 用の Tiny BASIC です. 今回ワンべぇを FreeBSD 上で WonX を使ってコンパイルし,実行することが できたので,やりかたを書いておきます.
なお,ここに書いてあることはすべて無保証であり,どのようなことが起こっても, 筆者および関係者はいっさいの責任を負いません. 試すときには必ず各自の責任の下で行ってください.
まず,ワンべぇ をダウンロードします.今回はワンべぇVer0.04(wonbe004.lzh)を使用しました.
ダウンロードしたら,解凍します.
> mkdir wonbe > cd wonbe wonbe> lha x ../wonbe004.lzh
wonbe> patch < ../makefile.patch wonbe> patch < ../wonbe.c.patchwonbe.c 用のパッチでは,ファイル操作の部分(?)をごっそり #ifndef WONX で 囲ってあるので,ファイル操作(?)をすると,どのようなことになるのか, よくわかりません.このへんも筆者は一切責任を負いません.
UNIX上では,そのままだと make が誤動作します.
たとえば makefile 中に,
gcc wonbe.o -o wonbe -L. -L/usr/X11R6/lib -lwonx -lX11 -lXtのような部分があった場合,行末の -lXt は実は -lXt\r のようになっているため, make しても 「-lXt に相当するファイルが無い」とおこられたりします. (しかも less や emacs でファイルを見ても,改行コードは表示されないので 原因がわからなかったりする)
wonbe> cat makefile | qkc -I -O -e -u > makefile.tmp wonbe> mv makefile.tmp makefile wonbe> cat wonbe.c | qkc -I -O -e -u > wonbe.c.tmp wonbe> mv wonbe.c.tmp wonbe.c
必要なファイルは makefile と wonbe.c のみですので,それだけ変換すれば 十分です.
(以下のパッチによる修正は,Wonx-b05 以降で反映してあります. Wonx-b05 以降を使用する場合には,パッチを当てる必要はありません. とくに理由がなければ,最新の WonX を使用してください.作業の方法は, Wonx-b05 以降でも(パッチを当てなくて良いこと以外は)Wonx-b04 での場合と 同様です)
wonbe> tar xvzf ../wonx-b04.tar.gz wonbe> cd wonx-b04 wonbe/wonx-b04> patch < ../../WWText.c.patch wonbe/wonx-b04> patch < ../../comm.c.patchパッチを当てたら WonX を make して,ワンべぇ用のディレクトリに, wonx_include ディレクトリと libwonx.a をコピーしてください.
wonbe/wonx-b04> make
wonbe/wonx-b04> cp -R wonx_include libwonx.a ..
wonbe/wonx-b04> cd .. wonbe> make
うまく make できない場合には,以下のことをチェックしてください.
wonbe> ls wonbe wonbe wonbe> ./wonbewonbe を実行してしばらく(描画に時間がかかります)すると, タイトル画面が出てきます. (kterm 上には,call : key_wait() : と表示されたところで止まっているはずです)
スタートしてしばらくすると,シリアルポート(WonXの場合は,標準入力)からの
入力待ち状態でブロックします.
(kterm 上には,call : comm_receive_char() : と表示されたところで
止まっているはずです)
そしたら kterm にマウスカーソルのフォーカスを合わせて,おもむろに,
print "HELLO!"と入力して,Enter を押してみましょう.
ワンべぇに標準添付されているプログラム(*.wbファイル)をlessで表示させて, マウスのカットアンドペーストで,kterm にペーストしてしまいます. (ただし,漢字を含むプログラムがどう動くかは確認していません.漢字の無い プログラムで試しましょう)
WonXのばあいだと,フロー制御による文字落ちなどは考慮しなくていいので, 1行単位でなく,複数行をいっきにペーストしてしまってかまいません.
入力(時間がかかります)できたら,
runしてみましょう.ちゃんと実行できるかな?
あと WONX 用にソースコードを修正(#ifndef WONX でくくるとか)するときのために, WONX 中で,
#define WONXのようなのが必要ですね.(Wonx-b05 以降で _WONX_ を追加した)