コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
N88-BASICのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
N88-BASIC
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
'''N<small>88</small>-BASIC'''(エヌハチハチベーシック)は、NEC([[日本電気]])の[[パーソナルコンピュータ]][[PC-8800シリーズ]]・[[PC-9800シリーズ]]に搭載され、標準[[プログラミング言語]]として使用された[[スタンドアロンBASIC]][[インタプリタ]]である。 [[ブート]]時に[[ディスクドライブ]]を用いず、[[Read Only Memory|ROM]]から自動的に起動するものを特に「[[ROM-BASIC]]」と呼び、専用[[ディスクメディア|ディスク]]から起動して[[フロッピーディスクドライブ|FDD]]や[[ハードディスクドライブ|HDD]]を扱えるように機能拡張したものを「[[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の無い機種もある)。 == N<small>88</small>-BASIC、N<small>88</small>-DISK BASIC、N<small>88</small>-日本語BASIC == N<small>88</small>-BASICは、[[1981年]]にNECから発表されたPC-8801に初めて搭載されたスタンドアロンBASICである。同社の[[PC-8000シリーズ|PC-8001]]に搭載されていた[[N-BASIC]]を大幅に機能拡張して作られた。 N-BASICとは、ある程度の[[上位互換]]性を持つため、PC-8001で作られた[[プログラム (コンピュータ)|プログラム]]を実行させることも出来たが、完全上位互換ではなかった。N-DISK BASICと[[ファイルフォーマット]]に互換があるが、[[BASIC]]の[[中間言語|中間コード]]が違うために、プログラムファイルをやり取りするには[[ASCII|アスキー]]形式で保存しておく必要があった。また、N-BASICとは[[小数]]から[[整数]]への[[端数処理|丸め規則]]なども異なる。 言語仕様的には[[マイクロソフト]]のLevel-3 BASICインタプリタ([[浮動小数点数|浮動小数点]]対応で、一般的には[[Microsoft BASIC|M-BASIC]] 4.5として知られている)がベースである。 PC-8800シリーズには(カセットインターフェースが標準搭載されなくなった後も)ROMで搭載されたほか、PC-8801mkII以降では、FDD搭載モデルにおいてDISK BASICの[[フロッピーディスク|FD]]が添付された。N<small>88</small>-BASICのDISK-BASIC版は、N<small>88</small>-DISK BASICと呼ぶ。 なお、PC-88VA以外のPC-8800シリーズには、ROM版のN-BASICもN<small>88</small>-BASICと共に搭載されていた。 N<small>88</small>-BASICには、PC-8800シリーズの機能拡張に合わせて、V1、V2、V3の各メジャーバージョンがある。 V1はV2より前のバージョンである。「V1」は、V2の出現時に、V2以降と区別するために付けられた呼称であり、もともとは「無印」であった。 V2はPC-8801mkIISRから新規に搭載され、アナログRGB採用で大幅に増えた表示色や、[[FM音源]]などの新機能が扱えるようにV1を拡張したものである。V1のプログラムについて、ほぼ完全と言ってよい上位互換性を持っている。 V3(N<small>88</small>-日本語BASIC V3)はPC-88VAシリーズ用に新規に作成されたBASICであり、V2までのBASICの上位互換ではあるが完全上位互換ではなく、PC-Engineと呼ばれる独自OSから起動して使うもので、その意味ではスタンドアロンBASICではない。機能的にもN<small>88</small>-BASICよりは、むしろN<small>88</small>-日本語BASIC(86)に近い。標準で[[日本語]]を扱うことができ、ハードウェア・[[スクロール]]や[[スプライト (映像技術)|スプライト]]、[[マウス (コンピュータ)|マウス]]や[[メニュー (コンピュータ)|メニューバー]]等も利用できた。また、[[音楽]]作成ソフト「インスタント・ミュージック」で作成した[[ファイル (コンピュータ)|ファイル]]を[[バックグラウンドミュージック|BGM]]として鳴らしたり、[[アニメ]]作成ソフト「アニメフレーマー」で作成した[[コンピュータアニメーション]]を再生することもできた。 また、V1およびV2対応の日本語拡張として、N<small>88</small>-漢字BASICやN<small>88</small>-日本語BASIC(両者の間では漢字の内部表現形式が異なる。前者はKI(FAh)/KO(FDh)コードおよび[[JIS X 0208|JISコード]]の上位と下位を反転させたもの、後者は[[Shift_JIS]])が発売された。同様のコンセプトを持つ8801漢字BASICや新8801漢字BASIC(NEC製の漢字/日本語BASICとは内部表現形式が異なる(7FhのKI/KOコード(同じコードでのトグル)および[[EUC-JP|EUCコード]])ため、[[コンバータ]]が存在した)が福岡の[[システムソフト]]という会社からも発売されていた。ただし、PC-88VA以外のPC-8800シリーズには日本語表示用のテキスト[[VRAM]]が存在しないため、これらのBASICではGVRAM(グラフィック画面)に文字を描画していた。 このほか、V1/V2には「タートルグラフィックス拡張命令」も用意された。外部プログラムで拡張モジュールをロードすると、[[LOGO]]を簡略化したような文法でグラフィックスを描画させる命令などが追加された。PC-8801MH/FH以降の機種にはバンドルされなくなったが、その理由としては利用頻度の低さに加え、本体の動作クロックが8MHz対応になり、同モジュールのCMD SING命令の音程が変わってしまった(パッチを当てないと音程が高くなる)ことが挙げられる。 == N<small>88</small>-BASIC(86)、N<small>88</small>-DISK BASIC(86)、N<small>88</small>-日本語BASIC(86) == N<small>88</small>-BASIC(86)は、[[PC-9800シリーズ]](1982年発売開始)の[[ROM-BASIC]]である。8ビット機時代のN-BASICとN<small>88</small>-BASICはNEC・マイクロソフトの共同開発であったが、N<small>88</small>-BASIC(86)は全面的にNEC側のみによる開発である。[[管理工学研究所]]も開発作業の一部を受託している<ref>『パソコン創世記』に「ベーシックの開発作業の一部を発注された管理工学研究所」「日本電気の情報処理事業グループからの仕事も受託してきた管理工学研究所」という記述がある{{要ページ番号|date=2013年5月}}</ref>。 名称の(86)は、98の[[CPU]]に採用した[[x86]]系[[プロセッサ]]に由来する。 それ以前のPC-8800シリーズのN<small>88</small>-BASICと、高いレベルで互換性がある。また移植を支援するために、88ではハードウェアで実現されていた機能をソフトウェア的に互換に見えるようにしている点などもあり、たとえばPC-9801のキーボードは[[マイクロコントローラ|マイコン]]を内蔵したシリアル接続タイプで、ハードウェア的には直接読み取ることはできなかったが、PC-8801ではメインCPUのI/Oにパラレル接続だったため、PC-9800シリーズでもBASIC上からはPC-8800シリーズ同様にI/O命令でキースキャンコードと同等のものを取得できるようになっていた(アドレスは異なるが、ビットの配置は合わせてあった)。 NECは開発にあたって、N<small>88</small>-BASICの、仕様というよりは[[バグ]]のようなふるまいまで忠実に再現した。そういった事情から、マイクロソフト(実体としては日本で当時その代理的立場にあったアスキーの西ら)と衝突する可能性があったが、最終的に、マイクロソフトから相当額の別の製品を購入すること、権利表示にはマイクロソフトの名前を併記すること、を条件として決着した(そのために起動時のメッセージではNECの他マイクロソフトとも表示されている)。これらの込み入った事情についての詳細は[[富田倫生]]『パソコン創世記』<ref>[http://attic.neophilia.co.jp/aozora/htmlban/gopc.html 青空文庫版『パソコン創世記』]</ref>を参照のこと。 N<small>88</small>-DISK BASIC(86)も発売された。N<small>88</small>-DISK BASICとディスクフォーマットは互換があるが、BASICの中間コードおよび漢字の内部表現形式が違うために、プログラムファイルをやり取りするには「アスキー形式」(ソースコード文字列を保存する形式。メモリ中の中間コードのまま保存する「バイナリ形式」に対してそう呼んでいた)で保存しておく必要があった。N<small>88</small>-DISK BASIC(86)はその後、「KANJI.DIC」や「BUNSET.SU」「NECAI(KNJAI.DIC)」という[[日本語入力システム]]が付属するなどしてN<small>88</small>-日本語BASIC(86)という名称になっている。 ROM-BASICは、PC-9800シリーズにカセットインターフェースが標準搭載されなくなった後も、互換性のために搭載されていた。カセットインターフェース非搭載機種のROM-BASIC環境では、パソコン単体でのプログラムのセーブ・ロードは出来ないが、[[RS-232|RS-232C]]を介してセーブ・ロードできる。 == MS-DOS版、コンパイラ版 == 後にPC-9800シリーズが標準オペレーティングシステムをMS-DOSに移行した際、もっぱらプログラミング言語目的のMS-DOS版N<small>88</small>-BASIC(86)インタプリタも発売された。ただし両者は[[文字コード|漢字コード]]の扱いが異なり、MS-DOS版ではPC-98シリーズ独自の文字が扱えるキャラクタモードと漢字が扱える漢字モードが排他仕様(CONSOLE命令で切り替え可能)で、DISK-BASIC版は同時に両方扱うことができるなどの違いがあった。 <!--ネイティブ版のDISK-BASIC、MS-DOS版のBASICともに-->MS-DOS版にはBASIC[[コンパイラ]]も用意されていたが、高価な上、<!--当時の搭載[[主記憶装置|メモリ]]の都合などにより-->インタプリタ環境とコンパイラ環境の構造的な相違により、全てのプログラムがコンパイル可能というわけではなかった。また、コンパイルすると[[実行ファイル]]を出力するが、その中身は<!--[[Pコードマシン|Pコード]]という--><!--Pコードとは普通Pascalの実装のものを指すことが多いです-->[[中間言語]]による[[中間表現]]であり、かつその実行ファイルの実行には、外部に、N88BASIC.LIBという百数十KBほどある、中間言語のインタプリタを含んだ[[ランタイムライブラリ]]が必要であり、パソコン通信やフロッピーディスク主体の当時では、配布には不向きであった。 互換機対策として特定のROM領域をチェックする為、そのままではEPSON98互換機では動作せずパッチを当てる必要が有った。 DISK-BASICとMS-DOSでファイルをやり取りするため、MS-DOS上でファイルフォーマットを変換するツールがあった。先述の文字コードの扱いの違いがあるため、DISK-BASIC版でキャラクタコードと漢字の両方を扱うプログラムをDOS変換すると文字化けが発生した。 == MS-Windows版 == 極端に動作速度が遅く、また画面周りの互換性も乏しかったため、あまり実用的とはいえず普及しなかったものの、MS-Windows版N<small>88</small>-BASIC(WN)インタプリタも発売された。 MS-Windows 2.xx向けのものであり、MS-Windows 3.0(スタンダード及びエンハンストモード)以降では動作しない(リアルモードではかろうじて動作するもののフリーエリアがほとんど無い)。MS-Windowsのメタデータ機能などに対応している。 == 互換BASIC == === EPSON DISK BASIC === [[互換性]]のある処理系として[[EPSON DISK BASIC]]が発売されていた。これはPC-9800シリーズの[[互換機]]であった[[EPSON PCシリーズ]]でBASIC[[ソフトウェア]]資産を利用できるようにするため開発されたもので、N<small>88</small>-BASICとほぼ同等である<ref>一例として、PLAY文でバックグラウンド演奏時にバッファがあふれる時、エラーになるか、エラーにはならず実行が待たされるだけか、という違いがある。</ref>。 <!-- PC-9800シリーズがROM-BASICのROMを[[ファームウェア]]として[[ハードウェア]]的に搭載しておりDISK-BASICはこれを呼び出すだけであったのに対し、{{要出典範囲|date=2011年5月|BASIC ROMのないEPSON PC用のものは[[インタプリタ|インタープリタ]]すべてのフルセット}}であった。この違いは、利用可能なフリーエリア量に反映される。 --> === BASIC/98 === N<small>88</small>-BASIC(86)と文法互換で、「インクリメンタルコンパイル」と呼称する[[実行時コンパイラ|実行時コンパイル処理]]により実行速度を高速にした[[BASIC/98]]が存在し、PC-9800シリーズと、その他の各機種に発売されている。 行分けIF文、ローカル変数を持つサブルーチン、関数など、構造化プログラミングをサポートする機能が拡張されている。 しかし、当時のパソコンで使用するにはフリーエリアが極端に少なく、大きなソースを実行できない、多量の配列を確保できないなどの問題点があった。 その後、MS-Windows用が発売され、MS-DOS用とほぼ同じ機能を実現している。 MS-Windows版では、フリーエリアの制限がほぼ撤廃され、大きなソースプログラムの実行、巨大な配列の使用が可能になった。また、Windows用であるにもかかわらず、I/Oポートへのアクセスが可能となっている。 === N88互換BASIC === Windowsのフリーソフトとして「[http://www.vector.co.jp./soft/win31/prog/se025866.html N88互換BASIC for Windows]」「[http://www.vector.co.jp./soft/win95/prog/se055956.html N88互換BASIC for Windows95]」が存在する。<!--情報をお持ちの方、詳細を記述願います。--> === Be88-BASIC === BeOS/ZETAのフリーソフトとして、他のフリー互換BASICと比較してかなり互換性の高い「[http://www2u.biglobe.ne.jp/~shinta/be/_BL_BeWare_Be88BASIC.htm?DefaultStyle Be88-BASIC]」が存在する。<!--情報をお持ちの方、詳細を記述願います。--> == 注 == <references/> == 関連項目 == *[[マイコンBASICマガジン]]([[電波新聞社]]) {{BASIC}} {{Computer-stub}} [[Category:日本電気]] [[Category:BASIC]] [[Category:オペレーティングシステム]]
このページで使用されているテンプレート:
テンプレート:BASIC
(
ソースを閲覧
)
テンプレート:Computer-stub
(
ソースを閲覧
)
テンプレート:要ページ番号
(
ソースを閲覧
)
N88-BASIC
に戻る。
検索
検索
N88-BASICのソースを表示
話題を追加