基本的にはN88-BASICのプログラム資産をWindows上で動くように移植するので、独自な機能は基本的に使わないことにしている。
ただ移植する上で必要な部分は単なる書き換えを超えて踏み込まざるを得ない。いまのところ起動時のウィンドウの位置と大きさは自由に設定できるようになり便利になった。
書き換えはF-BASICのエディタを使わず、別のエディタを使う。
N88とF-BASICでは文法の差が少しある。今回書き直しに関わるのは次の点。
もちろんDOSとwindowsの違いからくるウィンドウ関係の機能や、マウス関数の番号なども違う。N88独特の機械語サブルーチン、プログラム領域の64KB制限と実行中のプログラムのマージ、プリンタの操作などかなりの違いがあるのだが、今回のプログラムは出力はすべて画面とファイルに出してプリンタは使わないし、マウスの操作もないのでこの部分は修正の必要はない。
N88ではif文は1行で書かなければならない。多行をif文で制御するにはgoto文やgosubを使う必要がある。これに伴うgotoの先の行番号をelse,endifなどに直してから、awkなどで行番号をとってしまう。
画面のデフォルトの背景色はN88は黒で、F-BASICは白。このため文字色を積極的に白に指定していると見えない。黄色もよく使うが見えにくい。今回はとりあえず2004年ごろに移植したF-BASICプログラムから色指定のセットを10行ばかりコピーした。別回答としてリソースファイルを作って背景を黒または灰色に設定することでもよい。
エラーコードを調べて独自のメッセージを出していた部分を変更しなければならないがこれは後回し。
ここまでくればエディタで開いたまま保存して、同じファイルをF-BASICに読み込んでコンパイルする。文法エラーが行番号と共にでるので、エディタで修正して再度コンパイル。通ればそのまま実行する。実行時のエラーも行番号が出るので対処しやすい。
プログラムが完成すれば、ソースファイル(.BASファイル)と同名の実行ファイル(.EXEファイル)ができているのでダブルクリックで実行できる。
実行ファイルをコンパイルしたPC以外で実行する場合はランタイムファイルを一緒に配布するかコンパイルオプションでスタンドアロン型を選択してランタイムを取り込んだ実行ファイルを作ればよい。
F-BASICはVisual-BASICのようにフォームにボタンなどをマウスで配置しイベント駆動のサブルーチンを書いていくタイプの総合開発環境である。しかしマウスの処理も自前でするN88-BASICプログラムを移植するためにだけ使っていたのでこの部分についてはよく理解していない。またWindows2000までしか動作の保証のないものをいまさら勉強する気にもなれないので、次の部分だけコンパイラ以外にも働いてもらう。
[プロジェクト]-[新規作成]でプロジェクトを作る。
[プロジェクト]-[新規作成]
プロジェクトに名前をつける。この例では RSNN としたのでプロジェクトはRSNN.MAK、実行ファイル名はRSNN.exeとなる。
プロジェクトに名前
[プロジェクト]-[環境]で実行ファイル名は変更できる。
[プロジェクト]-[環境]
[プロジェクト]-[モジュール]でBASICのソースファイルを登録する。
すでにソースファイルが開かれていれば次のように未登録のモジュールが見えているので登録ボタンで登録する。見えていなければ右の[ファイル]から選択する。
このときカレントディレクトリがどこになっているか今一つかめないことがある。新規作成したプロジェクトを一旦保存し、その時にフォルダを選べば次にプロジェクトを開くとそこがカレントディレクトリになっている。
[プロジェクト]-[モジュール]に登録する。
登録されたことは次を見れば分かる。
登録された状態。
プロジェクトファイルを作ってソースファイル一つではメリットはない。プロジェクトファイルを作るとコンパイルオプションをコンパイルの度に指定しなくてもよくなる。
コンパイルオプション。
FMモードだとFOR-NEXTで FOR I=10 to 1 でも必ず1回は実行してしまう。ISOモードなら継続条件を確認してから1回目のループを実行する。
このプログラムは画面の行数として25行を使っていました。N88では WIDTH 80,25 と指定してぎりぎりできます。今回の新しいOMRではマークの行数が24から33に増えました。うれしいことにF-BASICでは35行の画面にもできます。WIDTH 80,35 とすればいいのですが、デフォルトのウィンドウの大きさは24行なので画面はこうなります。
24行しか出ない。
下の辺をドラッグすると広げることができます。
引っ張ると35行出てくる。
このウィンドウの大きさはリソースファイルを作ることで設定できます。
まず[ファイル]-[新規作成]を選択して
[ファイル]-[新規作成]を
リソースファイルを作ります。ファイル名は任意。
リソースファイルを作る
メインフォームができます。右横のプロパティにも内容ができます。
再び[プロジェクト]-[環境]で今作ったRSNN.RCをプロジェクトに登録します。選択で入ります。
リソースファイルを登録する。
最終的にはプロジェクトは次のようなものになります。
プロジェクトに登録されているもの
リソースファイルを作ると起動時のウィンドウの大きさをコントロールできます。まずRSNN.RCのプロパティの「表示内容」を「クライアントエリア」にしてテキスト行数を必要な数にします。ここでは35にしています。
テキスト行数を変更
次に MAINFORM とあるウインドウをドラッグして画面を広げます。設定した35行分まで広げられます。このウインドウの位置が実行直後の位置になります。位置と大きさを決めたらコンパイルします。
MAINFORMの大きさを変更