MSX BASIC
読み:エムエスエックス-ベーシック
外語:MSX BASIC
MSXシリーズに標準搭載されていたBASIC言語。「MSX-BASIC」とも書かれるが、画面上にはMSX BASICと表示されている。
概要
ROMとして内蔵されており、フロッピーディスクが挿入されていなかったり、カートリッジスロット等に自動起動するソフトウェアが無い場合、このBASICが起動する。
64Kiバイトのメモリー空間のうち32KiバイトにBASICが存在し、残る32Kiバイトにメインメモリーが8Kiバイト、16Kiバイト、32Kiバイトの何れかが配置される。
MSXは様々なメーカーが参入する規格で、ハードウェアの仕様も様々あったことから、このハードウェアの違いを吸収、隠蔽するOSのような機能/役割も有していた。
特徴
機構
MSXは、64Kiバイトのメモリー空間を16Kiバイトごとに区切り、スロットとして切り替えて使用できる。
BASICインタプリタはスロット0のページ0と1に配置される。メインメモリーは機種ごとに違うが、スロット3-0に置かれ、これがページ2と3に配置される仕様が多かった。
MSX2以降は機能拡張に対応するため、サブBIOS ROM 16Kiバイトがスロット3-1に配置され、切り替えて使われた。
BASICインタプリタは、BASICからだけではなくMSX-DOSなどからも呼び出して利用できる機能が用意されており、例えばBASICで使われているBCD浮動小数点演算機能Math-Pachなどがある。
特殊機能
Microsoftの一般的な8ビットCPU用BASICに対し、MSXの機能を充足するための新機能が搭載されている(ABC順)。
- CALL
- 拡張命令の呼び出し。アンダースコア_で省略可能。
- 各スロットごとにCALL命令拡張のためのアドレスが用意されており、自由に追加することが出来た。またシステムに拡張機能が搭載された場合も、CALLで呼び出す例が多かった。
- DISK-BASICの場合はCALL SYSTEMでMSX-DOSを呼び出すことが可能
- MSX2+の漢字モードはCALL KANJIで切り替え、CALL ANKで戻ることが可能
- FM音源は、MSX-AUDIOならCALL AUDIO、MSX-MUSICならCALL MUSICで呼び出すことが可能
- CMD
- 他機種ではCMDで命令を拡張する例が多かった。MSXにもあり拡張可能だが、殆ど使われていない。
- ON … GOSUB
- キーボード入力(KEY)、スプライト衝突(SPRITE)、インターバルタイマー(INTERVAL)などの条件でサブルーチンをコールする割り込み命令。
- PLAY
- 搭載されているPSG(AY-3-8910)を利用して演奏する機能。
- 演奏方法はMMLとして記述する。
- PUT
- 出力関係の拡張用。PUT SPRITEでスプライト表示、PUT KANJIで漢字表示など。
- SET
- 設定関係の拡張用。SET ADJUSTなど、MSX2以降で多数拡張された。
- SPRITE$(n)
- スプライトのパターンを定義するための関数。
- VDP
- VDPのレジスターを読み書きするための関数。
- VPOKE,VPEEK
- VRAMの読み書きを行なう関数。
- MSXでは、VRAMはVDPが管理しており、CPUのメモリー空間とは別になることから用意された。POKE,PEEKにVRAMないしVDPのVを冠したことが名前の由来と考えられる。
バージョン
MSXの規格に応じて、様々なバージョンが存在した。
- バージョン1
- 初代MSX用のBASICは、MSX BASIC version 1.0である。
- バージョン2
- MSX2用のBASICである。MSX BASIC version 2.0である。
- 新VDP(V9938)に対応し、SCREEN命令やスプライト機能まわりの拡張
- 同じく新VDPに対応し、SET ADJUSTなど画面まわりの機能をSET命令で追加
- 同じく新VDPに対応し、COPYステートメントで画面、配列、ディスクファイル間で画像データを転送を可能とした
- マウス、トラックボールなどの入力機器に対応
- バッテリーバックアップのカレンダー時計機能に対応
- BASIC ROMに隠れてBASICから直接使えないメモリー(裏RAM)をメモリーディスクとして利用する命令の追加
- 漢字ROMのグリフをグラフィック画面に表示するPUT KANJI命令の追加
- かな入力で、ローマ字入力に対応(SHIFT+かな)
- その他、BEEP音変更、パスワード設定、プロンプト設定、タイトル文字列設定などの機能をSETステートメントで追加
- バージョン3
- MSX2+用のBASICである。MSX BASIC version 3.0である。
- 新VDP(V9958)に対応し、SCREEN命令が拡張された(SCREEN 10/11/12の自然画モード追加)
- SET SCROLLで、BASICから縦横のハードウェアスクロールを可能とした
- 漢字BASIC搭載。CALL KANJIで利用可能
- 日本語処理(MSX-JE)に関する機能追加(オプション仕様)
- 半角ひらがな等のグリフを変更、SCREEN 0で横2ドットが切れても読みにくくならないよう改善
- 時代を反映してか、F7の初期設定が従来の「cload"」から「load"」に変更
- バージョン4
- MSXturboR用のBASICである。
- FS-A1ST用が、MSX BASIC version 4.0である。
- FS-A1GT用が、MSX BASIC version 4.1である。
- 新CPU、R800に対応
- 新機能であるPCM機能に対応する命令の追加
- MSX-DOS2内蔵に伴い、Disk BASIC version 2.0にバージョンアップ
- DOS2で対応するメモリーマッパー用メモリーを使うRAMDISK機能搭載
- カセットテープI/Oに関する機能、命令の削除(CLOAD/CSAVE/MOTOR)
- MSX-MUSICの機能を標準搭載、CALL MUSIC対応
- FS-A1GTではMIDIに対応した。これがver 4.1である
- バージョン5
- 正体は不明だが、MSX BASIC version 5.0なるものも存在するらしい。
再検索