ROM-BASIC

ROM-BASIC（ロムベーシック）はROMモードBASICとも呼ばれ、8ビットパーソナルコンピュータのほとんどと、初期の16ビットパーソナルコンピュータに搭載されていた、ROMに書き込まれたスタンドアロンBASICである。

ROM-BASICという概念は、コンパクトカセットやフロッピーディスクなどの補助記憶装置に格納した処理系をシステム起動時にロードして使用する方式と対立していう場合と、フロッピーディスクを利用できるように機能拡張したDISK-BASICと対立していう場合とがある。

概要 
マイクロコンピュータにおけるBASICの実装は、最初期には処理系を紙テープに格納して起動時にロードして使用する形態であったが、すぐに数KBのROMに格納して電源投入と共に使用できる形態となった。著名なものはApple IIの整数型BASICと、引き続きMicrosoftがApple II向けに開発した10KByte BASICがある。日本ではTK-80等のキットのオプションとしてROM-BASICのキットが販売され、次いでPC-8001がROM-BASICを標準搭載して販売された。以後はパーソナルコンピュータがROM-BASICを搭載し、補助記憶装置としてデータレコーダを接続してオーディオ用コンパクトカセットでプログラムのセーブやロードを行う使用方法となった。そして、外部補助記憶装置としてフロッピーディスクを接続する時には、その入出力機能を拡張したDISK-BASICを使用するという形態が暫く続いた。

ROM-BASICは、プログラムを編集する、プログラムをコンパクトカセットにセーブ・ロードする、プログラムを実行・停止するという、OSのごく基本的な機能も備えており、CP/MやMS-DOS等のOSが普及する以前にはごく簡便なOSとしての役割も担った。

一方で、パーソナルコンピュータにサウンド機能やグラフィック機能を備えたものでは、それをサポートする命令も備えていた。

メリット
起動時にOSやBASICの処理系をロードする時間を要さず、すぐに使用を開始できる。
ROM内部に置かれたサブルーチンをアプリケーション、システムなどからコールすることによって、あらかじめ持っている機能であればスクラッチから書かずとも、それを流用することができる。但し、その場合ROMバージョンが変わっても影響を受けないようにテーブルジャンプ方式とするなどエントリアドレスが固定されている必要がある。

デメリット
メリットで挙げたサブルーチンのエントリやデータの受け渡し方法がメーカーによって公開されていることはまれで、サードパーティーのソフトウェア開発業者などが解析した結果をドキュメント化して出版したものを入手して参照するか、自力でROM内部をリバースエンジニアリングせざるを得なかった。当然バグフィックスが行われるなどで、ROMのリビジョンが変わってしまうと使えなくなる可能性があった。
互換性維持のために、実用にならない状況にあっても、後継機もまた同じプログラムを本体に持ち続けなければならない。
ROM-BASICでサポートされていた外部記憶装置はオーディオ用コンパクトカセットを流用したデータレコーダであり、読み書きの速度は300～1600bpsであり、主記憶を越える量のデータの取り扱いに対して低速であった。また、シーケンシャルデバイスであるため、外部記憶装置からの特定のデータの呼び出しなどは実用的ではなかった。

なお、ROM-BASICを搭載しているからという理由ではなく、メモリへの配置の都合で、0番地から配置されたうえで、切り替える方法を持たない機種では、同じ領域を使用するCP/Mなど、先頭部分のアドレスを使用するプログラムの使用には制限が発生する。バンク切り替えなどにより、これらのページを変更できる実装の場合はその限りではない。

多くの機種ではROMはメモリ空間に直接マッピングされたが、クリーン設計思想で作られていたシャープのX1に用意されていたオプションボードであるCZ-8RB01は、ROM-BASICでありながら直接マッピングされるわけではなく、拡張ボード上のROMからIPLが読み込みを行い、RAMにBASICを展開する形になっている。そのため、起動後はRAM上のBASICやモニタ部分の書き換えも可能になっており、標準添付のCZ-8CB01と同じように使用することが可能である。同社MZ (コンピュータ)でも同様の仕組みが存在し、サードパーティーのROMボードが存在する。これらの機種では補助記憶装置からのシステムの読み込みを必要とし、こういったボードが装備されていないシステムでは、コールドスタートに際して本体にROM-BASICを内蔵した機種と比較し、時間が掛かった。

PC-9800シリーズでは後年までROM-BASICが搭載され続け、起動可能だったが、標準でカセットインターフェースを搭載した機種は皆無で、比較的初期の機種に限り、別売りの拡張ボードとしてサポートされた程度だった。さらにPC-9801RA/RX以降（それ以後にモデルチェンジされたUV11やVM11も同様）からはCMT-BIOSも省略されたため、BASIC側に用意されているカセット関連の命令も動作しなくなった。このため単独での使用は実質不可能であった。ただし、ROM内のサブルーチンを利用しているプログラムの互換性を維持するため、ROM自体は必要なものであった。Microsoft Windowsの使用を前提としたPC-9821シリーズが登場する頃になるとデフォルトのBIOS設定（システムセットアップメニュー）ではROM-BASICが起動できないようになった。それでも設定を変更すればまだROM-BASICを起動できるようになっていたが、1996年後半頃の機種からはそれもできなくなった。EPSON PCシリーズでは、初期にはROMを搭載していない機種もあったが、搭載している機種でも起動はできないようになっていた。

IBM PCの場合はROMにBASICは用意されたものの、OSとしては当初からPC DOSを採用しており、DOS上からBASIC.COMコマンドでROM版のBASICを呼び出す形だった。このためBASICが起動した時点で既にFDDが使用可能であり、DISKが使用できないという意味でのROM-BASICには必ずしも該当しない一方で、DISK-BASICに相当する機能拡張版BASICを起動するためのBASICA.COMも別途用意された。PC/AT互換機の互換BIOSの場合は一般的にROM-BASICを搭載していないが、製品によっては互換性のためにBASIC.COMやBASICA.COMのプログラム名でソフトウェアのBASICが提供されることがあった。やがてこれらはQBasicに置き換わった。

関連項目
DISK-BASIC
クリーン設計

BASIC