安価な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メモリ利用状態] |
問題は、24CA0h〜と言う中途半端なアドレスから始まっているため、アドレスデコード上、
バンク2未使用エリア(24CA0〜2FFFFh)までを綺麗にSRAMに振り替えるのが難しい点です。
仕方がないので74HC139/HC11とスライドスイッチ(6P)を利用して、バンク2後半(28000〜2FFFFh)のみを
SRAMとして割り付ける設定(96KB環境)と、全て(20000〜2FFFFh)をSRAMに割り付ける設定(128KB環境)を
切り替えられるようにして、専用の転送プログラム(※下記参照)を用いることで、
ソフト的にデコード問題を解決するようにしました。(少々危険ですが・・)
※BASIC/F.COM/C/CASLの動作にはバンク2前半のシステムデータが必要なため、 いきなりバンク2の全エリアをSRAMに割り付けてしまうと、システムが全く動作しなくなって しまいます。そこで最初は96KB環境にしておいて、バンク2前半のシステムデータを 後半のSRAM領域に読み出しておき、スイッチで128KB環境に切り替えてから、 元の20000h〜24C9Fhに書き戻してやる事で、バンク2全てをSRAMに振り替えても システムが動作できるようにします。 |
この副作用?でシステムデータがSRAM上に置かれる事になるため、ユーザーが自由に
文字フォントを入れ替えたり、システムメッセージを他のモノに変更したりできます。
しかし、システムデータをユーザーが自由に変更できるのは便利な反面、誤って書き換えて
しまったり、マシン語プログラムの暴走等で破壊してしまう危険性もあります。
暴走等によるシステムの破壊が問題となる場合は、スイッチを96KB環境にして利用する方が
より安全です。(96KB環境と128KBで、RAM容量の差は12.5KBしかありません)
この辺りは、ユーザが各自判断して、自分にあった運用をする様にお願いします。
3.準備するもの |
本改造をするにあたって必要な道具および、材料です。
|
特に低ワットなセラミックはんだごてとハンダ吸い取りリボン、精密ドライバは必須です。
また、細かいジャンパを多用するのでワイヤーストリッパーがあると非常に便利です
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 増設時の配線図を示します。
実際の改造は、この配線図の通りに行えば大丈夫です。
1MBit SRAM(HM628128)を実装する時、基板側パターンの横幅がギリギリなので、
少しSRAMのPinを左右から押して、狭くしておいた方が実装しやすいと思います。
また、ハンダ付け前に基板側パターンにフラックスを塗っておくと、ハンダ乗りが良くなり、
作業が楽です。(ハンダ付け後にクリーナで洗浄するのが面倒な場合、無洗浄タイプの
フラックスを使った方が良いと思います)
ロジックIC(74HC11、74HC139)は、DIPタイプを利用すると |
|
拡張メモリコネクタに引き回した配線と、 本体側のプラスチックケースが収納時に干渉するので、 ケース側(拡張メモリコネクタ枠)のプラスチックを削って、 配線が増設コネクタ側に通るようにします。 とにかく落ち着いて、ゆっくりやることが重要です。 配線が多く、ジャンパ線だらけになるので、 面倒でも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のハンダ付け不良と思われますので、配線を確認してください。
スライドスイッチを128KB側に切り替えたときに暴走したり、電源が切れたりする場合は、
74HC139及び74HC11関連の配線を確認してください。
#A15,A16が逆に入力されていたり、74HC139からのY2,Y3出力を逆に配線している
#可能性があります。って両方とも、私がやったミスですが・・(おぃ
7.バンク2活用アプリ(VX-MENU2) |
本改造により、無事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スイッチ切り替え)を選ぶと
良いと思います。
VX-4/FX-870Pを64KBフル実装にします。バンク2側の拡張は行いません。
回路としては、A15,A16をTC531000CFから引っ張ってきて、元々SRAMへ入力されていた
/CS(基板側)と増設メモリスロット/CSとを74HC08でANDして、SRAM(HM628128)用/CSにしています。
画像を見ると判ると思いますが、128KB時と同様、PAD1,PAD2の変更が必要となりますので
注意して下さい。
この回路に、スライドスイッチと抵抗を追加して、A16をプルアップ/プルダウンできるように
することで、独立した64KB環境を2つ切り替えて使うことも可能です。(下記参照)
こちらの改造の方が、RAMを2倍使えるのでより便利だと思います。
上述の64KB改造にA16の修正を加えます。
(スライドスイッチは電源OFFで切り替える必要があります)
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 氏
記事は、あお氏よりご寄稿して頂きました。ご協力誠にありがとうございました。