MBASIC(エムベーシック)について
M
BASICは、
CP/M|CP_Mオペレーティングシステムに対応したMicrosoft
BASICであり、特に1970年代から1980年代にかけてパーソナルコンピュータの普及に伴い、その地位を確立しました。これは、Microsoftが最初に開発した
Altair BASICインタプリタから派生した製品であり、基本的なプログラミング環境を提供するものでした。
動作環境と制約
M
BASICのバージョン5が要求する最低条件は、28KBのRAMと1台のディスクドライブを備えた
CP/M|CP_Mシステムです。特筆すべきは、M
BASICが特定のハードウェア機能に依存せず、
CP/M|CP_Mの
システムコールのみを利用していた点です。利用可能な入出力デバイスは、コンソール(スクリーンとキーボード)、ラインプリンタ、ディスクデバイスに限られていました。そのため、グラフィックスやサウンド、ネットワーク機能などは初期のM
BASICには搭載されていませんでした。
また、
CP/M|CP_Mシステムは通常、シングルユーザでスタンドアローンであったため、ファイルロックや
マルチタスクには対応していませんでした。このような制限があったにもかかわらず、M
BASICは当時の
BASIC実装としては非常に効率的であると評価されていました。
プログラミング機能
M
BASICは
インタプリタ型のプログラミング言語で、プログラムをトークン化してメモリに保存することに特徴があります。これにより、メモリの使用効率が高まり、実行速度も向上しました。プログラムの各行は
行番号で識別され、ユーザーが編集や実行をする際に便利な機能が提供されました。特に、プログラムのエラーメッセージが詳しく表示されることは、多くのプログラマにとって大きな利点とされていました。
ファイルのコードは、シーケンシャルファイルや固定長レコードファイルとして読み書きでき、データベース的な操作も可能です。ただし、
浮動小数点数に関するデータの交換には特別な配慮が必要でした。M
BASICでは、様々なデータ型と変数が利用できる一方で、
行列や特殊な型には対応していなかったのも特徴的です。
M
BASICには、IF...THEN、WHILE...WENDなどの条件文やループ構造が用意されており、
サブルーチンの作成も可能です。しかしながら、グローバル変数に依存した構造が多く、これがスパゲッティコードを生む要因となっていました。また、PEEKやPOKE命令によってメモリへの直接アクセスが可能で、これは当時の8ビットコンピュータ群での非常に重要な機能とされました。
M
BASICに続く
BASICの実装として、ISIS-II用のバージョンや、
MSX向けに特化した
MSX-
BASICがあります。特に、
CP/M|CP_M用の全機能を持つM
BASICは、
IBM PCの
BASICAやGW-
BASICでの利用が可能となり、プログラムの移行がスムーズに行えました。これにより、M
BASICで書かれたプログラムは、後のコンピュータシステムでも再利用しやすくなったのです。
結論
M
BASICは8ビットの
CP/M|CP_Mコンピュータ時代において、プログラミングの現場で重要な役割を果たしました。M
BASICを使用して開発されたプログラムは、コンピュータユーザーグループでの共有が行われ、様々なツールやアプリケーションが生まれる原動力にもなりました。今回紹介した内容が、M
BASICの理解を深める一助となれば幸いです。