MSX (総称)
読み:エムエスエックス
外語:MSX: MicroSoft X
世界初の
パソコン
共通仕様と、その仕様に基づいて作られたコンピューターのこと。MSXのXは未知数の「X」である。
目次
概要
由来
快挙
特徴
シリーズ
低価格と拡張性
CPU
人気
技術
スロット
発想
スロット割り当て
メモリーマッパー
バンクメモリー
対応環境
動作するOS
概要
由来
一社独占を排斥し、世界共通のプラットフォームを提供することを目的としたマルチメディア・ホームパソコン規格の先駆け。
現在も、世界で唯一のフルスペックなパソコン標準規格である。
こうして、MSXには様々な家電メーカーが参入した。
快挙
高度な
BASIC
言語の標準装備や
CP/M
及び
MS-DOS
互換OSの採用、絶妙なハード設計など、何を取っても当時としては斬新なものばかりであった。
その後16ビット/32ビットなどのパソコンも登場してきたため、8ビット機であったMSXは時代の波に洗われた。しかし最新の高性能なパソコンでも、MSXに匹敵するような標準規格というものは、未だ無い。MSXとは、それ程までの快挙だった。
特徴
シリーズ
MSXには、次の4シリーズがある。
MSX
MSX2
MSX2+
MSXturboR
低価格と拡張性
家庭用のコンピューターとするためには、安価でなければならない。そこで、安価で、かつ多機能な方向性を追求した。かくしてMSXは、Z80をCPUに採用し、安価でありながら拡張性を持った、多機能なシステムとなったのである。
価格を安価に抑えるため、標準搭載の仕様は最小限であったが、必要に応じて
拡張スロット
から拡張可能となっていた。当初はこのような周辺機器にも標準仕様が存在しなかったが、これらも時を経るにつれ標準化が進んでいった。
こうして、当時の一般的なパソコンは安くても20万円程度したのに対し、MSXは1万円台から存在した。お金持ちではなくても購入できた。
CPU
CPUは
Z80
が採用された。最終シリーズとなる
MSXturboR
では、Z80上位互換の
R800
も搭載されている。
今でこそ、
Motorola 68000
にしておけばもっと拡張できて良かったのに、などの声が囁かれることもある。しかし、MSX産みの親
西和彦
は、
Motorola
が大嫌いである旨をイベントで公言しており、採用の芽は無かった。まだ
8086
の方が可能性があったと思われる。
しかし、68000にしろ8086にしろ、そのようなものを採用していたのではMSXのあるべき価格は実現不可能だった(当時の標準的なパソコンと変わらぬ価格になる)ので、Z80をCPUに採用したことは、やはり方針としては正解だったと言える。
人気
1985(昭和60)年に100万台を突破した。
現役を退いた今でも、なお一部の強力なフリークにより、にわかには信じられない程の高度な活動が続けられているほか、制御装置としても目に見えない場所で活躍している。
直接MSXを使うのではなく、高速なパソコンを利用し、
Microsoft Windows
等の環境で動作する
エミュレーター
制作を行なう者もいる。エミュレーターの存在はMSX開発元のASCIIにも公式に認められており、同社の雑誌MSX MAGAZINEにも収録された。
他にも、GUI OSのContikiをMSXに移植する活動などもある。
技術
MSXは、8ビットパソコンである。
かつ、8ビット機としてはかなり後の方に登場した装置であるため、それ以前の装置にあった問題について、様々な技で解決を目指した。
スロット
発想
MSXはCPUに8ビットの
Z80
を使うため、必然的に
アドレスバス
は16ビットに制限され、メモリーは64Kiバイトまでしか使うことができない。しかしMSXは優れていて、スロットという概念でこれを解決した。
スロットは0〜3までの4つある。更に後に、各基本スロットを0〜3の
拡張スロット
に分け、最大16個のスロットに分けることができるようになった。
そして
メモリー空間
は16Kiバイトごとに4ページ(0000H〜3FFFH、4000H〜7FFFH、8000H〜BFFFH、C000H〜FFFFH)に区切り、各ページごとに指定のスロットを割りつけることが可能となっている。
実際にはシステムチップ(
MSX System
、
MSX-Engine
)の仕様から、拡張スロットに対応したのは基本スロット0と3のみである。
スロット割り当て
スロットとROMやRAMの割りつけ方は機種ごとに様々で、
MSXturboR
まで標準化されなかった。
一般的な例としては、次のようなものがある。
スロット0-0 ‐ BIOS
スロット1 ‐ 外部ROMカートリッジ用スロット1
スロット2 ‐ 外部ROMカートリッジ用スロット2
スロット3-0 ‐ 内部RAM
スロット3-1 ‐ サブBIOS(
MSX2
以降)
このスタイルの場合、BASIC環境では各ページに次のようにスロットが割り付けられる。
ページ0(0000H〜3FFFH) ‐ 0-0(BIOS)
ページ1(4000H〜7FFFH) ‐ 0-0(BIOS)
ページ2(8000H〜BFFFH) ‐ 3-0(内部RAM)
ページ3(C000H〜FFFFH) ‐ 3-0(内部RAM)
Z80という「CPUそのもの」は、スロットなどというものは実は知らない。普通にバスで読み書きをするだけである。MSX的には、各ページを参照するよう動作する、と表現できる。
MSXではアドレス回路を工夫し、スロットという拡張方法によってCPUを(良い意味で)騙すことで、上のような技術を実現させたわけである。
この制御は、初期のMSXではヤマハ製のカスタムチップ「
MSX System
」で、後期のMSXでは東芝製のカスタムチップ「
MSX-Engine
」で行なわれた。
メモリーマッパー
バンクメモリー
アドレス空間が64KiバイトしかないMSXでも、スロットという巧妙な技術を使うことで様々な可能性を実現させた。しかし、いかにスロットといえど、そのままで扱えるのはやはり最大で64Kiバイトである。
だが、MSXではこれとは別のメモリー管理機構を用意した。これを、「メモリーマッパー」という。
メモリーマッパーは、ページを2次元的に拡張するようなものである。ページの大きさは16Kiバイトだが、この大きさで、RAMを2次元化するバンクメモリーとした。
このバンク番号は8ビット、つまり256種あるため、都合1スロットあたり16Kiバイト×256で最大4Miバイトまでの大容量メモリーを、8ビットCPUであるZ80ないしR800に過ぎないMSXシリーズで扱うことが出来るようになった。
なお、1基本スロットあたり4拡張スロットあるため、カートリッジで提供できるのは最大で4Miバイトの4倍の16Miバイトとなる。実際に、クラシックパソコン&レトロゲーム機千年稼働救済委員会による同人ハードとして「MSX2/2+用拡張メモリーカートリッジ」(CLPC-MSX16MBRAM)が実在する。
対応環境
ハードウェア的には、各ページごとにI/Oポートによってマッパーのバンクを選択する。
MSX-DOS2以降では「マッパーBIOS」と呼ばれる機能が提供され、安全に利用可能となった。MSX-DOS1環境でもI/Oポートを直接管理すれば利用は可能だが、他の常駐ソフトウェア等と競合すると危険なことになる。
なお、このI/Oポートは書き込みは8ビット可能だが、読み込みは下位5ビットしか返さないという問題がある。上位3ビットは、状況がどうあれ常に111なのである。
MSX標準規格では、このポートを読むことは禁止されており、常に正確な値を得るためには、マッパーポートに書き込んだ値を別に持つ必要があった。マッパーBIOSはそれを行なっており、それ以外のOS環境等でも、これを実現しているものが幾つかある。
なお、MSXではこういったことは珍しいことではなく、
VDP
なども同様であった。
動作するOS
MSXで動作することが知られる
オペレーティングシステム
には、次のようなものがある。
MSX-DOS
UZIX
Contiki
再検索