以前、ちくらっぺ氏作のPC-8001の空きROMエリア用SRAMボードのプリント基板を作って接続してみました。ボタン電池CR2302でバックアップされているので、SD-DOSを入れても消えることがなくて快適でしたが、8kB空きROM領域のメモリーを使うアプリに壊されると再ロードがテープI/Fからだったのでちょっと面倒でした。
SRAMにEPROMからロードできるようにしてみたい
ちくらっぺ氏作の8kB SRAMボードのデータは、こちらのgithubで公開されています。
PC-8001実機で愛用しているSD-DOですが、SRAMへロードするには音声データをパソコンで再生してカセットテープI/F経由(600ボー)でロードしていました。
SD-DOSは空きROM領域のSRAM上で動作するようになっていてバッファもそのメモリーエリアを使いますのでROMで稼働はできません。できればEPROM(EEPROM?)にSD-DOSのプログラムを入れておいて、壊れたときにCOPYできると便利そうです。問題点は以下になります。
- 8kB SRAMボードではアドレス($6000-$7FFF)をデコードした信号と、スライドスイッチでSRAMに切り替えたときの信号(#ROMDS3をLへ)あわせてRAMの#CEに接続しているためPC-8001本体8k ROMを選択時には読み書き共にできません。
- PC-8001の本体にある8kB ROM端子は、uPD2364というマスクROM用なので通常のEPROM(28ピン)とは違って24ピンしかありません。しかも一部のピン配列が入れ替わってます。ゲタを作れば良さそうではありますが…
ちくらっぺ氏8kB SRAMボードへROM搭載
以前 ちくらっぺ氏よりいただいた8kB SRAMボードの回路図をじっくりと見てみたところ、余っているロジックゲートを活用することでSRAMに加えてROMが搭載できるのでは?と思いつきました。ROMの信号線は ほぼSRAMの信号とバス配線で行けそうなので、SRAMソケットに子基板をつくることで搭載できそうです。

アドレスデコードは常時へ変更
アドレスデコード($6000-7FFF)は、PC-8001のアドレスバスの信号だけでデコードするように変更します。このアドレスデコード信号は、SRAMとROM両方に供給します。この改造により、$6000-7FFFに対してメモリー書き込みが行われると、SRAMの#WR(書き込み)が発動します。
読み出し信号はSRAMとROM別にしたい
#CEが同時にアサートされるので、読み出し信号はSRAMとROMで分ける必要があります。
- アドレスデコードに#ROMDS3(PC-8001 空きROMの無効化)信号線を入れるためのORゲートが1つ余りますので、それをSRAMの#RDとの間にいれて スライドスイッチがRAM側になっているときだけ有効(Lレベル)にします。
- ROMの#RDは逆のタイミングで有効(レベル)にしたいので、#ROMDS3(PC-8001 空きROMの無効化)信号線と#MEMRD(メモリー読み出し)信号をNOTで反転させたものを、余っていたNANDゲートへ入れます。このタイミングで#RDが有効になると、PC-8001の空きROMとぶつかりますが、そちらのソケットは使わないので私の環境では問題ないのです。
EPROMの配線とデータ書き込み
今回EPROMにはSBCシリーズやKZ80マイコンで使っていて手持ちで持っていた28C256タイプを使いました。SRAMのデータバス(Dxx)、アドレスバス(Axx)をつないであげる以外に、使わない信号線はプルアップしてあげる必要があります。最初この配線を忘れていてうまく動作しなくて、ちょいハマりしました。(何度目かw…)
HN58C256データシート
上記はデータシートからの抜粋です。今回はA14、A13のアドレス信号はプルアップする必要があります。また#WR端子もプルアップしてあげる必要があります。(Z80マイコンをユニバーサル基板でつくったときにもハマった端子….)
この配線で、ROMは$6000-7FFFまでデータを書き込むことができます。SD-DOSを書き込むとしたらROMライタで$6000〜書き込むことでOKです。
私はROMライタにTL866CSを使ってますが、今は新しいバージョンがでてます。USB接続でいろいろなICに書き込みができるので重宝してます。TL866CSがAmazonで売ってることがありますが、正規品じゃないものも出回ってるみたいですね….
配線と稼働確認…OK!
上記の回路を確認するため試作してみました。
プリント基板のパターンカットがもったいなくて、ICソケット2段積みにして端子を外に出してラッピングワイヤで配線しました。
SRAMとROMは秋月Dタイプユニバーサル基板にちょうど搭載できたので、そちらを使いましてSRAMソケットからの嵩上げには以前買ってあったラッピング用28ピンICソケットを使いました。
SRAMとROMの間の配線は子基板の裏面でアドレスバス(A0〜12)、データバス(D0〜7)について同じ番号同士をつなぎます。
スライドスイッチROM選択時にもSRAM書き込みができまして、以下のようなCOPYプログラムもついでにROMの最後の方に仕込んでおいたので、ROMの内容をSRAMへCOPYできるようになりました。(壊れたときに、どこかのRAMにモニターで書き込んでCOPYでも良いのですが ^^) )
これで、SRAMのSD-DOSが壊れてもすぐ戻せるようになりました!!

コメント