MSX (総称)
読み:エムエスエックス
外語:MSX: MicroSoft X

 世界初のパソコン共通仕様と、その仕様に基づいて作られたコンピューターのこと。MSXのXは未知数の「X」である。
目次

概要

由来
 一社独占を排斥し、世界共通のプラットフォームを提供することを目的としたマルチメディア・ホームパソコン規格の先駆け。
 現在も、世界で唯一のフルスペックなパソコン標準規格である。
 こうして、MSXには様々な家電メーカーが参入した。
 
 
 

快挙
 高度なBASIC言語の標準装備やCP/M及びMS-DOS互換OSの採用、絶妙なハード設計など、何を取っても当時としては斬新なものばかりであった。
 その後16ビット/32ビットなどのパソコンも登場してきたため、8ビット機であったMSXは時代の波に洗われた。しかし最新の高性能なパソコンでも、MSXに匹敵するような標準規格というものは、未だ無い。MSXとは、それ程までの快挙だった。

特徴

シリーズ
 MSXには、次の4シリーズがある。

低価格と拡張性
 家庭用のコンピューターとするためには、安価でなければならない。そこで、安価で、かつ多機能な方向性を追求した。かくして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 SystemMSX-Engine)の仕様から、拡張スロットに対応したのは基本スロット0と3のみである。

スロット割り当て
 スロットとROMやRAMの割りつけ方は機種ごとに様々で、MSXturboRまで標準化されなかった。
 一般的な例としては、次のようなものがある。
 このスタイルの場合、BASIC環境では各ページに次のようにスロットが割り付けられる。
 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で動作することが知られるオペレーティングシステムには、次のようなものがある。

再検索