ROM-
BASIC、別名ROMモード
BASICは、1970~80年代の8
ビット、そして初期の16
ビットパーソナル
コンピュータに広く搭載されていた、ROMに格納された
BASICインタプリタです。
フロッピーディスクなどの外部記憶装置を使用するシステムとは異なり、電源投入と同時に
BASIC環境が利用可能という点が大きな特徴でした。
初期のマイクロ
コンピュータでは、
BASICインタプリタは紙テープに格納され、起動時にロードする方式が一般的でした。しかし、すぐに数キロバイトのROMに格納して、電源投入と同時に利用できる形態へと進化しました。
Apple IIの整数型
BASICやMicrosoftが開発した10KB
BASICなどがその代表例です。
日本においても、
TK-80などのキットにROM-
BASICがオプションとして提供され、PC-8001が標準搭載することで広く普及しました。多くのパーソナル
コンピュータがROM-
BASICを搭載し、
コンパクトカセットレコーダーを外部記憶装置として利用するシステムが一般的でした。
フロッピーディスクが登場すると、ディスク入出力機能を拡張したDISK-
BASICへと移行していきました。
ROM-
BASICは、プログラムの編集、
コンパクトカセットへの保存と読み込み、プログラムの実行と停止など、OSの基本機能を備えていました。
CP/M|CP_MやMS-DOSといったOSが普及する以前は、非常に簡便なOSとしての役割も担っていました。また、サウンド機能やグラフィック機能を持つ機種では、それらをサポートする命令も備えていました。
メリットとデメリット
ROM-
BASICのメリットは、なんといっても起動の速さです。OSや
BASICインタプリタをロードする時間を待つ必要がないため、すぐにプログラミングを開始できます。また、ROM内部の
サブルーチンをアプリケーションやシステムから呼び出すことで、既存機能の再利用が可能でした。ただし、ROMバージョンが変わっても影響を受けないように、テーブルジャンプ方式などによる工夫が必要でした。
一方、デメリットとして、
サブルーチンのエントリやデータの受け渡し方法がメーカーによって公開されないことが多く、サードパーティの開発者はROM内部を解析する必要がありました。ROMの
リビジョン変更による互換性の問題も発生しました。また、
コンパクトカセットレコーダーによるデータの読み書きは低速であり、大容量データの取り扱いには不向きでした。さらに、メモリ配置の都合で、他のプログラムとの干渉が発生するケースもありました。
ROM-BASICと機種ごとの対応
シャープのX1やMZシリーズのように、ROM-
BASICを直接メモリにマップせず、起動時にRAMに展開する機種もありました。これにより、RAM上の
BASICの書き換えが可能になり、柔軟なシステム構築が可能になりました。しかし、起動には時間がかかりました。
PC-9800シリーズでは、後年までROM-
BASICを搭載していましたが、標準でカセットインターフェースを搭載した機種はほとんどなく、別売りの拡張ボードが必要でした。さらに、後期の機種ではカセット関連の命令が動作しなくなり、ROM-
BASIC単独での使用は困難になりました。
IBM PCではROMに
BASICが用意されていましたが、PC DOS上で
BASIC.COMコマンドで呼び出す方式であり、ROM-
BASICの定義とは少し異なる位置づけでした。
ROM-
BASICは、初期のパーソナル
コンピュータ時代において、手軽なプログラミング環境を提供し、多くのユーザーに
コンピュータの世界への扉を開かせました。OSが普及し、より高度な
BASICインタプリタが登場した現在でも、その存在は初期パーソナル
コンピュータの歴史において重要な役割を果たしたことを示しています。ROM-
BASICは、現代の高度なプログラミング環境の基礎を築いたと言えるでしょう。その簡潔さ、そして制約の多かった時代ならではの工夫の数々は、現代のプログラマにとっても興味深いものです。