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:富士通 FMTOWNSII 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のFMTOWNSIIMX でコンパイルを行って
 いました。普通の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]ボタンを使ってください。