MSX Datapack wiki化計画

2章 主要ユニット

 2.1 LSI

CPUZ80A 相当品
クロック 3.579545MHz(テレビ色副搬送波周波数)
M1サイクルで1WAIT挿入
VDPMSXTMS9918A 相当品
MSX2V9938 相当品
MSX2+V9958 相当品
PSGAY-3-8910 相当品
FM音源MSX-AUDIO(Y8950 相当品)
MSX-MUSIC(YM2413 相当品)
PPIi8255相当品

 2.2 メモリ

2.2.1 使用メモリ

ROMMSXMSX BASIC ver1.032KB
MSX2MSX BASIC ver2.048KB
MAIN ROM 32KB、SUB ROM16KB
MSX2+MSX BASIC ver3.080KB
MAIN ROM 32KB、SUB ROM16KB
漢字ドライバ16KB
単漢変換16KB
RAMMSX8KB以上
MSX264KB以上
MSX2+64KB以上

2.2.2 メモリマッパー

1.メモリマッパーの概要
 MSXではCPUのメモリ空間をスロットという空間(「3.9 スロット」参照)に割り付けます。
 メモリマッパーとは、MSXの任意のスロットに装備することができ、スロットのメモリ空間の論理アドレスをメモリの物理アドレスに変換し、1つのスロットに接続できるメモリ空間を最大で4Mバイトまで拡張する装置です。
 スロットのメモリ空間の各ページ(16Kバイト×4ページ)は、最大で256ページ(1ページは16Kバイト)の任意のマッパーセグメントに割り当てられます。マッパーセグメントとスロットのメモリ空間の物理ページの対応は、マッパーセグメント選択レジスタの内容によって決められます。
 マッパーセグメント選択レジスタはI/OアドレスのFCH番地からFFH番地までの4バイトに置かれ、それぞれのレジスタは、CPU空間の物理ページ0〜3までに対応します。
 マッパーセグメント選択レジスタは書き込み専用で、1つのスロットに対して1組用意することができます。このレジスタに値を書き込むと、他のスロットのマッパーセグメント選択レジスタにも同時に値が書き込まれます。その結果、すべてのスロットのマッパーセグメントが切り替わるので注意してください。「3.9 スロット」を参照して下さい。
 メモリマッパーはMSX2、MSX2+のオプション機能です。メモリマッパーに接続されるメモリは最小で64Kバイトとします。


図1.1 メモリマッパーの論理的構成


図1.2 メモリマッパーの物理的構成

2.マッパーセグメント選択レジスタの初期化
 MSX2、MSX2+システムは、リセット時にマッパーセグメント選択レジスタを下記の値で初期化します。メモリマッパー有無の検出は行いません。マッパーセグメント選択レジスタの初期化は、I/Oポートにデータを書くだけの処理なので、メモリマッパーの機構を持たないハードウェアに対して影響はありません。

I/Oアドレス初期化データCPU空間のページマッパーセグメント
FCH03H03
FDH02H12
FEH01H21
FFH00H30

 マッパーセグメント選択レジスタの初期化後、システムはRAMのサーチ、ROMのサーチなどの初期化を行います。詳しくは「第2部 システムソフトウェア」を参照して下さい。
 海外版のMSX BASIC version 2.1は、メモリディスク機能のためにメモリマッパーを使用します。また、MSX-DOS version 2はメモリマッパーが必須となります。その他のBASICやMSX-DOS version 1はメモリマッパーを使用しません。

3.メモリマッパーの使用方法
 メモリマッパーの容量と実装されているスロット(複数のスロットに実装されていることもある)は、機種によって異なりますので、アプリケーションソフトウェアが調べる必要があります。
 ただし、MSX-DOS2の環境ではメモリマッパーはすべてDOSが管理するので、MSX-DOS2のメモリアクセスの規則(拡張BIOSコール)にしたがって下さい。

注 意
メモリマッパーを使用したアプリケーションプログラムがBASICやDOSに制御を戻すときには、マッパーセグメント選択レジスタを初期状態に戻さなければなりません。(DOS2使用時を除く)。
メモリマッパーを必要とする商用ソフトウェアは、メモリマッパーが必要である旨と必要とする容量がユーザーにわかるよう、「マッパーRAM(xxxKB)必要」などと明記して下さい。
マッパーセグメント選択レジスタの長さは、実装されているメモリ容量より大きくても構いません。たとえば、512Kバイトまで扱えるように5ビットのマッパーセグメント選択レジスタがあり、実装されているメモリが64Kバイトの機種もありえます。
1つのMSXシステムに複数のマッパーRAMが実装されていた場合、マッパーセグメント選択レジスタを書き換えると、ほかのスロットのマッパーRAMも切り替わります。
DOS2の環境では、メモリマッパーはDOS2が管理しています。したがってアプリケーションプログラムがマッパーセグメント選択レジスタを直接操作するときは、DOS2のメモリ管理の状況を十分把握していないと、システムのクラッシュ(暴走)を招きます。

4.メモリマッパー回路例
 以下に、メモリマッパーの回路例を示します。この回路例は、メモリマッパーのロジックを理解する上で参照して下さい。
図1.3.PNG
図1.3 メモリマッパー回路 (画像クリックで拡大表示します)
(図1.3.CE3(310)(水魚堂の回路図エディタを使用しています。)

 2.3 割り込み

NMI使用しません。
INTVDPおよびカートリッジバスからの外部割り込みです。
MSX BASICインタープリタは、VDPからの60Hz(NTSC方式)または50Hz(PAL・SECAM方式)の信号を割り込みとして使用します。割り込みモードは1(38H番地に分岐)です。


図1.4 割り込み回路例

注 意
MSX-DOSでは、66H番地(NMIエントリアドレス)がMSX-DOSのFCBデータエリアとして使用されるため、NMIは使用できません。

 2.4 画面表示

使用IC MSX TMS9918A相当品
MSX2 V9938相当品
MSX2+V9958相当品
 
文字構成英数文字+ひらがな+カタカナ+グラフィック記号  256種
8×8ドット(英数文字とカタカナは右の2ドットを使用しない)
JIS第一水準漢字 2965字(MSX、MSX2ではオプション)
JIS第二水準漢字 3384字(オプション)
 
最大表示色MSX 16色
MSX2 256色
MSX2+19268色
 
スプライトMSX 32枚のスプライト。同一水平線上に4枚まで表示可能。
MSX2 32枚のスプライト。同一水平線上に8枚まで表示可能。1ラインごとに色を変えることができる。
MSX2+32枚のスプライト。同一水平線上に8枚まで表示可能。1ラインごとに色を変えることができる。
 
画面表示モード「第4部 VDP」を参照して下さい。


図1.5 表示文字コード一覧

 2.5 キーボード

配列英数字JIS標準配列
カナ JIS標準配列、五十音配列
(ジャンパによる切り替え)
キースキャンソフトウェアによる
キートップ数 最大88個
キーマトリックス図(カナは五十音配列。JIS標準配列は次ページ参照)


図1.6 キーのマトリックス


図1.7 JIS配列キーボード


図1.8 五十音配列キーボード

 2.6 サウンド

2.6.1 音源LSIと仕様

PSG

LSIAY-3-8910相当品 クロック 1.7897725MHz
音階8オクターブ(3重和音出力可)
同時発声数3声+ノイズ
特殊効果音機能あり
ソフトウェアサウンド機能1bitポートによる音出力
出力信号レベル-5dbm
コネクタRCA2ピン

MSX-AUDIO

LSIY8950相当品
音階8オクターブ
同時発声数9声または6声+5リズム
オペレータ数2
ADPCM機能あり
ADPCM用RAM32KB〜256KB
ミュージックキーボード接続端子あり
音声入力端子マイクレベル ミニジャック
音声出力端子ラインレベル RCA2ピン

MSX-MUSIC

LSIY2413相当品
音階8オクターブ
同時発声数9声または6声+5リズム
オペレータ数2
ADPCM機能なし
ミュージックキーボード接続端子なし
音声入力端子なし
音声出力端子RCA2ピン

2.6.2 音声関連機能の内部接続

 MSXの音声出力端子には、内部音源とオプション音源の音声出力がミキシングして出力されます。

図1.9 MSXの音声出力