N-
BASICは、
日本電気(NEC)が
1979年に発売したPC-8001に搭載された、スタンドアロン型の
BASICインタプリタです。Microsoft
BASICを基盤として開発され、当時の
BASICとしては画期的な倍精度実数演算やカラーグラフィック機能を搭載。その高い完成度から、後続の
BASIC系言語開発にも大きな影響を与えました。
PC-8000シリーズ、
PC-8800シリーズ、そしてオプションROMとして
PC-9800シリーズにも搭載され、膨大なソフトウェア資産を生み出しました。
優れた機能と制約
24KBのROMに搭載されたN-
BASICは、発売当時としては最先端の機能を誇りました。しかし、後のN88-
BASICなどと比較すると、ラベルの非サポートや変数名2文字制限、構造化制御文の欠如など、幾つかの制約も存在しました。
特に、
空白文字による命令・関数の区切りが必須ではない点が特徴的でした。例えば、`FORTRAN=
ATOK5`と記述した場合、`LET FORTRAN =
ATOK5`(変数への代入)ではなく、`FOR TRAN = A TO K5`(FORループ)として解釈されます。この曖昧さは、プログラミングの難易度を上げ、混乱を招く原因にもなりました。
N-
BASICの開発は、
マイクロソフトとの協業によって実現しました。NECのPC-8001開発を指揮した渡辺和也氏は、アスキーの
西和彦氏を介して
ビル・ゲイツ氏と出会い、
マイクロソフトの
BASICを採用することを決定します。
当時、
マイクロソフトはまだ社員数十名のベンチャー企業であり、NEC社内には抵抗感を持つ声もありました。社内にはすでに土岐泰三氏が開発した
BASICが存在し、処理速度も優れていました。しかし、渡辺氏は
マイクロソフトBASICの市場における実績と信頼性を評価し、採用を決断します。
西和彦氏は、
マイクロソフトの日本代理店として、NECへの
BASIC供給を低価格で行うことで、
マイクロソフトとNECの協業を成功に導きました。この土岐氏が開発した
BASICは後にPC-8801のN88-
BASIC開発に活かされることになります。
ROM逆アセンブル事件
N-
BASICのROMを逆アセンブルした『PC-8001
BASIC SOURCE PROGRAM LISTINGS』という書籍が出版されたことが、
マイクロソフトとの訴訟問題へと発展しました。この事件は、ソフトウェア著作権保護の観点から、大きな社会問題となりました。
バージョンと機能拡張
N-
BASICは、PC-8001への搭載以降、幾つかのバージョンアップが行われました。初期のバージョン1.0ではバグも存在しましたが、後のバージョンでは修正されました。
PC-8800シリーズへの搭載に際しても、ハードウェアの違いに対応した変更が加えられました。最終的にはバージョン1.8まで進化しましたが、基本的な機能に変更はありませんでした。
特徴的な命令と関数
N-
BASICには、以下の様な特徴的な命令と関数が存在します。
CONSOLE文: スクロール範囲、
ファンクションキー、カラーモードの設定
COLOR文: 文字色、属性、グラフィックモードの設定
KEY文:
ファンクションキーへの文字列登録
LINE文: キャラクタを用いた線や長方形の描画
PSET/PRESET文: 点の描画と消去
CSAVE/CLOAD/CLOAD?命令: テープへのプログラム保存、読み込み、検証
CLEAR文: 変数のクリアとメモリ領域の確保
USR関数:
機械語プログラムの呼び出し
MON命令:
機械語モニタへの移行
MOUNT/REMOVE命令:
フロッピーディスクの挿入と取り出し(DISK-
BASICのみ)。この命令は、FATの取り扱いに関する問題から、ユーザーに多くの混乱とデータ破壊をもたらす原因となりました。
欠落した命令
N-
BASICには、以下の命令が組み込まれていませんでした。
描画関連:CIRCLE(円弧描画)、PAINT(塗りつぶし)、CLS(画面クリア)
機械語関連:BSAVE/BLOAD(バイナリデータの保存と読み込み)、CALL(
機械語プログラムの呼び出し)
* その他:ON KEY GOSUB、ON STOP GOSUB(キー操作による割り込み)、RANDOMIZE(乱数の初期化)
これらの機能は、他の命令や
機械語モニタなどを用いて代替的に実現されていました。
使用されなかった予約語
N-
BASICには、将来的な機能拡張を見越して予約されていたものの、実際には使用されなかった
予約語も存在しました。
N-
BASICは、その後のパソコン発展の歴史において重要な役割を果たした言語です。その技術的な特徴と開発背景を知ることは、現代のコンピューティング技術を理解する上で貴重な知見となります。