コモドールBASIC - コモドール8ビット機に内蔵されたBASICインタプリタ
コモドールBASICは、PETからC128までのコモドール8ビット家庭用コンピュータで使われたROMベースのMicrosoft BASIC系統です。趣味のプログラミング、ゲーム、入出力を支えました。
概要
コモドールBASICは、コモドールの8ビット個人用コンピュータでROM内に組み込まれて動作したBASICインタプリタ群に対して、一般に用いられる名称である。1977年のPETで最初に登場し、これらのインタプリタは、ユーザーが追加ソフトウェアなしでプログラムを作成、保存、実行できるように、プログラム編集環境と行番号付きのBASIC解釈実行方式を提供した。言語の基本部分はMicrosoft BASICにさかのぼり、コモドール機で使われたMOS Technology 6502系CPU向けに調整されていた。
画像ギャラリー
1 画像特徴と構成
コモドールBASICの各実装は、コンパクトなROM常駐インタプリタを共有していた。そこには、LET、IF、GOTO、FOR/NEXT、INPUT、PRINTなどのなじみ深いBASIC文に加え、組み込みの数値計算ルーチンが含まれていた。プログラムは番号付きの行で入力し、統合されたコマンドプロンプトを通じて操作した。編集や簡単なファイル入出力はROMルーチンで処理された。インタプリタは小型で高速であることを重視していたため、グラフィックス、カラー、サウンド、ディスク操作といった多くの機種固有機能は、高水準のBASIC文としては提供されなかった。そのため、プログラマはハードウェア機能を利用するために、PEEK/POKEによるメモリアクセス、機械語サブルーチン、あるいはベンダー提供のユーティリティをよく用いた。
歴史とライセンス
コモドールはBASICをMicrosoftから取得し、自社機で使われていた6502系プロセッサ向けに改変した。この契約は、創業者ジャック・トラミエルがユニットごとのロイヤルティではなく一回限りのライセンス料を交渉したことで、コンピュータ史の中でもよく知られている。この取り決めにより、コモドールは多くの機種にわたってROM内蔵のBASICを出荷できた。したがって、コモドール機に搭載されたインタプリタは、Microsoft由来の浮動小数点演算や構文解析のコードに、コモドール独自の入出力フックとエディタルーチンを組み合わせ、ハードウェアと統合されていた。
典型的な用途と例
PET、VIC-20、Commodore 64のような家庭向けシステムでは、BASICが起動直後の主なユーザーインターフェースだった。ユーザーはプログラミング学習のためにコードを入力し、ユーティリティを作成し、ゲームを書いた。商用・趣味双方の多くの作品は、雑誌に掲載されたBASICリストや手入力されたプログラムから始まった。BASICはまた、機械語プログラムを読み込む手段や、カセット、ディスク、キーボード処理のためにOSルーチンを呼び出す便利な方法としても使われた。
識別できる特徴と遺産
- 6502系ハードウェアに結びついたコンパクトなROMインタプリタ。
- 行番号付きの解釈実行型プログラミングモデルで、入出力と数学のための最小限の組み込み機能を備える。
- 高度なグラフィックスやサウンドには、PEEK/POKEや機械語パッチが頻繁に用いられた。
コモドールBASICは、安価な家庭用機でその場でプログラムを作れるようにすることで、パーソナルコンピューティングの普及に貢献した。その設計には、限られたメモリ、コストを意識したROM、そしてハードウェアとの密接な結びつきという当時の制約と優先事項が反映されている。メーカーとその製品群の背景については、コモドール・インターナショナルおよびその8ビット家庭用コンピュータの系譜を参照できる。インタプリタの中核は、6502系向けのMicrosoftコードに基づいており、Microsoftからライセンスされた。ライセンス交渉と一回限りの料金に関する逸話は、初期マイコン時代の商取引史でしばしば引き合いに出される(参照)。
参考文献
技術資料や当時の雑誌には、コモドールBASICの機能を拡張するために使われたプログラム例、メモリマップ、各種手法が記録されている。愛好家や保存プロジェクトは、歴史的関心のためだけでなく、古いソフトウェアを現代のプラットフォームで動かし続けるためにも、これらのインタプリタを研究し、エミュレートし続けている。
関連項目
著者
AlegsaOnline.com コモドールBASIC - コモドール8ビット機に内蔵されたBASICインタプリタ Leandro Alegsa
URL: https://ja.alegsaonline.com/art/21985
出典
- computerhistory.org : computerhistory.org/events/?id=1193702785
- youtube.com : youtube.com/watch?v=NBvbsPNBIyk