MSX Datapack wiki化計画

2章 主要ユニットの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[1章 概略仕様]]                                                                   ,{BSIZE:0|RIGHT}[[3章 インターフェイス]]→

!!2.1 LSI
,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0}
,CPU,Z80A 相当品
,,クロック 3.579545MHz(テレビ色副搬送波周波数)
,,M1サイクルで1WAIT挿入

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:60},{BSIZE:0}
,VDP,MSX,TMS9918A 相当品
,,MSX2,V9938 相当品
,,MSX2+,V9958 相当品

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:160}
,PSG,AY-3-8910 相当品

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:400},{BSIZE:0|SIZE:160}
,FM音源,MSX-AUDIO(Y8950 相当品)
,,MSX-MUSIC(YM2413 相当品)

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0},{BSIZE:0}
,PPI,i8255相当品


!!2.2 メモリ
!2.2.1 使用メモリ
,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:260},{BSIZE:0|SIZE:80}
,ROM,MSX,MSX BASIC ver1.0,32KB
,,MSX2,MSX BASIC ver2.0,48KB
,,,MAIN ROM 32KB、SUB ROM,16KB
,,MSX2+,MSX BASIC ver3.0,80KB
,,,MAIN ROM 32KB、SUB ROM,16KB
,,,漢字ドライバ,16KB
,,,単漢変換,16KB

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:80},{BSIZE:0|SIZE:260},{BSIZE:0|SIZE:80}
,RAM,MSX,,8KB以上
,,MSX2,,64KB以上
,,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バイトとします。

{{svg 図1.1.svg}}
'''図1.1 メモリマッパーの論理的構成'''

{{svg 図1.2.svg}}
'''図1.2 メモリマッパーの物理的構成'''

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

,{t},{BSIZE:2 0}
,{c UD},{SIZE:200|CENTER|BSIZE:2 0 1 0}
,{c S8},{SIZE:80}
,{c S10},{SIZE:120}
,{c NO},{BSIZE:0}
,{c},{UD|S8|CENTER},{UD|S10|CENTER},{UD|S8|CENTER},{UD|CENTER}
,I/Oアドレス,初期化データ,CPU空間のページ,マッパーセグメント
,{c},{NO|CENTER},{NO|CENTER},{NO|CENTER},{NO|CENTER}
,FCH,03H,0,3
,FDH,02H,1,2
,FEH,01H,2,1
,FFH,00H,3,0


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

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

,{SIZE:100|CENTER}注 意

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

'''4.メモリマッパー回路例'''
 以下に、メモリマッパーの回路例を示します。この回路例は、メモリマッパーのロジックを理解する上で参照して下さい。
{{image 図1.3.PNG,,size:50%}}
'''図1.3 メモリマッパー回路 (画像クリックで拡大表示します)'''
({{ref 図1.3.CE3}}([水魚堂の回路図エディタ|http://www.suigyodo.com/online/schsoft.htm]を使用しています。)

!!2.3 割り込み
,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:60},{BSIZE:0}
,NMI,使用しません。
,INT,VDPおよびカートリッジバスからの外部割り込みです。
,   ,MSX BASICインタープリタは、VDPからの60Hz(NTSC方式)または50Hz(PAL・SECAM方式)の信号を割り込みとして使用します。割り込みモードは1(38H番地に分岐)です。
{{svg 図1.4.svg}}
図1.4 割り込み回路例


,{SIZE:100|CENTER}注 意

,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:60},{BSIZE:0|SIZE:20},{BSIZE:0}
,,,MSX-DOSでは、66H番地(NMIエントリアドレス)がMSX-DOSのFCBデータエリアとして使用されるため、NMIは使用できません。

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

!!2.5 キーボード
,{t},{BSIZE:0}
,{c},{BSIZE:0},{BSIZE:0},{BSIZE:0}
,配列,英数字,JIS標準配列
,    ,カナ  ,JIS標準配列、五十音配列
,    ,      ,(ジャンパによる切り替え)
,{c},{BSIZE:0},{BSIZE:0|COLS:2},{BSIZE:0}
,キースキャン,ソフトウェアによる,
,キートップ数  ,最大88個,
,キーマトリックス図,(カナは五十音配列。JIS標準配列は次ページ参照)
{{svg 図1.6.svg}}
図1.6 キーのマトリックス

{{svg 図1.7.svg}}
図1.7 JIS配列キーボード

{{svg 図1.8.svg}}
図1.8 五十音配列キーボード

!!2.6 サウンド

!2.6.1 音源LSIと仕様

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

MSX-AUDIO
,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:50},{BSIZE:0|SIZE:280},{BSIZE:0}
,,LSI,Y8950相当品
,,音階,8オクターブ
,,同時発声数,9声または6声+5リズム
,,オペレータ数,2
,,ADPCM機能,あり
,,ADPCM用RAM,32KB〜256KB
,,ミュージックキーボード接続端子,あり
,,音声入力端子,マイクレベル ミニジャック
,,音声出力端子,ラインレベル RCA2ピン

MSX-MUSIC
,{t},{BSIZE:0}
,{c},{BSIZE:0|SIZE:50},{BSIZE:0|SIZE:280},{BSIZE:0}
,,LSI,Y2413相当品
,,音階,8オクターブ
,,同時発声数,9声または6声+5リズム
,,オペレータ数,2
,,ADPCM機能,なし
,,ミュージックキーボード接続端子,なし
,,音声入力端子,なし
,,音声出力端子,RCA2ピン

!2.6.2 音声関連機能の内部接続
 MSXの音声出力端子には、内部音源とオプション音源の音声出力がミキシングして出力されます。
{{image "図1.9.svg"}}
{{svg 図1.9.svg}}
図1.9 MSXの音声出力

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[1章 概略仕様]]                                                                   ,{BSIZE:0|RIGHT}[[3章 インターフェイス]]→