FX-870P/VX-4 の内蔵メモリを128KBに!

安価な1M Bit SRAM(HM628128相当品)を利用して、CASIOポケコン
(FX-870P/VX-4)の内蔵メモリを128KB実装にします。

注意
本改造を実施すると、理由の如何に関わらず、メーカー保証は受けられなくなります。
(改造品扱いになるため、故障しても修理すら引き受けてもらえなくなります)
また、ポケコンを壊してしまう場合もありますので、実施は自己責任でお願いします。

1.はじめに

 CASIO VX-4/FX-870Pは、標準でBASIC/C/CASL言語を搭載し、隠し機能でマシン語も使える等、
非常に高機能なポケコンで、メモリ(RP-33)を増設してFBF/VX-MENU等のファイルシステムを搭載してやれば、
PB-1000/C/AI-1000に匹敵する環境を構築することも可能です。
しかし、RP-33の入手性は悪く、値段も高いため(新品で12,800円!)、今となっては気軽に増設すると言うわけには行きません。
そこで安価な1MビットSRAM(HM628128相当品)を利用して、バンク1を64KBフル実装するだけではなく、
普段システムでは使われていないバンク2後半エリアへのRAM実装も試みてみました。
改造は1M SRAM+ロジックIC(2個)+スライドスイッチでできるので材料費も安く済みます。(1000〜1500円程度)

この改造により、最大で108KB(バンク1側64KB+バンク2側44KB)ものRAM領域をユーザープログラムから
利用できるようになります。

増設されたバンク2側エリアは、システムから完全に無視されているため、
そのままでは専用のマシン語以外では使えませんが、
バンク2対応版の「VX-MENU」を利用することで
BASIC/C/CASL/バイナリファイルの格納場所として利用可能です。

2.メモリ増設の概要

 VX-4/FX-870Pで使われているMPU(HD61700)は、64KB単位で4つのバンクを持ち、
最大で256KBのアドレス空間をアクセスできる構造になっています。
ざっと見たところバンク2後半(24CA0h〜2FFFFh)約44KBがシステムで全く使われておらず、
ここにSRAMを実装できれば、約108KBものメモリ空間を利用する事ができそうです。

[VX-4/FX-870Pメモリ利用状態]
FX-870P/VX-4メモリマップ

問題は、24CA0h〜と言う中途半端なアドレスから始まっているため、アドレスデコード上、
バンク2未使用エリア(24CA0〜2FFFFh)までを綺麗にSRAMに振り替えるのが難しい点です。

仕方がないので74HC139/HC11とスライドスイッチ(6P)を利用して、バンク2後半(28000〜2FFFFh)のみを
SRAMとして割り付ける設定(96KB環境)と、全て(20000〜2FFFFh)をSRAMに割り付ける設定(128KB環境)を
切り替えられるようにして、専用の転送プログラム(※下記参照)を用いることで、
ソフト的にデコード問題を解決するようにしました。(少々危険ですが・・)

バンク2初期化手順
※BASIC/F.COM/C/CASLの動作にはバンク2前半のシステムデータが必要なため、
いきなりバンク2の全エリアをSRAMに割り付けてしまうと、システムが全く動作しなくなって
しまいます。そこで最初は96KB環境にしておいて、バンク2前半のシステムデータを
後半のSRAM領域に読み出しておき、スイッチで128KB環境に切り替えてから、
元の20000h〜24C9Fhに書き戻してやる事で、バンク2全てをSRAMに振り替えても
システムが動作できるようにします。

この副作用?でシステムデータがSRAM上に置かれる事になるため、ユーザーが自由に
文字フォントを入れ替えたり、システムメッセージを他のモノに変更したりできます。
しかし、システムデータをユーザーが自由に変更できるのは便利な反面、誤って書き換えて
しまったり、マシン語プログラムの暴走等で破壊してしまう危険性もあります。
暴走等によるシステムの破壊が問題となる場合は、スイッチを96KB環境にして利用する方が
より安全です。(96KB環境と128KBで、RAM容量の差は12.5KBしかありません)

この辺りは、ユーザが各自判断して、自分にあった運用をする様にお願いします。


3.準備するもの

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

必要道具一式
番号 名称 数量
1 ハンダごて(15W程度/セラミックヒータータイプ) 1
2 ピンセット(あると便利) 1
3 ワイヤストリッパー(あると非常に便利) 1
4 精密ドライバセット(+および−) 1式
5 テスター(通電を音で確認できるタイプが便利) 1
6 1Mbit SRAM(HM628128-LFP相当品) 1
7 74HC11(DIPタイプでOK) 1
8 74HC139(DIPタイプでOK) 1
9 超小型6Pスライドスイッチ(ON/ONタイプ) 1
10 ジャンパ線(なるべく細いもの) 適当
11 ハンダ吸い取りリボン 1
12 ハンダ(0.8mm(できれば0.6mm)以下の物) 適当

特に低ワットなセラミックはんだごてとハンダ吸い取りリボン、精密ドライバは必須です。
また、細かいジャンパを多用するのでワイヤーストリッパーがあると非常に便利です

1MビットSRAM(HM628128-LFP相当品)やロジックICは、通信販売等で入手可能です。
(全て込みで1000〜2000円程度?)
サンエレクトロあたりで入手できると思います。


4.各ICのPin配置

 改造で使用するSRAM/PROM/各種ロジックICおよび、拡張メモリポートのPin配置図を
以下に示します。改造時の参考にしてください。

ピン配置図


5.動作原理/改造手順

動作原理

基板に実装されているマスクROM(TC531000CF)用の/CSとA16,A15を74HC139でデコードして
バンク2用の/CS(/CS3,/CS4)を作成し、他のSRAM用/CSと74HC11にてANDして使います。
この内、バンク2前半用/CS(HC11 Pin5出力)を6Pスライドスイッチを使ってPROM側/CSとする(96KB環境)か、
SRAM側/CSとする(128KB環境)か選択できるようにしています。

改造方法

VX-4/FX-870Pを分解後、配線図を元に下の手順で改造を行います。
本体の分解方法およびPAD変更/SRAM換装については、「CASIO PB-1000 Forever!」に
寄稿した以下の記事を参考にしてください。

参考: 「VX-4内蔵メモリを32KB(FX-870P)相当に!」

96KB/128KB 増設時の配線図を示します。
実際の改造は、この配線図の通りに行えば大丈夫です。

RAM96/128KB改造配線図

1MBit SRAM(HM628128)を実装する時、基板側パターンの横幅がギリギリなので、
少しSRAMのPinを左右から押して、狭くしておいた方が実装しやすいと思います。

また、ハンダ付け前に基板側パターンにフラックスを塗っておくと、ハンダ乗りが良くなり、
作業が楽です。(ハンダ付け後にクリーナで洗浄するのが面倒な場合、無洗浄タイプの
フラックスを使った方が良いと思います)

ロジックIC(74HC11、74HC139)は、DIPタイプを利用すると
配線がやりやすいと思います。
私が改造したときはICはPinを全て跳ね上げ、
足を短くカットして拡張メモリコネクタに
両面テープで固定しました。(左記画像参照)

拡張メモリコネクタに引き回した配線と、
本体側のプラスチックケースが収納時に干渉するので、
ケース側(拡張メモリコネクタ枠)のプラスチックを削って、
配線が増設コネクタ側に通るようにします。

とにかく落ち着いて、ゆっくりやることが重要です。
配線が多く、ジャンパ線だらけになるので、
面倒でも1本ずつ、良く確認してから
ハンダ付けを行った方が結果的にミスは少なくなります

6.動作確認

(1)目視/テスターによる配線確認
改造後、いきなり電源を入れたりせずに、まず目視やテスタ等を使って配線が正しい
事を確認します。狭い場所で多数のジャンパが入り乱れますので、落ち着いて1本1本
確認してください。

(2)電源ON/RAM認識の確認
配線が正しい事を確認したら、本体を組み立てて動作確認をします。
この時、スライドスイッチをPROM側(96KB環境)にしておくのを忘れないでください。
SRAMが初期化されていないため、128KB側になっていると正常に動作しません。

電池を装着後、裏面のスイッチをONにして、本体電源を入れます。
うまく電源が入らない場合は、Pスイッチを押してからやり直してください。

オールリセット画面

ALL RESETを押して「RAM 32KB + 32KB」と表示され、64KBフル実装になっていれば
ひとまず成功です。電源が入らなかったり、RAMが認識されない場合は、速やかに
電池を外して 再度配線を確認してください。

(3)プログラムエリア(バンク1側)の確認
SYSTEM*[EXE] と入力して、テストモードに遷移して、「4:RAM」 を実行します。

テスト画面

「4:RAM」を実行すると「PACK 32KB」と表示され、エラーがなければテスト画面に
戻ります。テストでエラーが出た場合や「PACK 0KB」と表示される場合は、
SRAMのハンダ付け不良と思われますので、配線を確認してください。

(4)バンク2側の確認
上記(3)を実行するとRAM内容が破壊されるので、電源ON後、ALL RESETを実施します。
バンク2側SRAM初期化処理(sys.b)」をP0〜P9のいずれかに転送してRUN起動すると、
"OK"と表示されますので、その状態のまま、スイッチを96KB側から128KBに切り替えて下さい。
切り替え後、数字キーの"0"を押して"OK"が表示されれば、バンク2側のチェックおよび
初期化は完了です。
バンク2初期化
プログラム

SYS.B(4KB)

スライドスイッチを128KB側に切り替えたときに暴走したり、電源が切れたりする場合は、
74HC139及び74HC11関連の配線を確認してください。
#A15,A16が逆に入力されていたり、74HC139からのY2,Y3出力を逆に配線している
#可能性があります。って両方とも、私がやったミスですが・・(おぃ


7.バンク2活用アプリ(VX-MENU2)

VX-MENU画面

 本改造により、無事108KBものメモリ空間をユーザーから利用できるようにはなったのですが、
いかんせん拡張されたバンク2側エリアは、マシン語を使わないとアクセスできません。

そこで「VX-MENU」を拡張し、バンク2側をファイル格納場所として使えるようにするのと同時に
VX-MENU本体もバンク2側に格納/動作させることで、バンク1側のメモリ消費も最小限に抑える様にしました。
これにより100KB以上のメモリエリアをファイル格納場所としてメニュー上から管理でき、
かつ、従来、VX-MENU常駐用として、バンク1側に約4.5KBのメモリが必要だったのが、
60バイトで済むようになっています。

HD61700 CROSS ASSEMBLERから入手可能です。
使い方の詳細は、付属のドキュメントを参照下さい。

補足説明
「VX-MENU」とは、FX-870P/VX-4/VX-3の最大の弱点である「どんなにメモリを搭載しても
ファイルは最大で20個までしか扱えない」と言う制限を外し、PB-1000と同等のファイル
メニュー環境を使えるようにするソフトです。

このVX-MENUを導入する事により、BASIC/C/CASLファイルに対する操作(LOAD/SAVE/
RUN/EDIT)のみならず、マシン語ファイルに対する操作(LOAD/SAVE/RUN/エリア確保)も
F.COMを使うことなく行えるようになります。

8.その他の改造方法

 バンク2側に増設されたRAMエリアは、BASICやマシン語ファイルの格納場所として、
VX-MENU等で利用する場合には非常に便利なのですが、そもそも、そんなにたくさんの
プログラムを格納する必要がないのも事実です。

元々RAMファイル機能を持たないVX-4/FX-870Pでは、大抵の場合、64KBもあれば充分です。
このようにバンク2側を使わないと言う場合は、次に述べる2通りの方法がオススメです。
SRAM(HM628128相当品)と74HC08のみで済むため、工作もより単純になります。

ユーザの用途によって、回路図2(64KBのみ実装)と回路図3(64KBx2スイッチ切り替え)を選ぶと
良いと思います。

8−1.回路図2(64KB 改造用)

VX-4/FX-870Pを64KBフル実装にします。バンク2側の拡張は行いません。

RAM64KB改造配線図

回路としては、A15,A16をTC531000CFから引っ張ってきて、元々SRAMへ入力されていた
/CS(基板側)と増設メモリスロット/CSとを74HC08でANDして、SRAM(HM628128)用/CSにしています。

画像を見ると判ると思いますが、128KB時と同様、PAD1,PAD2の変更が必要となりますので
注意して下さい。

この回路に、スライドスイッチと抵抗を追加して、A16をプルアップ/プルダウンできるように
することで、独立した64KB環境を2つ切り替えて使うことも可能です。(下記参照)
こちらの改造の方が、RAMを2倍使えるのでより便利だと思います。

上述の64KB改造にA16の修正を加えます。
(スライドスイッチは電源OFFで切り替える必要があります)

8−2.回路図3(64KBx2 改造用)

RAM64KB*2改造配線図


9.あとがき

 HD61を開発し、VX-4を入手して1年。
どっぷりとCASIOポケコンにはまってしまった日々でした。

手持ちのPB-1000が不調だったため、何とかVX-4をPB-1000と同じ環境で使えない
ものかと悪あがき(おやじの道楽とも言う?)した結果、108KBのユーザー空間を持ち、
PB-1000と同等のファイルメニューを搭載、BASIC/C/CASL及びバイナリ(マシン語)も使え、
RS232C(レベコン)経由でパソコンとも連携でき、30Pin端子で外部機器の制御も可能と言う、
HD61700系ポケコン史上、ほぼ最強なマシンとなっています。(やりすぎ)

多分、私以外にこの記事(128KB化改造)を実施する人はほぼ皆無だと思いますが、
「ウチのVX-4もRAM増設ついでにHD61700系最強マシンにしてみようかな」と言う場合に
この記事がお役に立てば幸いです。

2004-2-8 @あお


参考文献:「PC−E500シリーズ 改造の手引き 第2版」 Lycanthrophy nomi 氏
記事は、あお氏よりご寄稿して頂きました。ご協力誠にありがとうございました。

戻る