完成した外観(100円ショップのケースに収納)
ネットの記事に触発されて、久々にZ80をいじる事になった。前回は、AKI-80を使って、最小構成で64KRamを実現して、プログラムの開発環境を整えようとした。作って見て、気が付いたと言うか、SIOのBポートのDTRBをバンク切替の信号として使ったまでは良かった。139のIC一個でそれが実現できたのだから、それはそれとして、良かったのだろう。だが、M2を使った割込みをSIOで使うプログラムには、向かない事が分かった。理由は、簡単だ。ターゲットのプログラムをRAMに書き込み、そちらに移す。ターゲットプログラムでは、割込みの設定で、SIOのBポートを設定する。その時、Bポートをリセットすれば、自分はRAMに居るのに、ハードは、ROMに切り替えてしまう。Bポートのリセットは、ROM上で済ませて置くと言う手も有るが、それでは、目標とするROMを焼かずに開発環境を整えたとは言えない。そこで、プランBと言うか、前回でも触れたが、Super AKIを使って、追加したRAMの電源を確保すると言う手を使ってみる事にした。それが今回の記事だ。
すなわち、ROMとRAMの2階建ての構造は前回と変わらない。変わるところは、RAMの電源をSuper AKIのRAMと共有すると言う所だ。そうした構造を作って置き、RAMとROMをなんと、手動スイッチで切り替える。バンク切替をスナップスイッチでやろうと言う方法だ。順番で言えば、はじめスイッチで、OE信号は、ROMに接続されている。電源が入れば、普通にROMで起動する。コマンドで「load」を使い、ターゲットプログラムをRAMにコピーする。ここで電源を切るが、RAMはSuper AKIに備わっている電池による電源で、そのままの状態を保つ。スナップスイッチで、今度はRAMに切り替え、電源を入れる。ターゲットプログラムが正しければ、問題なく起動すると言う仕組みだ。SIOのポートBをリセットしようが、DTRBを使っていないので、問題はない。
原理的には、RAMの電源を確保すればAKI-80でも出来るはずだ。だが、ダイオードやら、主電源の入り切りでも大丈夫かとか、その辺の気配りで追加回路が必要になったりしたのでは、意味がない。そうした事は、とうに考えてくれたであろうSuper AKIを使えば、良いと言う結論にした。開発環境と言う事で、ROMも簡単に交換できるようにゼロプレッシャーICソケットにする。という事で、初めから大きくなるのを覚悟して作るので、Super AKIで良いと言う結論になる。
まずは、2階建てのROMとRAMの構造だ。基本的には、電源回路を除いては、前回と変わる所はない。作り方は、そちらを参照して欲しい。
ROMとRAMの2階構造が整ったら、ブレッドボードを使って、動作確認をする。ここで、電源スイッチをROM/RAMの切り替えスイッチがまとめられないか試して見た。なんと予想に反して、2回路のトグルスイッチでも使えそうだと分かった。(後に、やはり個別に分けた方が安定すると分かり、変える事になった)。
2階建てのRAMに供給する電源は、基板の裏側から取る事にした。
WR信号は、部品どおしの取り合いの関係で横にねかした。
32ピン基板も、既に取り付けてある部品にぶつかるので、高さをかさ上げする必要から、ICソケットを一つ余計に追加した。
全体を100円ショップのケースに収めた。後に、電源スイッチとROM/RAMのバンク切替スイッチは分けた方が安定すると分かったので、電源用のスナップスイッチを追加した。
反省・その他
①一応、目標とする物は、出来た。つまり、割込みを使う、別の言葉で言えば、SIOのポートBをリセットしても、問題を生じないROMを焼かない開発環境が出来た。
②誰でもが思うかも知れないが、RAM64Kが出来たならば、CP/Mを作ってはと。実は、これは既にずいぶん前に実現してしまった。言うまでも無く、ROM/RAM の2階建て構造を使っての話だ。そこで苦心したのは、じつはハードではなく、DISKパラメーターの設定と言う事だった。DISKパラメータを設定するには、それ用のアセンブラが必要になる。それを動かすには、CP/M環境が必要になる。CP/Mが動く環境があるにも拘らず、作るのは、ハードの工作趣味が有るからだという事になると思う。でも、今の時代に作るとしたら、Super AKIを使って、豊富に準備されたI/Oを使って、電源バックアップされたRAMDISKで実現するのが良いかも知れない。
③結局、出来上がったAKI-80とか、Super AKIを何のために利用するかと言う事が決まっていない。従って、勝手にBASICだとか乗せる訳だが、そこに焦点を置くべきなのかも知れない。その点、今のラズベリーとか、そうしたキットは良く出来ていて、温度を測ろうよとか、遊ぶには、それなりの目的を与えてくれる。もっとも、一つ実現するには、単に温度センサーを買うだけでなく、温度を測るためのキットが準備されていて、プラスアルファーの出費が要求される。それを買ってきて、取り付けて、何か出来上がった気になるのも一つだが、私が満足できる対象とは違う。その点、アセンブラーからいじらざるを得ないZ80は、ある意味、電子工作の面白さを教えてくれる。ただ残念なのは、そうした事を意識しない日本のメーカかな。いつも思うのだが、突き詰めると、文系が支配する日本の問題点かも知れない。