PC-9801FA2っていうのはi486SX 16MHzのパソコンです。 ちょっとパワーアップさせる事にしました。以下の改造を施します。 なお、改造する時は個人の責任においてやってください。
・ | CPUの交換 i486SX → i486DX2 |
・ | Clock Up 16MHz → 20MHz |
・ | 39.3216MHzの水晶発振器 (できれば正方形のもの) |
・ | 40MHzの水晶発振器 |
・ | 74F125(SOP) |
・ | 47uF 16V 電解コンデンサー×5個 |
・ | ラッピングワイヤー(細めの電線) |
FAには、486SXが半田付けされています。 さすがにこれを取り外すのは骨が折れるので、隣にあるi487用のソケットにi486DX2を刺す事にします。
マウスのコネクタのそばに15B1というランドがあります。この2つのランドを短絡すると基板に張り付いている 486SXが停止するので、i487用のソケットにi486DX2などの5V系の486互換CPUやODPなどを実装する事ができます。
こだわる場合はジャンパピンを買ってきて半田付けします。私は面倒だったので半田を盛ってショートしました。 ショートできたら、CPUを差し替えます。この時方向を間違えないようにします。
ちなみに、486DX2以上のCPUを使うと高速モードでFDDが使えなくなります。 FDDの使用頻度は少ないので我慢する事にしました。
98x1には伝統的に5MHz系と8MHz系の2種類のものがあります。
8MHz系だとRS-232C I/Fが分周比の関係で9600BPS以上だとボーレートが合わないという現象がおきて不便です。(FAは8Mz系;_;/ (%N1とかのATコマンドを使うと20800BPSとか41600BPSで通信できるモデムもありますね(^^;)
5MHz系だとシステムクロックが、ちょっぴり高速なので幸せです。
5MHz系と8MHz系の違いをfig-1に示します。
SCLK1へは源発振を4分周、DMAへは8分周、タイマへは16分周した周波数がそれぞれ供給されている事が分かります。 S18CLKは、5MHz系の場合はSCLK1を32分周、8MHzの場合はSCLK1を26分周して302.7KHzを作り出しています。
まず、システムクロックを8MHz系から5MHz系へ変更する事にします。
fig - 1 (12MHzのマシンは5MHz系です。初代98のみSCLK1が4.9152MHz)系列 | 源発振 | SCLK1 | DMA | タイマ | S18CLK |
5MHz系 | 39.3216MHz | 9.8304MHz | 4.9152MHz | 2.4576MHz | 302.7KHz |
8MHz系 | 31.9488MHz | 7.9872MHz | 3.9936MHz | 1.9968MHz | 302.7KHz |
FAを5MHz系のマシンにするには以下の様にします。
D95005GL(208ピンQFP)
18番ピンをプルダウン。(近いGNDは同ICの22番ピン)
107番ピンをプルダウン。(近いGNDは同ICの105番ピン)
ETC3(136ピンQFP)
49番ピンをプルダウン。(近いGNDは同ICの36番ピン)
ORDER SXCPU(100ピンQFP)
46番ピンをプルダウン。(近いGNDは同ICの49番ピン)
配線は各ピンをランドから浮かせてから行います。
ピンを浮かす時は、まち針を使いました。 隣のピンを支点にして針先を浮かせるピンの下に潜り込ませます。 次に該当ピンを加熱して十分に半田が溶けたらテコを使うようにして浮かせます。
CPUボード上のCPUの右隣に31.9488MHzの長方形の水晶発振器がありますが、これを取り外します。 GNDのパターンは広くて温まりにくいので28W~40Wくらいのコテで作業すると、やりやすいと思います。
取り外したら9cmくらいのラッピング線を使って32.3216MHzの水晶発振器を仮付けして動作チェックを行います。 「ピポッ」って音の音程が大幅に高い場合は、D95005GLの18番ピンと107番ピンが正常にプルダウンできてません。 キーボードが使えない場合にはORDER SXCPUの46番ピンを、 拡張スロットに入れたボードが動作しない時はETC3の49番ピンがちゃんとプルダウンできているかどうか確認します。
テストが終わったら32.3216MHzの水晶発振器は取り外しておきます。
参考:一般的な水晶発振器のピン配置ピン番号 | 機能 |
1 | NC |
2 | GND |
3 | OUT |
4 | Vcc |
PC-9801FAは、CPUクロックから各種のシステムクロックを分周して作っているのでCPUクロックをあげるとCPU以外も影響を受けます。 それでは都合が悪いので、CPUクロックとシステムクロックを別系統にします。
ORDER SXCPU
56番ピンをプルアップ。(一番近いVccは同ICの46番ピン)
3番ピンに39.3216MHzの水晶発振器の出力を接続します。これがシステムクロックとなります。 水晶発振器のVccとGNDはi486SXのロゴが読める向きから見てORDER SXCPUの左側にある、電解コンデンサの+側と-側にそれぞれ接続し、 水晶発振器は逆さまにしてカーペット用の両面テープで基板に貼りつけました。
配線は各ピンをランドから浮かせてから行います。
次に、40MHzの水晶発振器を31.9488MHzがついていた場所へ接続します。これがCPUクロックとなります。 元あったランドにVccとGNDとOUTを接続します。 私の場合水晶発振器が長方形型だったのでi486SXの上に発振器を両面テープで貼り付けて、各ピンはラッピング線で基板と接続しました。
基板の裏側4Nの位置に74LS125というICがついています。 このICが足をひっぱってText-VRAMのアクセスに支障をきたすので(文字化けするようになる(^^;)74F125へ交換します。
74F125はフラットパッケージの同タイプの物を使います。 パターンが剥がれたらラッピング線で配線します。ちなみに、2番目のバッファは使用されていないみたいでした(^^;
メモリコントローラーの設定を変更してメモリに高速でアクセスできるようにします。
ASSIST SXMEM
124番ピンをプルダウン。(一番近いGNDは同ICの122番ピン)
配線はピンをランドから浮かせてから行います。
ちなみに124番ピンをプルダウンした状態で123番ピンをプルアップするとメモリアクセスに1ウェイト入るようになるようです。
486SXのロゴが読める向きに基板を見たときに、
・ | 486SXの右下 |
・ | ディップスイッチの後ろ |
・ | ASSIST SXMEMの右下 |
・ | D95004GLの右下 |
・ | ORDER SXCPUの左上 |
の計5カ所の電解コンデンサに47uFの電解コンデンサを追加(並列に接続)します。
すべての改造が終わったら電源を入れてみます。 動かない時はすぐに電源を切って各改造箇所を確認します。
5MHz系か8MHz系を見分けるには、システム共通領域とよばれるメモリを読み出す事によっても可能です。 ここが書き変わらないと一部の通信ソフトでボーレートの設定がおかしくなります(;_;/ ちなみにシステム共通領域を調べる方法がNECが推奨するやり方みたいです。
このメモリは起動時に自己診断プログラムが値をセットします。 (自己診断プログラムは普段は別のバンクにあってCPUからはアクセスできません) 本来ならROMを書き換えてここも5MHz系の設定になる様にするべきなのですが、面倒くさいのでソフトで対応する事にします。
DX2以上のCPUだと高速モードではBIOSのWaitが足りなくてFDDを認識しなくなります(FDCにはアクセスできます)。 根本的な解決にはBIOSの焼き直しが必要ですが、中速モードにすればアクセス出来るようになるのでそれでお茶を濁す事にします(^^;
39.3216MHzの水晶発振器は秋葉をうろついてもなかなか見つかりませんでした。私はRAM STATEさんで買いました。
改造を行ったマザーボードはG8KZE-A6Bというロットのものでした。(搭載RAM 70ns)
cpubenchの結果が50くらいになりました(BX3に勝利(^-^v)。なかなか快適です♪ 副作用としてV30互換モードで起動しなくなってしまいました;_;/
トラ技には22MHzの動作例がでてましたが、私のマシンでは20MHzが限界みたいでした;_;/ 眠れる獅子は、眠れる子猫だった模様です-:)