ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

MSX User'sコミュのTurbo Basic(a.k.a.ベーシッ君)

  • mixiチェック
  • このエントリーをはてなブックマークに追加
初めて投稿させていただきます。

その時分、MSXは世界の家電コンピュータの統一規格の野望に、小生が生まれ育っ
た遠い南米アルゼンチンまで製造・販売されていました。

あの頃の我国ではコモドール64派とMSX派で色々戦ったのを懐かしく思い出します。

さて、本題ですが、MSX2が出た頃にASCII からTurbo Basicと言うカートリッジが発売されていたのですが、どのようにして殆どコンパイル無しであの様にインタープリンタの速度が上昇できたのか今でも疑問です。

どなたかご存知でしたら教えてください m(__)m

コメント(15)

自分は持ってなかったんで良くわからないんですが、アレって、BASICをプログラム実行時にコンパイルしてマシン語並の速度で実行するって感じのモノだった気がします。

しかも通常のMSX-BASICではなく、専用に拡張されたBASICだったような気が・・・。

かなりうろ覚えなんで、いい加減な情報でしたらスイマセン(;´д⊂)
インタープリタ言語といっても
書いたもののバイナリ−がそのまま出力されないだけで
言わば、あの時代のMSX-BASICは行ごとにいちいちコンパイルするコンパイラです。
それを事前に全行バイナリ−を出力できるようになると速度が上がる訳です。
あと、専用の拡張のランタイムが結構ついているのでそこにはまるような処理だと速いとか

#イリーガルだけど同人ソフトにも裏にべーしっくんを組み込んだ物が有りましたね
#純粋にコンパイラを使おうとすると配布しようとすると10万ぐらい掛かるMSX-Cとか
#HighTech-CとかForthとかになるんですかね?
#マイナーなところではライフポートから結構処理系が出ていたような気もしましたが
実行時とか、命令をストアしたときにすでにコンパイルする、という手段は考えられますね。

実際、MZ-2500用のBASICインタプリタも非常に高速でしたが、実際はプリコンパイルされていたようです。
べーしっくんでは一行目にコンパイル用のコマンドを書く必要があり、そこで
呼ばれたコマンド内でその後のBASICプログラム(正確には中間言語)をコンパイ
ルしたあとに実行していたと思います。

この辺はべーしっくんなしで対応プログラムを動かそうとしてたので覚えてますw
ただ、拡張コマンドの置き換えまで至らずに動かせませんでしたが^^;;
 べーしっ君と同等のBASICコンパイラを内蔵していた我が愛機、wavy70FDの拡張BASIC説明書を紐解いてみると、BASICコンパイラ用のコマンドとして

CALL BC
 BASICコンパイラを使用可能にする

CALL RUN
 BASICプログラムをすべてコンパイルしてプログラムを実行する

CALL TURBO ON
CALL TURBO OFF
 BASICプログラム中で、プログラムの一部をコンパイルする

の4つの命令が収録されています。ちなみに、CALLは_(アンダーバー)でも可、です。

 私はべーしっ君は所有していないですが、たぶん同じコマンドじゃないかと思います。
べーしっくんでは、最初に全行コンパイルを行っています。
CALL RUNでプログラム全部をコンパイルして実行、
もしくは、CALL TURBO ON〜CALL TURBO OFFで囲まれた範囲のみのコンパイルです。

コンパイル結果は、中間言語が置かれている場所のすぐ後ろに配置されるようです(変数が保存されるあたり)。
ちなみに、実行後もメモリ上に残っているので、BSAVEで保存することもできちゃったりします。
ただ、べーしっくん本体にライブラリの様な物を持っていて、そこをコールしているので、コンパイル結果だけ保存しても動かないのですが・・・・。


動作が速い理由ですが、単純にプリコンパイルだけではなく、エラー処理などを大幅に省略しています。
たとえば、Illigal function callや、Division by zeroなどの判定が省かれているようです。
あとは、デフォルトの変数が単精度実数になってるとか・・・。

BASICでは時間かかるけど、アセンブラで組むのが面倒なときとか良く使いました^^
べーしっ君、使わなかったけれど、ネーミングが良ければ、、、

MSX-Cは10万でなくて12000円だったような記憶が。その後今は無きソフトベンダー、自動ソフト販売機「タケル」ではマニュアルがプリントだけど5000円くらい、でも当時貧乏で買えず。。。今のマニュアルレスの廉価版ソフトの走りです。
でも、UNIXのコマンドが移植されていたりして(MSX-TOOLS)、当時はかなり先鋭的なものだったと思います。

MSXは、当時としてはかなり枯れつつもガッチリ使いやすいシステム、ソフトで言語もコアなものまでそろえていたのに、メーカーもアスキーも子供じみた味付けをしてしまいオモチャ扱いされ、さらに解像度の低さでトドメをさされた、、、と思っています。

TurboRのテクハン「もどき」を見て、子供言葉で書かれたそれに失望、歴史は終わったと肩を落とした私です。テクハン1,2のプロフェッショナルさを知るだけに。。。
Turbo Basicという名前で海外版があったとは知りませんでした。
日本では「MSXべーしっ君」というダジャレのような名前で出ていました。
後に「MSXべーしっ君ぷらす」「MSXべーしっ君たーぼ」とマイナーバージョンアップしています。

これが何で異様にコンパイルが早く済むのかというのは、MSXマガジン永久保存版2の70ページあたりに、普通のコンパイラと違ってワンパスだから…と書かれています。
これはどっちかというと技術的なことで、もともと「べーしっ君」の作者がMSX-BASICを作ってたから、というのが大きいらしいです。
蛇足ですけど
MSXのBASICて
Tコードと言われる中間コードで実際はメモリやファイルに保存されるので(アスキーセーブしたら別)、
何もしなくてもスペック低いマシンの割に早かったような記憶が。メモリ使用量も少ないし。
その代わり何かの理由でテープやフロッピーのデータ壊れると、復旧のしようが無くなったような。。。
アスキーセーブなら直接データ読んで、修正することもできるんですけど。
べーしっ君の「ひげ」が浮浪者のひげみたいでヤだった私です^_^;
>7
MSX-Cの初期バージョン(1.0)は10万円くらいで正しいのでは。
後の1.1だかで2万弱になりましたが、コンパイル後の実行ファイルを再配布することができないライセンスに変更されたのがミソだったような…。

そういえば、べーしっ君って、Mマガ永久保存版3のMSXPLAYerに入ってませんでしたっけ?
白状しますが、当時メモリダンプ使ってwavyから吸い出してディスクにセーブ、
A1-WSXでBLOADして使ってました。サーセンwww
MSX-Cは初期のパッケージが98000円でした。
後に安くなりましたが、やまかわさんの書かれている通り再配布ライセンスがありません。
(別途契約が必要)
TAKERUで売られた物もライセンスなしです。

他に売られてたC言語も似たような感じでした。
光栄の使ってたLSI−Cも10万くらいしてました。
昔は、MSXに限らず、開発環境はみんな高価でしたね。
そんな中でも、MSXの場合は、BASICが本体ROMに内蔵されていたり、
書籍にアセンブラのダンプリストが掲載されていたりと、かなり安かった
方だと思います。

「再配布不可」というのも割と一般的でしたし
・・・とても今では考えづらいですけどね (^_^;

> MSX-C

8bitに最適化という変な理由で、char から int への代入もキャストが必要
だったと思います。(どう考えても、コンパイラの手抜きとしか思えませんが)
ANSI-C よりも、K&R に近い記述だったようにも。

安くなってから購入しましたが、とても使いにくくて、結局ほとんど使わずじまいでした (^^;

それに引き替え、「べーしっ君ぷらす」は、結構便利に使わせてもらいました。
そういえば、3種類くらい出てましたね。
「べーしっ君」「べーしっ君ぷらす」「べーしっ君ターボ」でしたっけ。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

MSX User's 更新情報

MSX User'sのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング