PC-8001用 8kB SRAMボードにROM搭載

PC-8001

以前、ちくらっぺ氏作のPC-8001の空きROMエリア用SRAMボードのプリント基板を作って接続してみました。ボタン電池CR2302でバックアップされているので、SD-DOSを入れても消えることがなくて快適でしたが、8kB空きROM領域のメモリーを使うアプリに壊されると再ロードがテープI/Fからだったのでちょっと面倒でした。

SRAMにEPROMからロードできるようにしてみたい

ちくらっぺ氏作の8kB SRAMボードのデータは、こちらのgithubで公開されています。

GitHub - chiqlappe/ram8k: PC-8001用 8KB拡張RAMボード
PC-8001用 8KB拡張RAMボード. Contribute to chiqlappe/ram8k development by creating an account on GitHub.

PC-8001実機で愛用しているSD-DOですが、SRAMへロードするには音声データをパソコンで再生してカセットテープI/F経由(600ボー)でロードしていました。

GitHub - chiqlappe/SD-DOS: PC-8001用 SD-DOS(要 専用microSDドライブ)
PC-8001用 SD-DOS(要 専用microSDドライブ). Contribute to chiqlappe/SD-DOS development by creating an account on GitHub.

SD-DOSは空きROM領域のSRAM上で動作するようになっていてバッファもそのメモリーエリアを使いますのでROMで稼働はできません。できればEPROM(EEPROM?)にSD-DOSのプログラムを入れておいて、壊れたときにCOPYできると便利そうです。問題点は以下になります。

  1. 8kB SRAMボードではアドレス($6000-$7FFF)をデコードした信号と、スライドスイッチでSRAMに切り替えたときの信号(#ROMDS3をLへ)あわせてRAMの#CEに接続しているためPC-8001本体8k ROMを選択時には読み書き共にできません。
  2. 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で売ってることがありますが、正規品じゃないものも出回ってるみたいですね….

Amazon.co.jp: WINGONEER TL866II Plus USB高性能 EEPROM フラッシュBIOSプログラマ、ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS : パソコン・周辺機器
Amazon.co.jp: WINGONEER TL866II Plus USB高性能 EEPROM フラッシュBIOSプログラマ、ATMEL AVR ATMEGA AT90 PIC GAL SRAM CMOS : パソコン・周辺機器

配線と稼働確認…OK!

上記の回路を確認するため試作してみました。
プリント基板のパターンカットがもったいなくて、ICソケット2段積みにして端子を外に出してラッピングワイヤで配線しました。
SRAMとROMは秋月Dタイプユニバーサル基板にちょうど搭載できたので、そちらを使いましてSRAMソケットからの嵩上げには以前買ってあったラッピング用28ピンICソケットを使いました。
SRAMとROMの間の配線は子基板の裏面でアドレスバス(A0〜12)、データバス(D0〜7)について同じ番号同士をつなぎます。

片面ユニバーサル基板 Dタイプ(47×36mm) ガラスコンポジット: 基板・ブレッドボード・ラグ板 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作片面ユニバーサル基板 Dタイプ(47×36mm) ガラスコンポジット秋月電子通商 電子部品通信販売

スライドスイッチROM選択時にもSRAM書き込みができまして、以下のようなCOPYプログラムもついでにROMの最後の方に仕込んでおいたので、ROMの内容をSRAMへCOPYできるようになりました。(壊れたときに、どこかのRAMにモニターで書き込んでCOPYでも良いのですが ^^) )
これで、SRAMのSD-DOSが壊れてもすぐ戻せるようになりました!!

コメント