Last Update :2000/01/01
Made By HOTARUIKA☆
ちょっと実験...
F-BASIC386 Compilerを
AT互換機上で爆速動作させる
■
概要・・・
最近のCPU高速化競争から外れて、CPU性能には限りがあるTOWNSです。(*1)
そんなTOWNSにあって、それでも速く済んで欲しい作業と言えば、
レイトレ−シング・OS起動・ファイルアクセス、といったものかと
思います。
それに加えてF-BASICプログラマに忘れてはならないのが、
コンパイル所要時間の短縮です。
そんなあなたに朗報! F-BASIC386 Compiler は
AT互換機でも問題なく動作してしまうんですね。
といっても、当然コンパイルしたプログラムがATで動作するというわけでは
ありません。コンパイル作業がAT互換機上で行える、というだけです。
というわけで、その方法をご紹介しましょう。
(*1):一部のH系TOWNSのパワフルなユーザーさんは除く。(^^;
■
F-BASIC386 on AT互換機 の準備手順
1:「EXE386 for IBM」を入手する
F-BASIC386 CompilerはDOSエクステンダ上で動作しています。
TownsOSでは、RUN386.EXEを使用していますが、AT版のオリジナル
(Pharlap製)RUN386は入手難です。
そこで、ベクターにアップロードされている、京都マイクロコンピュータ製
DOSエクステンダ「EXE386」を拝借しましょう。
ベクターの「ベンダー提供」というところから入手できます。
2:コンパイル用バッチファイルを書き換える。
無事「EXE386 for IBM」が入手できたら、標準のコンパイル用
バッチファイルを書き換えます。(BC.BAT)
元のバッチファイルが使えないと不便なので、書き換えたら別のファイル名で
保存しましょう。(BC_AT.BATとか)
「RUN386」となっている所を「EXE386」に書き換えるだけです。
とりあえず簡単ではないかと思います。
3:AT互換機のディスク上に、コンパイラ環境をコピーする。
TOWNSにインストールされた、コンパイラ関連ファイルをAT互換機の
ディスク上にコピーします。
具体的なファイル名は
FB386CP.EXP
TLINKP.EXP
*.LIB
EXE386.EXE
以上です。
コピーが終了したら、先ほどのバッチファイルのパス記述を、互換機側の
環境に合わせて書き換えましょう。
4:あとは実行するだけ
TOWNS上では、コンパイラ起動補助プログラム(BCSTART.EXP)が
ありましたが、AT互換機では使えませんので、手動でコマンドラインから
先ほど書き換えたバッチファイルを起動します。
例えばこんな感じです。
C:\FB386CP> BC_AT SAMPLE _
BASファイルの拡張子は
「必ず」「絶対に」
省略してください。
(バッチファイル内でそういう処理をしている為です)
コンパイルオプションについては、コンパイラ付属のマニュアルに載ってます。
あとは、ATのマシンパワーを生かした快速コンパイルが始まります。
5:最初の実行時は・・・
最初にAT互換機でコンパイルしたときは、念のためTOWNS側でコンパイルされた
オブジェクトと、FCコマンド等でバイナリレベルで比較したほうが良いでしょう。
そのほうが、あとあと精神衛生上よいと思います(^_^;)
もちろん、「普通は」まったく差異はないはずです。
さて、問題なければ私に動作報告を送りましょう(^_^;)(嘘です)。
■
動作環境と例
この手の解説にかかせないのは、動作環境報告です。
私が試した環境は、以下のとおりです。
動作確認環境:
.
TOWNS:富士通
FM
TOWNSII MX(i486DX2-66MHz)
RAM:56MB
TownsOS V2.1L51 on DOS6.2
F-BASIC386 Compiler V2.1L20a-u001
.
AT互換機:SONY VAIO PCV-T700MR (PentiumII 266MHz AGP)
RAM:64MB(SDRAM-DIMM)
Windows95 OSR2.1 DOS-mode
EXE386 for IBM V1.00
F-BASIC386 Compiler V2.1L20a-u001
SONY-VAIOでFB386CP.EXPを動作させたところ、見事に爆速で
コンパイルできました。リンカ「TLINK」も問題なく終了し、
生成プログラム及びソースからのオブジュクトファイルも、
DOS標準のFCコマンド(ファイル比較)で比較した結果、差異は
ありませんでした。エクステンダが違うだけで、同じプログラム
を走らせたのですから当然の結果ということが出来ます。
コンパイル速度は、MX比の体感速度で約5倍〜8倍といった
ところでした(時計で計ってないのでもう少し遅いかもしれません)
とりあえず快適です(^_^;))
少なくとも、クロック正比例した程度の速度はでるようです。
基本的に、MS-DOS/PC-DOS(Windows95 DOS-mode起動含む)
が使用可能なほとんどのAT互換機で動作するとは思います。
無理なのは、286以下のマシンとメモリがローメモリしか無い
マシンだと思われます。
ちなみに、以下の環境では動作しませんでした。
動作しなかった環境:
・Windows95 DOSプロンプト(確認済)
プロテクトモード動作が、Win95のコアとぶつかるために、
DOSプロンプトでは動作しません。
「DOSモードで再起動」する必要があります。
・WindowsNT 4.0 Workstation (確認済)
プロセッサはすべてNTのコアが管轄していますので、
DOSエクステンダはプロテクトモードを利用することが
出来ません。
なお、TownsOSでLAN環境を組んでいる人には、特に恩恵大だと
思われます。FB386インタプリタでソースを書いて、AT側でスパスパ
コンパイル・・・う〜ん、快適そうなことが可能です(^^; (*2)
TownsOSでLAN環境を構築していて、爆速AT機を繋げているあなた!
これでAT互換機はTOWNSの「し・も・べ」です(^_^;)
私は普段、486DX2-66MHzの
FM
TOWNSIIMX でコンパイルを行って
いました。普通のBASICソースならば、このクラスのCPUでも充分
過ぎるくらいなのですが、ソースが200KBを超えてくるとわりと時間
が掛かるようになります。それで前から、コンパイルだけは速いマシ
ンで出来たらいいな、と思っていたのです。
あ、忘れてましたが、同様の方法で、PC-9801でもコンパイルが可能
です。近くにCPUパワーに余裕がある98をお持ちの方は、試してみる
のも一興かもしれません。私の家には・・・80286の5インチ機
(PC-9801DX)と i486SX(J)-16MHzのノート(PC-9801 NS/R)しかない
ため、TOWNSより遅くなるのは明白なので試していません。
一応ベクターには、PC-9801用のEXE386/286も存在します。
最後になりましたが、有用なDOSエクステンダを公開して下さっている
京都マイクロコンピュータ様に、お礼申し上げます。
みなさんの動作報告・動作しなかった報告をお待ちしています。
(*2):書いてからしばらくして気づいたのですが、コンベンショナルメモリが
足りなくて動かなかったりするような気もします(^^;
元の画面に戻るには、ブラウザの[Back]ボタンを使ってください。