MSX Datapack wiki化計画

5章 システムを拡張する際の注意

 5.1 スロットの拡張

 基本構成の4スロットを基本スロットと呼びます。基本スロット以上のスロットをシステムに追加する場合には、基本スロットから拡張します。すなわち、拡張されたスロットを選択するには、まず拡張スロットが接続されている基本スロットを選択し、さらに、その中で追加されている拡張スロットを選択する構造を取るものとします。

 この拡張されたカートリッジバスの双方向データバスバッファの向きを制御するのがBUSDIR信号です。

 メモリ(RAMやROMなど)だけのカートリッジ(ゲームカートリッジなど)は、このBUSDIR信号を操作する必要が無いので、カートリッジのコストを低くすることができます。しかし、CPUに対し信号を送るI/Oデバイスを持ったカートリッジは、CPUにデータを送るタイミングに合わせてBUSDIR信号をLレベルにして、バッファの向きをCPU側に変えなくてはなりません。

 拡張スロットのスロットセレクト信号を作成する為のスロットセレクトレジスタは、拡張スロットのメモリアドレスFFFFH番地に置きます。そして、この拡張スロットセレクトレジスタをRAMと区別するため、このレジスタを読み出すとレジスタの内容のコンプリメントが読み出されるものとします。こうすることにより、基本スロットの1から3のどのスロットからでも、また、2つ以上のスロットからでも拡張スロットを設けることができます。

 5.2 I/Oの拡張

 MSXシステムに予め規定されていないI/O装置を追加する場合は、そのI/O装置のアドレスをどこに割り当てるかが問題となります。I/Oアドレスの40H番地からFFH番地までは、MSXシステムの標準装置のための領域なので、その装置が標準装置として認められない限り使うことはできません。00H番地から3FH番地は規定されていないので使用することはできますが、複数の装置が競合を起こし、システムが動作しない事態を引き起こす可能性があります。

 これを避けるために、原則としてI/O装置もメモリ空間に割り当てることにします。