N88-BASIC
N88-BASIC(エヌはちはちベーシック)は、NECのパーソナルコンピュータであるPC-8800シリーズおよびPC-9800シリーズに搭載され、標準プログラミング言語として使用されたBASIC言語の処理系である。ロゴやマニュアル上では「N88-BASIC」と「88」を小さく書いており、これは各種バリエーションにおいても同様である。
開発元 | マイクロソフト |
---|---|
初版 | 1981年 |
プラットフォーム |
PC-8800シリーズ PC-9800シリーズ |
種別 | Microsoft BASIC |
ブート時にROMから自動的に起動するものを「ROM-BASIC」、専用ディスクから起動してFDDやHDDを扱えるように機能拡張したものを「DISK-BASIC」と呼んだ。また、俗称だがMS-DOS上で動作するものを「DOS-BASIC」と呼ぶこともあった。初期はROM-BASICのみでDISK-BASICは別売りだったが、FDDの普及によってDISK-BASICも標準添付されるようになり、MS-DOSの普及に伴ってDOS-BASICが開発され、MS-DOSが一般化するとDISK-BASICは再び別売り(末期にはサポート外)になった。MS-DOSが普及する以前は、DISK-BASICが簡易なDOSとしての役割も担っていた。
PC-8800シリーズ用
編集N88-BASICは、1981年(昭和56年)に発表されたPC-8801に初めて搭載されたスタンドアロンBASICで、PC-8001に搭載されていたN-BASICの機能を大幅に拡張して作られた。一般的にはM-BASIC 4.5として知られているマイクロソフトのLevel-3 BASICインタプリタが基本設計(ベース)となっている。
N-BASICと完全互換ではないがある程度の上位互換性を持ち、PC-8001で作られたプログラムを実行させることも出来た。N-DISK BASICとファイルフォーマットにも互換性があるが、BASICの中間コードは異なるので、プログラムを交換する際にはアスキー形式で保存する必要があった。
N88-BASICには、PC-8800シリーズの機能拡張に合わせて、V1、V2のメジャーバージョンがある。V1は、V2の出現時に遡って付けられた呼称(レトロニム)であり、もともとは「無印」であった。V2はPC-8801mkIISRから新規に搭載されたものである。アナログRGB採用によって表示色が大幅に増えた他、FM音源などの新機能も扱えるようになった。V1に対しほぼ完全な上位互換性を保っているが、ハードウェアの初期状態の違いにより、V1用のプログラムをV2で実行するとグラフィックの色が変わるなどの不都合が生じることがあった。
「タートルグラフィックス命令」も用意され、拡張モジュールをロードすると、LOGOを簡略化したような文法でグラフィックスを描画させる命令などが追加された。しかし、対応したソフトウェアが少ないもしくは利用頻度が低かったことなどから、PC-8801MH/FH以降の機種には搭載(バンドル)されなくなった。
V1およびV2対応の日本語拡張として、NECからN88-漢字BASICとN88-日本語BASICが、システムソフトから8801漢字BASICと新8801漢字BASICが発売された。それぞれの間では2バイト文字の内部表現形式が異なっており、変換にはコンバータを必要とした。これらはいずれも命令は通常のBASICコマンドで、日本語を文字列として扱えるようにしたものである。なお、N88-日本語BASICはPC-8801mkIIFR/MR以降の機種に標準添付されたが、PC-8800シリーズのCRTコントローラはテキストVRAM上の2バイト文字に対応しておらず、従ってグラフィックVRAMにビットマップグラフィックとして文字を描画することになるため、動作が遅くプログラムを組む上ではあまり使われなかった。
PC-88VA用
編集PC-88VAシリーズには、専用に新規開発された「N88-日本語BASIC V3」が標準添付された。V2までのN88-BASICに対し、ある程度の上位互換性を保っているが、完全上位互換ではない。ROM-BASICは無く、PC-Engineと呼ばれる独自OSから起動して使うもので、その意味ではスタンドアロンBASICでもない。機能的にもN88-BASICよりは、むしろN88-日本語BASIC(86)に近い。V3モードのCRTCは2バイト文字テキストに対応しているため、PC-88VA用のBASICとして広く使われるようになった。
標準で表示やファイル入出力などのデータとして日本語を扱うことができ(ぴゅう太のG-BASICのように日本語でプログラミング出来る訳では無い)、ハードウェア・スクロールやスプライト、マウスやメニューバー等も利用できた。また、音楽作成ソフト「インスタント・ミュージック」で作成したファイルをBGMとして鳴らしたり、アニメ作成ソフト「アニメフレーマー」で作成したコンピュータアニメーションを再生することもできた。
PC-9800シリーズ用
編集N88-BASIC(86)は、1982年(昭和57年)から発売されたPC-9800シリーズのROM-BASICで、PC-8800シリーズのN88-BASICと、高いレベルで互換性がある。名称の(86)は、採用したx86系プロセッサに由来する。8ビット機時代のN-BASICとN88-BASICはNECとマイクロソフトの共同開発であったが、N88-BASIC(86)はNECのみによる独自開発である。
当初NECはマイクロソフトに開発を打診したが、8ビット機時代の「方言」の氾濫に手を焼き標準化を画策していたマイクロソフトは、同社が16ビット機用の決定版として開発したGW-BASICの採用を強く働きかけてきた。しかし、GW-BASICはIBM PC互換アーキテクチャを前提としている上、ラベルすら使えない旧態依然としたBASICであったため、N88-BASICで蓄積された膨大なソフトウェア資産を継承することは困難であり、NECはBASICを自社開発することによって独自路線を堅持する道を選択した。開発にあたってNECは、互換性を高めるためにN88-BASICのリバースエンジニアリングを行っている。当然ながら、完成したBASICにはN88-BASICと限りなく似た部分が存在し、マイクロソフトと衝突する可能性もあったわけであるが、最終的にはマイクロソフトから相当額の別の製品を購入することと、著作権の表示にマイクロソフトとNECの両社名を併記することで折り合った[1]。
N88-DISK BASIC(86)も発売され、N88-DISK BASICとディスクフォーマットは互換性がある。しかし、BASICの中間コードが異なるため、プログラム交換の際はアスキー形式で保存する必要があった。
その後、日本語入力システムが追加されてN88-日本語BASIC(86)という名称になった。漢字の内部表現形式はN88-日本語BASICと異なっており、変換にはコンバータを必要とした。PC-9800シリーズのCRTCは2バイト文字テキストに対応しているため、N88-日本語BASIC(86)は広く使われるようになった。
PC-8800シリーズ用ほどバージョンは意識されないが、サポート対象ハードウェアの追加、日本語処理などのシステム拡張が行われている。最終バージョンは6.3。
MS-DOS版
編集PC-9800シリーズのMS-DOSへの移行に伴い、N88-日本語BASIC(86)のMS-DOS版が発売された。MS-DOSでの文字コードの扱いに合わせるため、スタンドアロン版では同時に扱うことができたPC-9800シリーズ独自のセミグラフィック文字と2バイト文字が、CONSOLE命令で切り替える排他仕様になった。MS-DOS上でDISK-BASICとファイルを交換するためのコンバータがあったが、DISK-BASICでセミグラフィック文字と2バイト文字の両方を扱ったファイルをMS-DOSへ変換すると文字化けが発生した。
MS-DOS版にはBASICコンパイラも用意されたが、全てのプログラムがコンパイル可能というわけではなかった。またいわゆるネイティブコードを吐くコンパイラではなく、外見としては実行ファイルになるものの内部的には中間表現で、実行にはその中間表現のインタプリタを含んだ200KB近いランタイムライブラリが必要であった。
MS-DOS版の最終バージョンは6.2で、6.3は発売されていない。DISK-BASICにおける6.2と6.3の違いは、(当時における)新しい規格のハードディスクへの対応であり、ディスクアクセスをMS-DOS経由で行うDOS-BASICは拡張の必要がなかったためである。
MS-Windows版
編集MS-Windows版であるN88-BASIC(WN)インタプリタも発売されたが、極端に動作速度が遅く、画面周りの互換性も乏しかったため、実用的とはいえず普及しなかった。MS-Windows 2.xx向けのものであり、MS-Windows 3.0以降ではスタンダードモードでもエンハンストモードでも動作しない。リアルモードではかろうじて動作したが、フリーエリアがほとんど無かった。
互換BASIC
編集- EPSON DISK BASIC
- PC-9800互換機であったEPSON PCシリーズで、N88-BASIC(86)のソフトウェア資産を利用できるよう開発された処理系。N88-DISK BASIC(86)はROM-BASICを拡張する形で実装されているが、EPSON DISK BASICはROM-BASICを利用せず、全体をRAMにロードする点が異なっている。そのためフリーエリアの量がN88-DISK BASIC(86)と異なる。
- なお、EPSON PCシリーズは互換性維持のためBASICのROMを持っており、ソフトウェアからアクセスすることはできるが、ROM-BASICを起動することはできないようになっている。これは末期のPC-9821シリーズも同様である。そのため、これらの機種は「ROM-BASICを持たない」と見なされることがある。
- BASIC/98
- 有限会社 電脳組が販売するWindowsベースのインタプリタ。互換性はかなり高い。
- →「BASIC/98」を参照
- 99Basic
- Windowsベースのフリーウェア。互換性は高い方ではないが、インタプリタとしては高速。
- →「99Basic」を参照
- N88互換BASIC
- Windowsベースのフリーウェア。互換性は高い方だが、動作は遅い。「N88互換BASIC for Windows(3.1)」と「N88互換BASIC for Windows95」がある。