トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

1章 スロット

※
※ このページは書きかけです。以下の可能性があります。
※ ・誤字、脱字等のチェックをおこなっていません。
※ ・テキスト、表などフォーマットがされていない。
※ ・画像が抜けている。
※

 スロットは大量のアドレス空間を確保するためのアドレス空間の切り替えをするもので、MSXのアドレスバスに接続されるメモリやデバイスは、すべてスロットを介して実装されています。それは、本体内にあるBASICのROMであろうとMSX-DOSモード時のRAMであろうと例外ではありません。カートリッジソフトを差す場所も、1つのスロットです。ここでは、スロットに接続されたソフトウェアやデバイスの取り扱い方を説明します。

1.1 基本スロットと拡張スロット

 スロットには基本スロットと拡張スロットの2種類があります。「基本スロット」とは、図5.1に示すようにCPUのアドレスバスに直結するスロットを指し、MSXの仕様では最大4個持つことができます。基本スロットは、スロット拡張ボックスを接続することにより(本体内で拡張されていることもある)、最高4個のスロットに拡張でき、このときのスロットを「拡張スロット」と呼びます。4個の基本スロットをそれぞれ4つの拡張スロットに拡張した場合、スロットの数は最大の16個となり、16スロット×64Kバイト=1Mバイトのアドレス空間をアクセスすることが可能です。
 なお、拡張スロットにさらに拡張ボックスを差し込んだ場合はシステム自体が起動できなくなりますので、このようなことは行わないでください。MSX標準のカートリッジ用スロットはかならず基本スロットだが、各機種のオプションハードウェア専用コネクタは、各機種のオプションハードウェア専用コネクタは、拡張スロットに接続されていることがあります。

画像ファイルが存在しません。
図5.1 基本スロットと拡張スロット

 各スロットは0000H〜FFFFHまでの64Kバイトのアドレス空間を持ちますが、MSXではそれを16Kバイトずつ4つに分け「ページ」として管理しています。CPUはページごとに任意のスロットを選択してアクセスでき、図5.2のように、いくつかのスロットから必要な部分だけを選んで組み合わせることが可能です。ただし、ある番号のページを異なる番号のページに割り当てることはできません。

画像ファイルが存在しません。
図5.2 ページの選択の例

1.2 スロットの選択

 スロットの選択方法は、基本スロットと拡張スロットでは異なります。基本スロットの場合はA8H番地のI/Oポートによって行い(図5.3)、拡張スロットの場合は実装された拡張カートリッジの「拡張スロット選択レジスタ(FFFFH)」によって行います(図5.4)。しかし、それらを直接変更することは大変危険ですから、スロットの切り換えはスロットの構造を理解した上で、BIOSのENASLT(0024H/MAIN)を呼び出して切り替えて下さい。他のスロットにあるプログラムを呼び出したい場合は、2章で説明するインタースロットコールを使用してください。

画像ファイルが存在しません。
図5.3 基本スロットの選択

画像ファイルが存在しません。
図5.4 拡張スロットの選択

 どこのスロットにMAIN ROMやRAMが実装されているか、またカートリッジ用のスロットが何番のスロットであるかは機種によって異なります。もし手持ちのMSXがどのようにスロットを使用しているかを知りたい人はマニュアルなどで調べてください。しかし、MSXはどのスロットに何があろうと正常な動作ができるように仕様が決められていますから、その仕様に準じている限り、通常はスロットの使用状況を気にする必要はありません。
 しかし、場合によっては特定のソフトウェアがどのスロット上に置かれているのかを知る必要が生じることもあります。例えば、従来はBASICのMAIN ROMは基本スロット#0、または基本スロット#0を拡張した拡張スロット#0-0に置くという仕様ですが、MSX1にMSX2の機能を追加するバージョンアップアダプタでは、MAIN ROMがスロット#0やスロット#0-0以外の上に置かれることになります。また、MSX2のSUB ROMが入っているスロットは機種によってまちまちで、このような場合、下記のワークエリアを参照することにより、BASICインタープリタのROMが置かれているスロットを知ることが可能です。スロット情報は図5.5のフォーマットで得られます。DOSからBIOSを呼び出すときも、この方法を使用してMAIN ROMのスロットを調べて下さい。

【EXPTBL(FCC1H,1)】MAIN ROMのスロット
【EXBRSA(FAF8H,1)】SUB ROMのスロット(MSX1では0)

画像ファイルが存在しません。
図5.5 スロットのフォーマット

 また、あるルーチンがページ1とページ2(4000H〜BFFFH)にまたがっている場合、このルーチンの中で1ページから2ページへ分岐が起こるときには、ページ2にページ1と同じスロットが選択されていなければなりません。そのためには、ページ1でまず自分のいるスロットを調べ、ページ2をそのスロットに切り換えるという作業が必要です。現在自分がどのスロットにいるのか、という情報を知るためには、添付のフロッピーディスクに入っている「WHEREAMI.MAC」を使用します。