MZ-1E14
(MZ-700用QD I/Fボード)

Tweet

 MZ-1500でデビューしたQDをさらに普及させるためMZ-1F11という後付けドライブも発売したわけですが、それをMZ-700に接続するためのI/Fボードです。
 写真手前側をMZ本体のバスコネクタに、反対側にQDから延びるケーブルを接続します。

 裏返してみたところ。奥側に白いものがついていますが、バスコネクタに接続した時、ぶら下がって重しにならないよう足がついているのです。

 中身はこんな感じ。QDはI/Fの大部分をドライブに収めてしまってますので、ここにある回路の大部分はブートROMのデコード用だったりします。

 MZ-700に装着するとこんな感じ…外付けドライブであるMZ-1F11を載せるのだから、こういう姿になるのは仕方がないんですけと…。

 MZ-700のバスコネクタには電源が出ていません。拡張I/Oボックスに差し込むボードの回路はそちらの電源で動かすから、不用意に余計な電力を外に出しません…という設計思想ですね。ですがMZ-1E14のようにバスコネクタに直接ボードを取り付けちゃうとそういうわけにはいきません。

 そこで、このI/FはQD経由の電源で動作することになっています。QDはデータレコーダ(MZ-1T01)用の白いコネクタから電源をもらい、そこからケーブルを通してI/Fに電源を供給します。MZ-1E18MZ-1E19からQDを接続する場合と電流の流れが逆になるんですね。

 コネクタを流用しないといけないがためにデータレコーダを外す必要があり、またそれゆえにQDドライブをデータレコーダの代わりに装着するわけです。そのスタイルってかなり不格好なので、単純に外付けにするような接続ができれば良かったんですけどねぇ。

 本体機能を拡張するI/Fというものは通常I/Oボックスを経由するものですが、このI/Fが拡張バスコネクタに直接差し込むということになっているのは、FDDを買うほどの経済力はなくQDメディアの価格の安さがより魅力的に感じるユーザーへの訴求…つまりターゲットは若者ということになっていたのでしょうね。そういう部分にメリットを見いだすような人は、拡張I/Oボックスは買ってないだろうという判断をしたのだと。

 しかしながらやっぱり当時からこのボードがバスコネクタを占有することについて悩む人はいたようで、Oh!MZ誌にこのボードをI/Oボックスに収めることに成功したぞ!本当だぞ!!と叫ぶ投稿をする人がいたなど、後々のシステムアップ時の問題となりました。そりゃあFD版ソフトなんてDISK BASIC以外に存在するのか怪しいレベルですが、Oh!MZ読者ならS-OS"SWORD"があるわけで、QD対応版が掲載された後はますますFDとの共用ができれば良かったのにと思う人も多かったかもしれませんね。

 ようやくお金が貯まったので念願のFDDを購入した!→QDと排他接続なのでFDへの転送は一旦テープを経由しないといけなくて面倒、それもドライブのつなぎ替えを伴うわけですから…やった人いるのかなぁ…。

QD ROMモニタの隠し機能

 MZ-1E18とは違い、MZ-1E14のROMはブートするだけじゃなくてMZ-700の標準モニタである1Z-009A(輸出版は1Z-013A)を拡張します。BASIC 5Z-006のマニュアルには次の2つのコマンドの説明が掲載されています。

 しかし、ROMの中身をよく見てみるとそれだけではないことがわかります。モニタコマンドの拡張といっても処理の多くをQD ROMルーチンでまかなっていますし、隠しコマンドもあったりします。

 9Z-502M、つまりMZ-1500でないと使えなかったメモリダンプができます(1Z-013Aでは隠しコマンドとして存在)。バイナリダンプの右にはアスキーダンプも 表示されています。
 FD I/FのブートROMに制御を移し、FDDからシステムを読み出して起動します。
…えっと、バスコネクタをMZ-1E14が占有してるのでFD I/Fなんか接続できないんだけど?

 実はブートROMのアドレスはFDのROMとずらしてある($E800〜$EFFF)ので、本来併用することはできるはずなんです。もちろんそのアドレスなのはモニタ1Z-009Aに備わった自動起動を利用して、電源投入即QDからブートということができるようにするのが一番の理由なのだと思いますが。

 というか、QDでバスコネクタを占有する製品構成から考えるなら、Fコマンドを使えなくしても不思議ではありません。FDからブートしたくても接続できないんですから…。
 それどころか、リセット時にはFD→QD→モニタプロンプトと順番に起動を試みるというような仕組みも備わっています。起動の順序を制御できるようQを押しながらリセットするとFDブートをスキップし、Mを押しながらだとモニタプロンプトに直接移行するようにもなっています。ここまでくると、たまたま衝突しないアドレスに置かれていたどころの対応ではありません。明らかにFDブートROMの存在を前提にしたQDブートROMの設計ではありませんか。

 これは、拡張スロットに挿入するタイプのQD I/Fボードの存在がないと成立しない話です。今ならエミュレータなどで試してみることはできますが…実機で(しかも全て純正品で)なんとかならないか? とちょっと頭をひねって実験してみました。

 ボードはこの3枚を用意します。左からMZ-1R12(拡張RAM)、MZ-1E19(QD I/F)、MZ-1E05(MZ-1F07付属のFD I/F)です。

 中央のMZ-1E19はMZ-800用QD I/Fなのですが、拡張スロットに挿入する形状になっています。MZ-800はいわゆる第2ROM(9Z-504M)にQDアクセスルーチンが入っているものの、QD自体がMZ-1500のような標準装備になっていないため、I/Fも含めて後から購入するようにされているからです。

 ただしMZ-1E19はQDブートROMを搭載するようになっていないので、どうにかしてROMを所定のアドレスにマップしてやらなければなりません。ここで登場するのがMZ-1R12で、RAMに書き込んだプログラムをブートさせるために搭載しているROMがちょうど同じアドレスになっているのです。

 ということでMZ-1R12のROMをQDブートROMに交換します。

 MZ-700用DISK BASICであるMZ-2Z009付属のROMを搭載したMZ-1E05と併せて3枚の拡張ボードが揃いました。

 これを拡張I/Oボックスに挿入するわけですが、3スロットを備えたものでないといけないので、MZ-1U03を使用します。

 というわけで実際に動かしてみたのがこちらの動画です。

 解説すると

  1. FD・QD共にメディアをセットしないで電源投入。FDのアクセスランプが点灯するがモニタのコマンド待ちとなる。
  2. FDにメディアをセットして(QDはセットしないままで)リセット。FDからDISK BASICが起動する。
  3. QDにメディアをセットして(FDはレバーを開放して)リセット。QDからQD BASICが起動する。
  4. FD・QD共にメディアをセットしてリセット。FDからDISK BASICが起動する。
  5. FD・QD共にメディアをセットしてQキーを押しながらリセット。QDからQD BASICが起動する。

と進行しています。2と3では、DISK BASICで起動したらQDを、QD BASICで起動したらFDをアクセスしています。DISK BASICもQD BASICも実態はほぼ同じ物なので、QDとFDのアクセスルーチンがどちらにも入っているためこういうことが可能です。

 QDブートROMはリセットからいきなりメディアからのブートを試行するので、FDブートROMが有効ならFDからのブートも同じように実行しようとします。

 そのため、メディアがセットされていないなどの理由でFDの準備ができていないと画像のように"MAKE READY FD"と表示されます。この表示もQDしか接続できない従来のシステムでは見ることができなかったものですね。

 QDが追加されるとFDの使い勝手まで変化する。ここまで作り込まれてありながら、なぜか登場することがなかったMZ-700でのFD/QD併用システム…推測するとすれば、元々はMZ-1E19にブートROMが搭載されたようなボードを計画していたのだがブートROMの完成より後の時点で仕様変更されたか、拡張I/Oボックスを既に所有しているユーザー向けのI/Fボードを別に出す(ROMの内容は共通)計画があったが取りやめになったか…。

 なお使用している製品の一部が日本国内専用だったり輸出専用だったりするので、当時は日本だろうが海外だろうがこのシステムを構築するのはまず無理だったということになりますね。QD I/Fを拡張ボード化したあの人ならそのチャンスはあったことになりますが…。

所蔵品一覧に戻る