オリジナル版「優音」


そんな仕様なら作ってみるかな

 優音がMZ-2800でのトラブルを克服しプリント基板化の準備を着々と進めていたころ、手元には妙な構成のMZ用拡張基板が残っていました。それはそのトラブルの原因を突き止めるべく、優音のMZからのアクセス用アドレスデコーダとZ80PIOだけを載せてあるものでした。本当はPIOの操作結果がわかるようLEDもついていたのですが、いつでも取り外せるように別の小さい基板にLEDを載せて、MZ用基板には本当にデコーダとPIOしか載せてありませんでした。というのも、当時そろそろMZ用ユニバーサル基板の市場在庫が切れそうな時期で、もし何かするならできるだけ基板に対するダメージが少ないようにしようと配線しにくいことを覚悟の上で端っこに詰めていたのです。
 MZメーリングリストでは優音の仕様の話が出るたびにその基板を使って何か作ろうかと考えていました。が、気力が続かずたいていはすぐにあきらめていました。しかし、その年初めて夏のコミケに行こうと決意した日から、ちょっと気分が変わっていました。「そうだ、何か作って持って行こう。」手元には秋月の84C015ボードとか、R800とかありましたが、少し前に3つ入手した64180Fを使うことにしました。


64180Fとは?64180F

 プロセッサ単位での紹介は企画として別のページでやるつもりなのですが、まぁそれはそれとして。64180Fは、日立が1993年に発表した64180シリーズとしては恐らく最後のCPUです。いろいろな点で機能強化が図られてまして、またほとんど紹介されてませんでしたから、逆に何か作ってみようかと言う気にさせられました。ちなみに、当時はZ380やZ8S180なんかも入手するつもりでいて、共通のバスを設計してCPUボードをとっかえひっかえできるようにする計画がありました。
 さて、その特徴として…。

○16MBのMMU

 それまでの64180は1MBまでのサポートでしたが、なんとアドレスバスが拡大されて16MBになりました。MMUレジスタの数も増えて、制御が少し複雑になっています。

○DRAMサポート

 リフレッシュはサポートされていたものの、DRAMのアクセスにはCASやRASを作ったりアドレスをマルチプレクスしたりといろいろ面倒なことがあるのが普通でした。ところが、64180FはRASは作る必要があるもののCASはあらかじめ出力されており、アドレスのマルチプレクスは外付け回路でしないといけないもののその切り替えタイミングはEクロックでできるようになっていたりと、従来に比べDRAMとの親和性が高くなっています。

○RTC内蔵

 カウンタタイマは従来から内蔵されていましたが、それに加えてリアルタイムクロック、つまり時計が内蔵されたのです。

特にMMUとDRAMの話は、設計意欲をそそられると思いませんか?


オリジナル版優音の設計方針

 せっかく64180Fを採用するのですから、その特徴は最大限に生かさないと意味がありません。基本的な設計は本家に準ずるとして、こちらが採用する設計方針は次のように決めました。

●外部コネクタは本家優音に合わせる

 一時は面倒になって外部コネクタを省略しようかと考えたのですが、まぁどうせやるなら徹底しないとということでコネクタを省略しないことにしました。そのために、treeさんから本家優音の回路図(といってもかなりラフなんですが)のコピーをいただきました。これはコネクタの信号配列の最終確認(ずれてるような気がしたので)とMIDI I/Fの回路のためです。

●メモリはDRAMを使う

 本家優音では、アドレスのマルチプレクスが面倒であるということで擬似SRAMを採用しています。リフレッシュ以外はSRAM並みの回路で使えるので、確かに便利です。ですが64180FのDRAMサポート機能を生かすために、その面倒さを押してDRAMの採用を決めました。マニュアル推奨のマルチプレクスだと容量の大きいメモリに変えたときに不都合があるので、そこは並びを変えることにしました。

●DRAMは30pin SIMMを用いる

 ちょうど手持ちで1MBのSIMMがあったので、それを使うことにしました。将来的にもっと大きい容量のSIMMが手に入ったら交換することができます。

●空き領域にもメモリを割り当てる

 本家優音では、1MBのメモリエリアのうち前半512KBをデュアルポートRAMに、後半512KBを擬似SRAMに割り当てていました。前半のデュアルポートRAM自体は2KBしかないので、後はずっとイメージが見えていることになるのですが、その部分に私はDRAMを割り当てることにしました。「仕様の違い」という点においてこれはかなり大きいものなのですが、わざわざイメージアドレスにアクセスすることもあるまいと考えて、逆に510KBも空いてるなんてもったいないということで割り当てたわけです。これはもう1MB以上の大きさのメモリを載せられることの強み以外の何物でもありません。

●CPU内のクロック発生回路を使用する

 本家優音では簡単にクロックモジュールを乗せていますが、面積の問題もあって、私は普通の水晶発振子を使うことにしました。もちろん、CPUの機能をフルに使うことが目的でもあります。

 この他にも、例えばデュアルポートRAMの容量を増やすとか、デュアルポートRAMの受信割り込みの機能を使うとかの案はありましたが、そこまでやると本家との仕様の違いが大きくなりすぎるので、やめてしまいました。


デュアルポートRAMがない…

 方針が決まったところで部品を集めました。MZに近いところの回路はすでにできあがっていたので、ランダムロジックとしてはその他の回路、それとSIMMのソケット、CPUの変換アダプタ、外部接続用コネクタ、デュアルポートRAMというのが主要な部品となりました。
 CPUの変換アダプタは、64180Fが表面実装品であるQFPしか存在しないために、基板にすえつけるために必要でした。私は慣れてるからいいのですが、経験の浅いtreeさんはこれを嫌ってPLCC品を採用しています(PLCCも表面実装タイプですが、ソケットによってPGAのように変換することができるからです)。
 SIMMのソケットは、直立型では高さがありすぎるので斜め型を探したのですが、ありませんでした。まぁこれは予想していたことで、直立型を斜めに固定すればそれっぽく作ることはできます。
 それ以上に難航したのがデュアルポートRAMでした。普通のDIP品がなく、足のピッチが狭いシュリンクDIPと呼ばれるものしかみつからないのです。やむなく、それとピッチ変換アダプタも購入することになりました。


これぞアマチュアの極致!斜めに固定したSIMMソケット

 いざ部品を並べてみると、意外と空間がありません。MZ-2800対策調査のときに、Z80PIOとかをつめつめに配置していたのが役には立っているのですが、それでもまだ足らない。そこで、ソケット式に二階建てになるCPUとデュアルポートRAMの下に、水晶発振子と若干のICを配置して、ようやく並びました。それでも普段はICとの間をふた穴ずつあけて並べるのに、今回はひと穴もあけないでつめつめに並べています。
 SIMMソケットは、会社にあったエポキシ系の接着剤をちょっと拝借して、斜めに接着しました。残念だったのは、SIMMを上側にはずすためにはSIMMが裏返しになってしまうこと。あまり角度をつけずに接着しているので、下側にははずせないんですね。
 さらなる問題は、またデュアルポートRAM。ピッチ変換ソケットは68000用のを使ったのですが、幅が違うのでそのままでは取り付けられないんです(買った後で気がついた)。ここはやむなく半分に割ろうかと考えたのですが、なんとデュアルポートRAMの足をハの字に広げれば、どうにか入ることがわかりました。一応テスターでチェックしても正しく導通しているようですし、これでいくことにしました。


夜なべの配線

 配線に取り掛かったのが7月の上旬だったと思うのですが、休日を当てればできると見込んでいたものの、集中力とかもろもろの理由でそれだけではだめだということが程なくわかりました。しかしなんとしても夏コミに間に合わさなければ、ということで、8月に入ってからは夜3時か4時くらいまでかけて毎日作業しました。おかげでコミケの数日前に完成し、無事コミケ会場に持ち込んで、もちろん売り物ではないのですが星くずばこのブースで展示してもらいました。
 が、実はそれはまともに動作チェックをしていませんでした。MZ側のI/Fについては制作途中でステップ毎に動作確認していたのですが、64180F側は通電こそすれ動かすまでには至ってなかったのです。8月の下旬だったか、落ち着いたところでtreeさん制作のチェックプログラムを実行したところ、なんとエラーが出てしまいました。
 早速ロジックアナライザを持ち出して(その直後ACアダプタが見つかるまで30分くらいかかって)、64180Fが正しくデュアルポートRAMの内容を読めているかをチェック。そこで初めて、データが化けていることに気づきました。それがどこで化けているのかちょっとわからなかったのですが、なんとそれはデュアルポートRAMに使用したピッチ変換アダプタの、元々アダプタに生えている端子だったのです。そこでそれについては別配線でつなぐことにすると、チェックプログラムはエラーを出さなくなりました。


全景写真

やっぱり使ってなかったりする

 実はチェックプログラムを動かしていたときに気づいたのですが、64180Rと64180Fとでは、もちろんできるだけ忠実に上位コンパチとなるように設計されているのですが、リセット時のRTSの状態などわずかながら違いが存在します(マニュアルだけかもしれないのですが)。そんなこともありまして、このボードをメインにプログラムを作るのはやめたほうが良いといえると思います。そんなわけで、今は動かしていません。こんなんばっかりやね。


戻る