,{c H},{BGCOLOR:dddddd|BOLD|CENTER} ,{c C},{CENTER} ,{c L},{LEFT} ,{c W},{LEFT|BGCOLOR:white|BOLD} //!!!1章 MSX1からMSX2へ  まず最初に、MSXというコンピュータがそもそもどのような主旨で企画・製品化されたものかを振り返り、そのあとMSX1からMSX2への変化をまとめます。 !!1.1 MSX とは  MSXは、1983年秋に8ビットパソコンの統一仕様として発表されました。発足当時は“互換性”という言葉が正しく理解されていないことも多く、MSXならほかのどんなパソコンのソフトも動くというような誤解もあったようです。また逆に、MSXはMSXのソフトしか動かないのなら、PCシリーズはPC用、FMシリーズはFM用のソフトしか動かないのとどこが違うのかという意見も聞かれました。  コンピュータというマシンがパソコンという形で、一般の人々にも手が届くものになったのはまだここ数年のことです。出始めの頃は一般といっても、パソコンを買ったのは本当のマニアばかりで、互換性はおろか、実用に供することさえ難しかったものでした。ただひたすらコンピュータというものに触れ、その勉強ができればよかったのです。しかし、今では普及率もかなりのものとなり、意外な人がなんとなくパソコンを持っているというようなことにさえなってきました。つまり、パソコンはテレビやラジカセのような家電製品になろうとしているわけです。こうなってくると“互換性”という問題が前面にでてきます。メーカーごとに違った放送局が必要なテレビや違ったテープが必要なラジカセといったものは、果たして普及するでしょうか? 家電製品としてのコンピュータのソフトは絶対に互換性を持っていなければならないのです。  こうしたことを見越した上で始まったのがMSXです。しかし、コンピュータのメリットが“何でも使える”ことだということを考えると、仕様を統一するといっても、あまりに決めるべき事項が多すぎ、またハードウェアの進歩が速過ぎるために、“決定的”な仕様などは存在し得ないということになります。したがって、MSXでは最も基本的なハードウェアおよびDOS、BASICといった基本ソフトウェア、あらゆる拡張の基礎となるスロットの仕様を決めることから始まりました。コンピュータが単体で利用されているうち(ゲームなど)はまだよいのですが、これが様々な“周辺機器”とつながり、様々なデータを処理、蓄積するようになっていくと、後から後から決めなければならないことが増えてきます。幸い、MSXには多くの家電メーカーの賛同が得られ、ありとあらゆる家電製品をコンピュータにつなげる試みがなされ、仕様ができあがっていきました。これは、MSXを“核”として皆が集まってくるのであって、あるひとつのコンピュータのメーカーが自社のマシンを中心にして、他の“周辺機器”をそろえていくのとは根本的に発想が違うのです。  MSXはこのようにして進められてきたもので、その根底は非常にしっかりとしたものです。BASICの基本演算に倍精度のBCDを採用し、ディスクシステムとしてMS-DOSと同一のファイルフォーマットを使っていることなどは、MSXが本格的コンピュータとして設計されていることを示す良い例です。今後は、こうしたMSXの底力がいろいろな分野で発揮されるようになることでしょう。 !!1.2 MSXの環境と拡張性  MSXは1985年12月に、普及台数100万台を超え、主にゲーム機または入門機として小中学生の間で使われています。しかし、次第に通信端末、日本語ワープロ、ファクトリ・オートメーション、オーディオ・ビジュアル・コントロールといった分野での利用も進み、その真価を発揮しつつあります。開発環境としてもディスク・システム、MSX-DOSの整備が進み、Cコンパイラ、FORTH、LOGOなどの高級言語が次々と発表、発売されています。BASIC ROM内の入出力ルーチンの集合体であるBIOSや、ディスク・インターフェイスROM内のBDOS(CP/Mのシステムコールとほぼ互換性を持ち、さらに大きく改良されている)は公開され、優れたプログラミング環境を提供しています。漢字の扱い方や、マウス、ライトペン、RS-232Cの規格なども標準化され、周辺機器の統一も進んでいます。また国際的なレベルでもキーボードやキャラクタセットの一部を除いて同一のものとなっていて、それらの違いも各国ごとに規定されています。  周辺機器としては、プリンタ、ディスク・ドライブ、マウスなどの標準的なものの他、LD、VTR、シンセサイザのコントローラ、画像取り込みなどのAV関係の装置、ロボット・コントロール、室温管理などに代表されるFA用の機器、モデムや電話回線を利用するための様々なアダプタ、血圧計と組み合わせた健康管理機器などが開発されています。コンピュータの利用方法がいかに広がってゆくかを見せつけられる思いです。  ゲーム以外の一般的なアプリケーション・ソフトウェアも、最近ではディスク対応のものが増え本格的な実用性を備えてきています。例をあげると、文節変換のできる日本語ワープロ、より上位のシステムとデータを共有できるようなデータベース、CAI、CADなどのシステムがすでに発売されています。 !!1.3 MSX2での拡張内容  MSX2は、1985年5月にMSXの上位互換性をもったシステムとして発表されました。MSXの仕様に沿って作成されたプログラムは、マシン語のものであってもなんらの変更を加えることなくMSX2上で動作します。また、カセットやディスク上に蓄積されたデータやプログラムもそのまま使うことが可能です。MSX2において拡張されたのは主に画面関係の機能で、解像度、扱える色、グラフィック処理の速度などが大幅に改善されました。そのほかにもバッテリバックアップされた時計機能、標準で64Kに統一されたメインRAMを使ったRAMディスク機能などがあげられます。以下本書では、このMSX2仕様に沿って作られたコンピュータをMSX2と呼び、従来のMSX仕様に沿って作られたコンピュータをMSX1と呼ぶことにします。  まず、MSX1とMSX2のハードウェアではどこが違うかを、図1.1 と図1.2 のシステム構成図、および表1.1 に示します。以下この中で拡張された各項目について、順に見ていきましょう。 ,{t},{CENTER} ,{COLS 2|H},,MSX2仕様{H},MSX1仕様{H} ,CPU{COLS 2},,Z80A 相当品(クロック 3.579545MHz ± 1%){COLS 2} ,メモリ{ROWS 3},ROM,48K(MSX-BASIC ver2.0){{br}} MAIN-ROM 32K{{br}} SUB-ROM 16K,32K(MSX-BASIC ver1.0){{br}} MAIN-ROM 32K ,,RAM,64K以上,8K以上 ,,VRAM,64Kまたは128K,16K ,VDP 使用LSI{COLS 2},,V-9938(MSX-VIDEO),TMS9918相当品 ,CMT{COLS 2},,FSK方式 1200/2400 baud{COLS 2} ,PSG{COLS 2},,8オクターブ3重和音出力(AY-3-8910相当品){COLS 2} ,キーボード(日本版){ROWS 3|COLS 2},,英数、ひらがな、カタカナ,英数、ひらがな、カタカナ ,,,グラフィック記号対応,グラフィック記号対応 ,,,JIS配列/50音配列対応(ローマ字入力可能),JIS配列/50音配列対応 ,フロッピーディスク※{COLS 2},,フォーマットはMS-DOSに準拠{COLS 2} ,プリンタ{COLS 2},,8ビットパラレル,(※) ,ROMカートリッジ{COLS 2},,I/Oバス{{br}}ゲームカートリッジ、拡張バスに対応するスロットを持つ{COLS 2} , ジョイスティック{COLS 2},,2,1または2(※) , 漢字機能※{COLS 2},,統一仕様,各社対応 , CLOCK-IC{COLS 2},,あり,なし , RAMディスク機能{COLS 2},,あり,なし ※はオプションを表す。 {{div_begin style='text-align:center;'}} '''表1.1 MSX2とMSX1の仕様比較''' {{div_end}} {{svg 図1.1a.svg,,size:650x500}} {{div_begin style='text-align:center;'}} '''図1.1 MSX2システム構成''' {{div_end}} {{svg 図1.2a.svg,,size:650x500}} {{div_begin style='text-align:center;'}} '''図1.2 MSX1システム構成''' {{div_end}} '''● MSX-BASIC'''  新VDP、バックアップRAM、CLOCK-ICなどをサポートするため、BASICもver 1.0 から ver 2.0 へ大幅に拡張されました。もちろん、MSX1との互換性は保たれています。ただし、新しく拡張された画面モードなどを使用する場合、今までとは指定方法や指定範囲が若干異なる場合がありますので注意が必要です。 '''● メモリ(ROM、RAM、VRAM)'''  MSX2のメモリには、ROM、RAM、VRAMの3種類がありますので、それぞれについて説明しましょう。 '''ROM'''  ROMは標準で48K用意されています。MSX1は、標準で32Kですから16K分増えたことになります。この増えた16K分のROMには、主にMSX2に対して拡張された部分をサポートするプログラムが入っています。  32K側のROMにはBASICインタープリタのメインプログラムが入っているので“MAIN-ROM(メインロム)”、16K側のROMには拡張のためのプログラムが入っているので“拡張ROM”、あるいは“SUB-ROM(サブロム)”と呼んでいます。 '''RAM'''  RAMは標準で64K用意されており、拡張なしでMSX-DOSを動かすことができます。MSX1では8Kから64KまでRAM容量が様々で、大きなプログラムはRAMを増設しないと動かないことがありましたが、MSX2ではそのようなことがなくなっています。 '''VRAM'''  画面表示機能強化のためVRAMは最低でも64Kと規定されています。MSX1が16Kですから、実に4倍にも拡張されたことになります。しかし、現実的には最大実装の128Kのマシンが多く、そうなるとMSX1の8倍にもなるのです。128K実装しているマシンでは、256色同時表示が可能です。  なお、VRAMが64K実装されているMSX2のうち128Kに増設できない機種は、カタログまたは箱にVRAM64Kなどと表示されているはずです。 '''● VDP'''  MSXの画面の制御に使用されているのが“VDP(ビデオ・ディスプレイ・プロセッサ)”というLSIです。MSX1で使われていたVDPはTMS9918でしたが、MSX2にはV9938(MSX-VIDEO)が使われています。V9938は、TMS9918と完全に上位互換性を持ったチップで、TMS9918用に作られたソフトウェアはすべて変更なしに動作します。  表1.2 にVDPの仕様を、表1.3 にV9938の各画面モードを示します。V9938はこのほかにも、ディジタイズ機能、スーパーインポーズ機能、ハードウェア・スクロール機能などを持った優れたLSIなので、第4部でさらに詳しく解説しています。 ,{t},{CENTER} ,{COLS 2|H},,V9938{H},TMS9918{H} ,スクリーンモード{COLS 2},,10種類(表1.3参照),4種類 ,ドット数(横×縦){ROWS 3|COLS 2},,最大512×212,最大256×192{ROWS 3} ,,,インターレース機能により, ,,,縦424ドットも可能, ,色{ROWS 2|SIZE 50},指定色,最大512色,最大16色 ,,同時表示色,最大256色,最大16色 ,文字構成{ROWS 2|COLS 2},,英数文字+ひらがな+カタカナ+グラフィック記号{COLS 2} ,,, 256種 8×8ドット{COLS 2} ,スプライトの色{COLS 2},,1枚につき最大16色,1枚につき1色 ,パレット機能{COLS 2},,あり,なし {{div_begin style='text-align:center;'}} '''表1.2 VDPの仕様''' {{div_end}} ,{t},{CENTER} ,{c},{H},{H},{H},{H},{H},{H} ,モード,文字数,ドット,色,パレット,スプライト ,{c},{C},{C},{C},{C},{C},{C} ,*テキスト1,40×24,,512色中2色,あり,なし ,テキスト2,80×24,,512色中4色,あり,なし ,マルチカラー,,64×48,512色中16色,あり,モード1 ,*グラフィック1,32×24,,512色中16色,あり,モード1 ,*グラフィック2,,256×192,512色中16色,あり,モード1 ,グラフィック3,,256×192,512色中16色,あり,モード2 ,グラフィック4,,256×212,512色中16色,あり,モード2 ,グラフィック5,,512×212,512色中4色,あり,モード2 ,グラフィック6,,512×212,512色中16色,あり,モード2 ,グラフィック7,,256×212,256色中256色,なし,モード2 *はTMS9918と同機能のモードです。ただしパレットはV9938のみの機能です。 {{div_begin style='text-align:center;'}} '''表1.3 V9938画面モード一覧''' {{div_end}} '''● バッテリバックアップのCLOCK-IC'''  MSX2には電池によりバックアップされているRAMがI/Oポートより接続されており、リセット時のセットアップ情報の保存と、カレンダ機能のために使用されています。セットアップ情報とは、リセット時の画面の色や画面モードなどを指し、これを保存しておくことによって、起動時にユーザーが望む環境に設定することができます。  CLOCK-ICはMSXの電源とは完全に独立して動いているので、リセット後、新たに時間を設定する必要がなくなりました。 '''● RAMディスク機能'''  64KバイトのRAMを実装しているMSX1のマシンでBASICを使用している場合、32KのRAMが使用されるのみで、残りの32Kはまったく使われませんでした。MSX2では、この眠っているRAMをRAMディスクとして使用することができます。ディスク・ドライブを持っていない人がBASICプログラムを一時的にロード、セーブするには、とても便利な機能です。 '''● ローマ字カナ変換機能'''  MSXのかなキー配列には、JIS配列と50音配列の2種類がありますが、英字入力に慣れ親しんだ人にとってはどちらの配列であっても、かな文字の入力は容易ではないでしょう。このため、MSX2ではローマ字によるひらがなとカタカナの入力が可能となっており、マン・マシンインターフェイスが一段とよくなりました。このローマ字かな変換機能は、MSX-DOS、MSX-BASICどちらのモードでも利用できます。