ROM-BASIC

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。InTheCastle (会話 | 投稿記録) による 2020年11月5日 (木) 12:58個人設定で未設定ならUTC)時点の版 (→‎メリット: メリットが得られるための条件を追加。)であり、現在の版とは大きく異なる場合があります。

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が搭載され続け、起動可能だったが、途中の機種からカセットインタフェースが省略されて単独での使用は実質不可能であった。ただし、ROM内のサブルーチンを利用しているプログラムの互換性を維持するため、ROM自体は必要なものであった。PC-9821シリーズの初期の機種でも起動できたが、途中の頃から起動できなくなった。EPSON PCシリーズでは、初期にはROMを搭載していない機種もあったが、搭載している機種でも起動はできないようになっていた。

関連項目