X1のEMM

X1にもEMMにも詳しくないのですが、どういうものなのか、どのように使うのかを知りたかったので調べてみました。間違いがありそうなので、気が付いたら随時修正していきます。

純正品は、こちらの「X1用EMMボード」を参考にさせていただきました。つまり・・・

・純正品の320Kbyteメモリボードの事をEMMボードと呼ぶ。320Kbyteの領域がある。
・320KByte以外のボードは非純正品。(互換性はある)

ということですね。
あと、I/O誌の1986年3,4,5月号にもEMMボードの製作記事が掲載されているようです。

320KByteということは、000000h – 04FFFFhのメモリ空間を持つということになって、Hu-BASICでは、この領域をEMM:0というデバイス名で表記するようです。

アドレスの最大が04FFFFhなので、アドレス指定に3バイト必要になるということですね。

上位 00h ~ 03h
中位 00h ~ FFh
下位 00h ~ FFh

上位バイトには余裕があるので、その気になれば、000000h – FFFFFFhまで使えることになると。
FFFFFFh Byte => 1677216Byte => 約16.384MByteということでしょうかね。

Hu-BASICでは、EMM:0以外に、EMM:1、EMM:2…といった指定ができるようですが、これはボードを複数枚挿し込んだ時のデバイス名として識別されるようです。

Hu-BASICでは、EMM:0のデバイスをフロッピーディスクのように扱えるようで、FILES,LOAD,SAVEといった命令を使って、EMM上にファイルを保存できます。ただし、X1本体の電源を切ったら消えると思います。
これらの命令を使う前に、INIT “EMM:”命令でデバイスを初期化しておく必要があるようです。こうすることで78クラスタ分の領域が確保されるようです。(1クラスタって4KBbyteくらい???)

ハードウェアレベルでは、3バイトのアドレス指定用のI/Oポートと、指定アドレスの読み書き用1バイトのI/Oポートを通してアクセスするようです。わかりやすいですね。また、読み書きをすると、自動的にアドレスが+1されるようです、便利ですね。

で、ここからよくわからない事リストです。

・I/O誌の非純正ボードの記事などでは、EMM1,EMM2といった表現があるが、これは何を指しているのか?デバイス名なのか、割り当てI/Oアドレスなのか?
・同上の非純正ボードの説明では、DIPスイッチでEMM0ではなくEMM1,EMM2…に設定できると書かれているが、これは何を意味するのか?
・同上の非純正1MボードはHu-BASICからどう見えるのか?320KByte以上は見えないのか?EMM:1以降のデバイス名でアクセスできるのか?

コメントは受け付けていません。