N88-BASIC

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

N88-BASICエヌハチハチベーシック)はスタンドアロンBASIC環境の1つであり、日本電気 (NEC) のパソコン向けの標準プログラミング言語である。

当時のスタンドアロンBASIC環境のうち、起動時にFDを用いず、かつHDDを無効とした場合に、ROMから自動的に起動するものを特に「ROM-BASIC」と呼び、専用ディスクから起動されるものを「DISK-BASIC」と呼び、またMS-DOS上で動作する(スタンドアロンでない)ものを「DOS-BASIC」と呼んだ。初期はROM-BASICばかりであったが、FDDの普及に伴い、DISK-BASICも多く利用できるようになり、MS-DOS普及に従いMS-DOS上で動作するDOS-BASICも利用されるようになった。

DISK-BASICは(PC-9801ではMS-DOSが普及する以前に)オペレーティングシステムの代用のようにもなっていた(一部にはDISK-BASICの無い機種もある)。

目次

[編集] N88-BASIC、N88-DISK BASIC、N88-日本語BASIC

N88-BASIC(インタプリタ)は、1981年にNECから発表されたPC-8801に初めて搭載されたスタンドアロンBASICである。同社のPC-8001に搭載されていたN-BASICを拡張して作られた。

N-BASICとは、ある程度の上位互換性を持つため、PC-8001で作られたプログラムを実行させることも出来たが、完全上位互換ではなかった。N-DISK BASICとファイルフォーマットに互換があるが、BASICの中間コードが違うために、プログラムファイルをやり取りするにはアスキー形式で保存しておく必要があった。また、N-BASICとは小数から整数への丸め規則なども異なる。

言語仕様的にはマイクロソフトのLevel-3 BASICインタプリタ(浮動小数点対応で、一般的にはM-BASIC 4.5として知られている)がベースである。

PC-8800シリーズには(カセットインターフェースが標準搭載されなくなった後も)ROMで搭載されたほか、PC-8801mkII以降では、FDD搭載モデルにおいてDISK BASICのFDが添付された。

N88-BASICのDISK-BASIC版は、N88-DISK BASICと呼ぶ。

なお、PC-88VA以外のPC-8800シリーズには、ROM版のN-BASICもN88-BASICと共に搭載されていた。

N88-BASICには、PC-8800シリーズの機能拡張に合わせて、V1、V2、V3の各メジャーバージョンがある。

V1はV2より前のバージョンである。「V1」は、V2の出現時に、V2以降と区別するために付けられた呼称であり、もともとは「無印」であった。

V2はPC-8801mkIISRから新規に搭載され、アナログRGB採用で大幅に増えた表示色や、FM音源などの新機能が扱えるようにV1を拡張したものである。V1のプログラムについて、ほぼ完全と言ってよい上位互換性を持っている。

V3はPC-88VAシリーズ用に新規に作成されたBASICであり、V2までのBASICの上位互換ではあるが完全上位互換ではなく、PC-Engineと呼ばれるOSから起動して使うもので、その意味ではスタンドアロンBASICとは呼びにくいものであった。感覚的には、N88-BASICよりは、むしろN88-日本語BASIC(86)にかなり近い。日本語を扱うことができ、ハードウェア・スクロールスプライトマウスやプルダウン・メニュー等も利用できた。また、音楽ソフト「インスタント・ミュージック」で作成したファイルBGMとして鳴らしたり、「アニメフレーマー」で作成したアニメを再生することもできた。

また、V1およびV2対応の日本語拡張として、N88-漢字BASICやN88-日本語BASIC(両者の間では漢字の内部表現形式が異なる)が発売された。同様のコンセプトを持つ8801漢字BASICや新8801漢字BASIC(NEC製の漢字/日本語BASICとは内部表現形式が異なるため、コンバータが存在した)が福岡のシステムソフトという会社からも発売されていた。 ただし、PC-88VA以外のPC-8800シリーズには漢字をテキストのように扱えるVRAMがないため、これらのBASICはGVRAM(グラフィック画面)に文字を描画していた。

このほか、V1/V2には「タートルグラフィックス拡張命令」も用意された。外部プログラムで拡張モジュールをロードすると、LOGOを簡略化したような文法でグラフィックスを描画させる命令などが追加された。PC-8801MH/FH以降の機種にはバンドルされなくなったが、その理由としては利用頻度の低さに加え、本体の動作クロックが8MHz対応になり、同モジュールのCMD SING命令の音程が変わってしまった(パッチを当てないと音程が高くなる)ことが挙げられる。

[編集] N88-BASIC(86)、N88-DISK BASIC(86)、N88-日本語BASIC(86)

1982年に発売が開始されたPC-9800シリーズにおいては、N88-BASICを改良したN88-BASIC(86)(インタプリタ)がROMで搭載された。N-BASICとN88-BASICはNEC・マイクロソフトの共同開発であるが、N88-BASIC(86)はマイクロソフト側のキャパシティの問題もあり、日電独自で移植を行った。名称の(86)は、最初期のPC-9800シリーズのCPUインテル8086から採った呼称で、CPUがPC-8800シリーズと異なるための識別である。

PC-8800シリーズのN88-BASICとは、大部分で互換性がある。PC-9801のキーボードはマイコンを内蔵したシリアル接続タイプで、PC-8800ではメインCPUのI/Oにパラレル接続だったが、BASIC上からはPC-8800と同様に、I/O命令で読めるようになっていた(I/Oアドレスは異なるが、ビットの配置は合わせてあった)。

移植の実作業を行ったのは日本語ワープロシステムソフト」を作った「管理工学研究所」である(ちなみに初代の松はBASICベースでありながら、BASICの内部構造を熟知しているスタッフによって作られ、BASICベースとは思えない高速性を誇っていた)。

移植にあたってはN88-BASICのバグのような仕様まで忠実に再現されていた。のちに日電とマイクロソフトの間で、N88-BASIC(86)の著作権問題に発展するが、和解する。

N88-DISK BASIC(86)も発売された。N88-DISK BASICとファイルフォーマットに互換があるが、BASICの中間コードが違うために、プログラムファイルをやり取りするにはアスキー形式で保存しておく必要があった。N88-DISK BASIC(86)はその後、日本語入力ソフト(NECAI)が付属するなどしてN88-日本語BASIC(86)という名称になっている。

ROM-BASICは、PC-9800シリーズにカセットインターフェースが標準搭載されなくなった後も、互換性のために搭載されていた。カセットインターフェース非搭載機種のROM-BASIC環境では、パソコン単体でのプログラムのセーブ・ロードが出来ないものの、依然RS-232Cは使用可能なため、RS-232Cを介したセーブ・ロードならば行う事が可能である。

[編集] MS-DOS版、コンパイラ版

後にPC-9800シリーズが標準オペレーティングシステムをMS-DOSに移行した際、もっぱらプログラミング言語目的のMS-DOS版N88-BASIC(86)インタプリタも発売された。

MS-DOS版にはBASICコンパイラも用意されていたが、高価な上、インタプリタ環境とコンパイラ環境の構造的な相違により、全てのプログラムがコンパイル可能というわけではなかった。また、Pコードという中間コードにコンパイルされる為プログラムの実行にはN88BASIC.LIBというランタイムライブラリが必要であり、配布には不向きであった。

互換機対策として特定のROM領域をチェックする為、そのままではEPSON98互換機では動作せずパッチを当てる必要が有った。

DISK-BASICとMS-DOSでファイルをやり取りするため、MS-DOS上でファイルフォーマットを変換するツールがあった(両者は漢字コードの扱いが違う)。

[編集] MS-Windows版

極端に動作速度が遅く、また画面周りの互換性も乏しかったため、あまり実用的とはいえず普及しなかったものの、MS-Windows版N88-BASIC(WN)インタプリタも発売された。

MS-Windows 2.xx向けのものであり、MS-Windows 3.0(スタンダード及びエンハンストモード)以降では動作しない(リアルモードではかろうじて動作するもののフリーエリアがほとんど無い)。MS-Windowsのメタデータ機能などに対応している。

[編集] 互換BASIC

[編集] EPSON DISK BASIC

互換性のある処理系としてEPSON DISK BASICが発売されていた。これはPC-9800シリーズの互換機であったEPSON PCシリーズでBASICソフトウェア資産を利用できるようにするため開発されたもので、言語仕様がやや拡張されているもののN88-BASICとほぼ同等である。

PC-9800シリーズがROM-BASICをファームウェアとしてハードウェア的に搭載しておりDISK-BASICはこれを呼び出すだけであったのに対し、ROM-BASICのないEPSON PC用のものはインタープリタすべてのフルセットであった。この違いは、利用可能なフリーエリア量に反映される。

[編集] BASIC/98

N88-BASIC(86)と文法互換で、「インクリメンタルコンパイル」と呼ばれる実行時コンパイル処理により実行速度を高速にしたBASIC/98が存在し、PC-9800シリーズと、その他の各機種に発売されている。

行分けIF文、ローカル変数を持つサブルーチン、関数など、構造化プログラミングをサポートする機能が拡張されている。 しかし、当時のパソコンで使用するにはフリーエリアが極端に少なく、大きなソースを実行できない、多量の配列を確保できないなどの問題点があった。

その後、MS-Windows用が発売され、MS-DOS用とほぼ同じ機能を実現している。 MS-Windows版では、フリーエリアの制限がほぼ撤廃され、大きなソースプログラムの実行、巨大な配列の使用が可能になった。また、Windows用であるにもかかわらず、I/Oポートへのアクセスが可能となっている。

[編集] N88互換BASIC

Windowsのフリーソフトとして「N88互換BASIC for Windows」「N88互換BASIC for Windows95」が存在する。

[編集] Be88-BASIC

BeOS/ZETAのフリーソフトとして、他のフリー互換BASICと比較してかなり互換性の高い「Be88-BASIC」が存在する。

[編集] 関連項目