PB-1000/Cの内蔵メモリを220KB x2に!

PB-1000/Cの内蔵メモリを512KBタイプに換装することでRAM容量を220KB x2に拡張します。

本改造を行うとメーカー保証は受けられなくなります。
またポケコンを壊してしまうこともあるため、実施は自己責任でお願いします。

1.はじめに

PB-1000/Cに使われているCPU HD61700はBANK切り替えにより最大で256KBのアドレス空間に
直接アクセス出来ますが、PB-1000のシステムではBANK 2,3は使われておらず、またIBレジスタの
設定によりBANK 1-3の0000-7FFFhは無効化されています。

そこで本改造では512KBのS-RAM (HM628512)を使い、BANK0-3の空き領域にRAMを実装します。
この改造によりBANK0に約29KB、BANK1から3にそれぞれ64KBの、合計220KBのRAM領域を
ユーザープログラムから利用できるようになります。またS-RAMのA18の電位を切り替えることで
この環境を2系統に拡張しています。



2.メモリ増設の概要

PB-1000のメモリマップは下記のようになっています。
この空き領域にS-RAMを実装することで、約220KBのRAM領域を利用することが可能となります。



3.動作原理と回路図

8KBの内部RAMを512KBのS-RAMに換装し、CPU内蔵ROM (00000-00BFFh)、I/Oポート (00C00-00C0Fh)、
内部ROM (08000-0FFFFh)アクセス時に動作しないようなCS信号をS-RAMに入れます。
幸いなことにCPUから08000-0FFFFh (CS0)および00C00-00C0Fh (CS7)用のCS信号が出ているので、これ
と外部メモリ用のCS信号であるOE (CPU Pin番号74)をデコードしてS-RAMのCS信号を作っています。
なお00000-00BFFhは外部メモリの有無に関わらず強制的にCPU内蔵ROMが選択されるようです。
(おかげでデコード回路を大幅に簡素化することができました)

ちなみにPB-1000/Cではライトサイクル中のデータの不定期間をCS信号でマスクしているため、アドレス線を
デコードしただけのCS信号では、この期間もS-RAMがイネーブルされて不定データを書き込んでしまいます。
その結果、別のアドレスのデータが勝手に書き換わったり、動作が不安定になったりするなどの不具合が生じる
ため、必ずOE信号とOR(負論理)を取る必要があります。

各ICのPIN配置と回路図を示します。CS0はROMのCS端子から、CS7は30pinコネクタから取り出しています。
またA18の電位は3P SWで切り替えています。



4.準備するもの

本改造を行うにあたって必要な道具および材料です。

番号 名称 数量
1 半田ごて(15W程度/セラミックヒータータイプ) 1
2 ピンセット(あると便利) 1
3 精密ドライバーセット 1式
4 テスター(通電を音で確認できるタイプが便利) 1
5 4Mbit S-RAM(HM628512-LFP相当品) 1
6 74HC00 NAND 4回路(DIPタイプでOK) 1
7 小型3Pスライドスイッチ 1
8 ジャンパ線(ポリウレタン線がお勧め) 適当
9 半田吸い取り線 1
10 半田(0.8mm以下の物) 適当

ジャンパ線にはポリウレタン線の使用をお勧めします。この線は外周がポリウレタンで被覆されていますが、
コテで炙るとこの被覆が溶けてくれる優れものです。断面積も小さいので、増設スロットとメモリ領域の渡り
の部分もプラスチックのカバーを加工する必要がありません(今回は0.26mmφのものを使用しています)。



5.分解方法

電池を外した後、表側(閉じた状態)の銀色のカバーを外します。次に白丸で囲んだ11本のネジを外します。


ネジを外すとプラスチックの黒いカバーが外れますが、このとき圧電ブザーに繋がっている細いコードを切らない
ように注意して下さい。増設スロットの隣に見えるのが8KBのS-RAMで、これを512KBのS-RAMに換装します。



6.S-RAMの換装

今回の改造の山場です。搭載されている8KBのS-RAMを基板から剥がし、512KBのS-RAMを載せます。
まず基板上の8KB S-RAMのPinの半田を、半田吸い取り線で除去します。次にこのPinを端から順に1本
ずつ持ち上げて外します。半田ごてをPinに当てつつ、精密ドライバー(マイナス)等の細い棒で跳ね上げます。
Pinの間にマイナスドライバーを縦に突っ込み、それを回して横方向にPinを跳ね上げるようなイメージです。
半田が溶けていない状態で、無理にPinを跳ね上げるとパターンが剥がれるので十分注意して下さい。
S-RAMを外したらパターン上に残っている半田もきれいに除去します。


続いて512KBのS-RAM (HM628512)の実装を行います。S-RAMのPinのうち基板に半田付けしないもの
(回路図中の水色で示したPin)はあらかじめ真っ直ぐに伸ばしておきます。基板側パターンの横幅が
ギリギリなので、Pinを左右から押して少し狭くしておくと実装しやすくなります。基板パターンとPinの位置
が合っているか確認した後、パターンとPinの位置がずれないように注意しながら半田付けを行います。
隣のPinとブリッジしても、慌てずに半田吸い取り線で余分な半田を除去すれば問題ありません。

半田付けが終わったら、各Pinの導通確認を行います。それぞれのPinについて、隣のシステムROMか
増設スロットコネクタの対応する端子との導通をテスターでチェックして下さい。



7.その他部品の配置と配線

S-RAMの換装が終わったら、増設スロット部分に3PスイッチとロジックICを両面テープで貼り付けます。
(ロジックICはあらかじめ端子を短く切っておきます) その後、回路図通りに配線作業を行います。
ジャンパ線は1本つなぐ毎に回路図の確認とテスターによる導通チェックを行って下さい。

前述したようにポリウレタン線を使うとプラスチックカバーに干渉せず、皮剥きも不要で便利なのですが、
皮膜の除去が不十分だと半田の濡れ性が非常に悪くなります。面倒でも線の先端をコテで炙って中の
銅線に予備半田を行ってから配線した方が、結局作業スピードも上がりますし、後々のトラブルも少なく
なると思います。またS-RAMの基板から浮いているPinが折れると大ダメージなので、このPinを何度も
曲げたり伸ばしたりしないのと、大きなストレスが加わらないように配線して下さい。

で、下の写真が配線例です。汚い半田付けで申し訳ありませんが参考にして下さい。



8.動作確認

全ての作業が完了したら、配線の誤りや半田ブリッジが無いかもう一度目視で確認し、さらにテスター
で導通チェックを行います。問題が無ければ、本体を組み直して動作確認を行って下さい。

電池を装着し、本体の電源を入れた後、RESET、NEWALLボタンを押してRAMを初期化します。
SYSTEM [EXE]を実行してFREE 27648 V:8191 $:1024となっていれば、ひとまず成功です。
電源が入らなかったり、RAMが認識されない場合は再度配線を確認して下さい。

BANK2,3およびBANK1の0000-7FFFhはシステムから見えないので、チェック用のプログラム
準備しました。圧縮ファイルを解凍後、check.bをRS232C経由で転送して実行して下さい。
プログラムは00C10-05FFFh, 10000-17FFFh, 20000-2FFFFh, 30000-3FFFFhの領域にデータを
書き込み、それが正常に読めるかの確認を行っています。RAMの読み書きが正常なら"OK"が
表示されて終了し、異常がある場合は"RW error"が表示されるので再度S-RAMの半田付けや
配線を確認して下さい。なお、正常終了時はチェックを行った領域は全て0クリアされます。

次にもう1系統のRAMについても同じように初期化とチェックを行います。
電源オフ後にスライドスイッチを反対側に切り替え、上記作業を繰り返して下さい。



9.電源SWによる系統の切換え

今回の改造ではA18の電位を3P SWで切り替えることでRAMを2系統化していますが、SWが増設
スロット内部にあるため切り替えの際にいちいちカバーを外す必要があり実用的ではありません。
そこで電源SWのON/OFFでこれを切り替えることを検討しました。

下図のように2つのD-FFを組み合わせ、これをVDDおよびその反転信号で叩きます。電源OFFで
VDD信号がLow→Highに変化するため、/Y0がLow→Highに切り替わり、1段目のD-FFにてD→Q
および/Qへの遷移が生じます。
次に電源ONでVDD信号はHigh→Lowになるため、/Y3がLow→Highに切り替わり、2段目のD-FF
にてD(1段目の/Q)→Qへの遷移が生じ、これが1段目のD-FFに戻ってDが反転します。次の電源
OFFでこの反転したDがQに遷移するため、A18の電位が反転してRAMの系統が切り替わります。


本来、電源SWのON/OFF検出にはSW信号(CPU Pin番号36)を使うのが望ましいのですが、CPU
の足に直接配線する必要があって大変なので、VDD信号(CPU Pin番号33)を使っています。
VDD信号は写真のようにCPU近くのR220やC102から取り出せるため、配線が多少楽になります。
あと書き忘れましたが、HC139が1個余るので、これをCS信号のデコード用に使っています。


以下に全体の回路図を示します。増設スロットには74HC00と3P SWの代わりに74HC74と74HC139
を実装します。配線作業が完了したら、前章で示した方法で動作確認を行って下さい。
また電源SWのON/OFFでRAMの系統が切り替わることも確認します。



10.128KB RAM増設

今回の512KBのS-RAMを使った増設は究極に近いものですが、フルアクセスにはIBレジスタの
設定が必要なことや、SWによる切り替えを付加している等、やや冗長であるのも事実です。
また512KBのS-RAMはそれなりに値段も張りますし、入手自体も困難になりつつあるようです。

そこで、ここではより安価な128KBのS-RAMを使ったRAM増設についても紹介しておきます。
下図のようにBANK0の0C10-7FFFhとBANK1から3の8000-FFFFhにRAMを実装することで、
RAM容量は合計で約125KBとなります。実用上はこれでも十分でしょう。

128KBのS-RAMは秋月電子通商のSTマイクロ製のものが非常に安価でお勧めです。


以下に回路図を示します。512KB版とほぼ同じ構成ですが、一部配線が簡素化されています。
デコード回路を簡略化している関係で、BANK1-3の0000-7FFFhにアクセスすると8000-FFFFhの
内容を読み書きしてしまいますが、IBレジスタの設定を変更しなければ実害は無いと思います。
実装後のRAMチェックはこちらのプログラムを使って下さい。



11.あとがき

PB-1000もIBレジスタの設定で各バンクにフルアクセスできることが発覚したため、何とかこの広大な空き領域
にRAMを目一杯増設できないかと思い、今回の改造を実施しました。

コレクターズアイテムと化しているPB-1000/Cの内部RAMを換装するという暴挙に近い行為なので、実行される
方はほぼ皆無だと思いますが、PB-1000のライバル機種(?)であるPC-E500並みのRAM容量を20年越しで実現
出来たということで、記事だけでも楽しんで頂けたら幸いです。

なお回路の構成に当たっては、山爺さん、あおさんに多大なご協力を頂きました。ありがとうございました。

2009-12-6@Miyura


増設スロットのコネクタ情報はPiotr Piatek氏のページを参考にさせて頂きました。
記事は、Miyura氏よりご寄稿して頂きました。ご協力誠にありがとうございました。

戻る