MZ-1M01
(MZ-2000/2200用16ビットボード)
MZ-2000/2200のオプションにいろいろあれど、やはり一番はこの「16ビットボード」でしょう。結果的には「イロモノ」の分類に入ったこのオプションですが、発表された当時はそれはもうわくわくしたものです。
1983年初頭だったと思いますが、MZ-1M01をはじめて見たのは新聞の経済欄の新商品コーナーでした。「8bitマシンであるMZ-2000が16bitマシンに化ける!」という16ビットボードキットの登場はかなりの衝撃でした。I/Oポート(MZ-1U01)を持っていないユーザーにも対応するためキーボード下に収納するともありました。写真の女性(シャープはなぜか新聞・雑誌発表用の写真にはモデルの女の子に商品を持たせるんよねぇ)が手にしているボードはかなり横長で、それまでのMZ用オプションボードとしては異色の形状をしていました。
情報が明らかになるにつれて期待は増します。メモリは本体の倍の128KB、それまでサードパーティしか供給していなかった漢字ROMをサポート、しかもそれまでのシステムをロードさせると従来どおりの8bitマシンとして使用可能。しかし定価78000円というのはちょっと高かったですねぇ。まぁ当時私はMZ-2000すら持ってなかったのでそれ以前の問題だったのですけど。
ですが結局16ビットボードはヒットせず1982年暮れの段階で16bitマシンをリリースしなかったシャープはマイナーの道へ。売れ行き次第だったのかもしれませんが、DISK BASICはリリースされませんでした。システムがテープBASICのみではいくらメインメモリが大きくなっても使う気にはなれないでしょう。まぁシステムに関してはアイビット電子がDISK BASICの開発をしたり(但しプログラムの読み書きに留まり、シーケンシャル/ランダムデータファイルの取り扱いはできないβレベルで開発ストップとか)、Oh!MZ誌にてCP/M86の移植記事が掲載されたりしましたけど、そういうのを実務で使うはずもないでしょうしね。
そして決定的だったのが16bitモードでは8bitモードよりも遅い、という事実。8088/5MHzというCPUはそれ自体ではZ80/4MHzと大きなパフォーマンス差というものがないのでしょう。それに加えてI/O処理のために双方のCPUが相手に対して割り込みをかけあい、それがオーバーヘッドとなって全体が遅くなっていたのです。後に漢字ROMとしてMZ-1R13を発売した段階では、もう16ビットボードは(もしかすると思い出したくもない)過去のものだったのかもしれません。せめて8087がつけられるようになっていればまた違った展開もあったかもしれませんが。
で、余ったMZ-1M01の多くはアイビット電子へ。定価から考えると叩き売り状態で、私は8000円くらいで買ったような気がしますが、その後もまだ値下げされたようです。アイビット電子ではMZ-1M01を漢字ROM付で販売しましたが、この漢字ROMは純正のMZ-1R08ではなく同じ回路らしいコンパチ品。使ってみると部分的に字の半分だけベタになったりで調子が悪く、一度交換しましたがもっと悪かったのであきらめました。後にジャンク品としてMZ-1R08を入手しましたのでそれに交換しています。もちろん文字化けなどはありません。
16ビットボードの全景です。要はMZ-2000の「ボンネット」を開けたところなのですが、見やすいようにグラフィックRAMボード(MZ-1R01)は取り外しています。
手前の横長の基板がMZ-1M01本体で、この基板を左右から挟んでいるのはキーボードの支柱です。支柱そのものは真ん中右寄りにもあったのですが、MZ-1M01の取り付けに伴い撤去しています。さらには真ん中と右の支柱の間にあったスピーカーを取り外しブラウン管の横に移設することで場所を確保しています。
左の支柱と基板との間に見える白っぽいものは基板を支える金具で、これと一部の基板上のねじ穴で基板自体を支えています。無論最初からMZ-1M01のために用意されたねじ穴などありませんので、別の目的のために開けてあったものとかスピーカーなど撤去することで開いた穴を利用しています。そのために基板の設計もかなりの制約を受けながら進められた雰囲気が伺えます。 |
拡張されたMZ-2000が16bitマシンとして動くには8088をメインCPU、Z80をサブCPUというかI/Oプロセッサとして働かせる必要があります。8088としては外部I/Oデータを間接的に取り扱うわけですが、だとしても16ビットボードはZ80からI/Oデバイスとして見えなければなりません。拡張I/Oスロットのお世話にならない16ビットボードとしてはどうやってZ80バスと接続するか…?
この答えが「Z80の交換」です。ソケット実装であることを利用して、元もとのZ80を取り除き、16ビットボードにつながっているフレキシブル基板の先にあるZ80を基板ごと挿し込むのです。やはりこのあたりはあとから考えた拡張であることがよくわかる部分ですね。最初からZ80カードが発売されることが予定されていたFM-8/7/11なぞは専用スロットという形でCPUを切り替えられる仕組みを作ってあったわけですが、そうでないMZ-2000では苦労の跡がありありです。 |
16ビットボードのCPUとクロック。もともとここには8088が載っていたのですが、これをV20と置き換えてみたわけです。もちろん期待通り正常に動きました。が、そのままではやはり速くないんです。8086/8088とV30/V20では命令自体処理速度が上がっているものもあって、ただ交換するだけで速度アップが見込めなくもないんですけど、実際に簡単なベンチマークプログラムを動かしてみるとほとんど差が出ないんですよね。速くなってないわけではないんですけど、効果は1〜2%程度しかない。
そこで、8MHz版のV20しか手に入らなかったのを幸いにクロックアップを試みることにしました。16ビットボードの回路図を見る限り8088のCPUクロックがZ80側に何らかの影響を及ぼしていないようでしたので、実行に踏み切ったのです。
8088の回路は8284というクロックジェネレータで原発振を1/3に分周しています。5MHzのシステムに使われている水晶は15MHzというわけですね。8MHzだと24MHz。日本橋でその水晶を買ったのですが、失敗したら怖いですし、元に戻せるように15MHzも購入。さらに8MHzがだめでももう少し低い値なら動く可能性もあるので、22,20,18MHzの水晶も購入。
でまずは高いところからと24MHzを試してみたら、なんと一発で成功。これだと本当に8bitモードより速く、ようやくMZ-1M01の価値が出たような気がします。 |
実はMZ-2000は電源が弱いんです。といっても耐久性がないということではなく、CRTを内蔵しているために本体の基本部分だけの電源で巨大になっているんです。実際MZ-1U01ではI/Oユニット自体に電源を搭載していますし、16ビットボードでは専用の電源を用意しています。それがこのスリットがいくつも入っているケースに収まった箱。16ビットボード自体は特別な電圧を必要としているわけではなくて、単に電源容量が足らないので別電源を用意したということのようです。 |
キット付属のラベルです。基本はこのカセットの蓋に貼るもののはずですが、Oh!MZのCP/M86移植記事では「キーボードに貼った"16bit"のエンブレムが泣いている」とかなんとか書いてありましたので、もしかしたらMZ-2200あたりではキーボードの右上に貼るような人がわりといたのかもしれません。
いやでもしかし、16ビットボードの現実を知ったらこのエンブレムは逆に情けなさをアピールしているみたいで、やっぱり泣けてきます。 |
16ビットボード付属のドライバー。「キット」ですからそれなりの道具が必要なわけですが、こんな立派なドライバーが同梱されていました。このドライバーでほとんどの箇所のねじを取り扱うことができ、ひじょうに重宝しています。 |
|
テープフォーマット
入手した時はそれはもう一生懸命いじり倒して、上記のように改造とかしたりもしたのですが、同時に解析もいろいろやってました。マニュアルにモニタ他のソースリストが掲載されていたこともあり、実際に動かして試しながら理解を進めていたのです。
改めてマニュアルを手に取ると、そこに当時のテープフォーマット解析メモが挟んでありました。16ビットモードで書き出したテープは8ビットモードで読めるのか、その逆は…と考えたのがそもそもの発端だったかと思いますが、結果はともかくその情報をここで公開することにします。
|
+0h |
+1h |
+2h |
+3h |
+4h |
+5h |
+6h |
+7h |
+8h |
+9h |
+Ah |
+Bh |
+Ch |
+Dh |
+Eh |
+Fh |
00h |
属性 |
ファイル名 |
10h |
|
0Dh |
サイズ |
ロード
(オフセット) |
? |
ロード
(セグメント) |
? |
スタート
(オフセット) |
スタート
(セグメント) |
内訳は以下の通りです。
- 属性
ファイルのモードを表します。次の3種類のあることがわかっています。
- 02h … BASICテキスト(BTX)
- 03h … BASICシーケンシャルデータ(BSD)
- 11h … 8088マシン語オブジェクト(MOBJ88)
- ファイル名
0Dhを末端とする16文字までの名前がつけられます。8ビットモードと同じです。
- サイズ
ファイルサイズを示します。セグメントを越えることはできず、オフセットでの差分となります。従って64KB以上のサイズでSAVEすることはできません。さらに、システムの都合上か上限は65534バイトまでとされています。
- ロードアドレス
オフセットとセグメントに分けて指定します。
- スタートアドレス
こちらもオフセットとセグメントに分けて指定します。無指定の場合、頭から順に2Ch,0Eh,40h,00hが自動的に指定されます。
使われていない部分とか気になりますが、もう今となっては…。当時にしたってツールとか提供されませんでしたからねぇ。きっとFDOSで動く8088クロスアセンブラがあったと思うのですが。ということもあって8088オブジェクトは違う属性にしてあるのかもしれません。
MZ-1R08
(16ビットボード用JIS第一水準漢字ROM)
I・Oデータ機器のPIO-3055を除けばMZ-2000/2200で唯一漢字の表示ができる、というのがMZ-1R08の「売り」でした。結果的にはそれがMZ-2000/2200の足かせにもなっていたわけですが…。
回路図を見ると、漢字ROMは8088のメインメモリの空間に割り当てられています。これがまた邪魔っけなアドレスにあって、回路としては512KBくらいのRAMをとりつけられそうな雰囲気なのに漢字ROMがそれを阻んでいるのです。で、I/O操作で漢字ROMのアドレスを変えてしまい連続したRAMの空間を作ってできるならMS-DOSでも移植したいと思ったものですが…。原理はなんとなくわかってもそう簡単には実行に踏み切れないもので。
しかし似たようなことは誰でも考えるのか、同じことを考えていた人がいるようです。影響を受けたI/Oの記事も同じだったりなんかして…。
ちなみに、メインのRAMはこの下に並んでいます。
|
所蔵品一覧に戻る