AppleIIのCPUをW65C02に換装
- 2022/06/20 16:06
- カテゴリー:マニアックなおはなし, make:
AppleIIを触っているのは,とても楽しいです。特にすることがなくても,特にトラブルが起きていなくても,とりあえず電源を入れて動いていることを確認することすら,楽しいです。
そうなると,このAppleIIが壊れてしまうことがなにより恐ろしいわけですが,私の場合,修理をするだけの根気と知識はありますので,部品が手に入らないことが一番困った事になるわけです。
それでもAppleIIはTTLで構成されているので,最悪今でも手に入る74HCシリーズで代用が可能でしょう。ROMは今でも入手可能なEPROMで代用も出来そうです。
怖いのはCPUで,実は6502って,CPU単体ではなかなかお目にかかれません。というのも,オリジナルのMOS TECHNOLOGYは早々にCommodorに買収され,今は消滅していますし,セカンドソースはRockwellとかSynertekとか,ちょっとマイナーな所ばかりが手がけていました。
数をばらまくのが得意な日本のメーカーでは,リコーや三菱が知られていましたが,これらは6502単品と言うよりもカスタムICのコアとしてや,ワンチップマイコンとして互換性のない形で作られていました。
そんなわけで,随分早くに製造が打ち切られていますし,流通在庫も少ないですから,NMOSの6502というのはなかなか入手が難しいのです。
先日,その6502を触ってみると,やけどしそうなくらいに熱くなっていることに不安を覚えました。まあ,バイポーラやNMOSの時代のCPUなんてのはこのくらいの発熱は当たり前だった(いや,CMOSでも現在のCPUは空冷が必要なくらい発熱するわけですが)ので気にしなければいいのですが,熱はトラブルの原因だけに,壊れた時のために予備が欲しいなと思うのは,自然な事でしょう。
実のところ,かつて実家にはAppleIIのコンパチボードがあって,部品取りにしてあったのですが,実家の片付けに伴い処分してしまったのです。ここに6502やNE558などのICも乗っかっていたので,惜しいことをしたと悔やんでいます。
悔やんでいても仕方がありません。
AppleIIには世界中にユーザーがいます。きっと彼らがなんとかしているに違いない,そう思って調べてみると,やはりなんとかなりそうな情報が手に入りました。
まず,6502ですが,CMOS版の65C02なら,現在も新品が手に入ります。
WesternDesignCenterというメーカーから,W65C02という品名で売られていて,全世界で購入可能です。ついでにいうとACIAやPIAも手に入るからすごいです。お値段も良心的な,日本円で八百円から1000円ほどです。
問題は65C02に差し替えることが出来るのかどうかです。まず,後期のAppleIIeやAppleIIcは65C02ですので,ソフト互換はあるでしょう。となると電気的もしくは物理的な互換性です。
調べてみると,WDC自らが,AppleIIで使う方法を正式なドキュメントにまとめていました。半導体のメーカーが,アプリケーションノートとして,趣味のコンピュータのために置き換え方法を検証して公開するというのは,なかなか粋なことをするものです。
このドキュメントによると,パッケージもピン配置も互換性があるということ,ただし一部のピンの非互換なものがあるので修正せよ,とあります。
具体的には,まず1ピンです。6502ではここはVSS(GND)となっていますが,W65C02ではVPBという出力信号になっています。このまま繋いでしまうと壊れてしまうので,ここを浮かせて取り付けます。
次に36ピンです。6502ではNCですが,W65C02ではBEという入力端子になっています。このBEという端子ですが,Lowにするとバスがハイインピーダンスになるので,Highにしなければなりません。
最後に5ピンです。オリジナルはNCですが,W65C02はMLBという出力端子になっています。ゆえに浮かせなければなりません。
一応,これで動くようになるんだそうですが,ドキュメントにはAppleIIeでは検証済み,AppleIでは未検証だ,とかいてあります。AppleIで未検証って・・・
さて,実際の作業ですが,まさかappleIIの基板を改造するわけにはいきませんので,変換ソケットを作りましょう。先日デジットのジャンクで買った40ピンの激安丸ピンソケットが役に立ちます。
まず,20ピンのヘッダピンを2列用意して,1ピンと5ピンと36ピンの片側のピンを切ってしまいます。そしてソケットのピンとハンダ付けすれば,基板に改造も,W65C02のピンを曲げたり切ったりすることなく,ピンを浮かせることが出来ました。
そしてW65C02の36ピンをVDDに繋ぐため,8ピンと導線で繋ぎます。これで完成。
W65C02をソケットに差し込み,AppleIIの基板の6502を抜き取って,代わりにこの変換ソケットを差し込んでみます。
電源を入れてみると,ピピピとおかしな音がしたかと思ったら,画面がぐちゃぐちゃです。起動していません。失敗です。
配線間違いをしたかなと確認しましたが,間違いはなし。何時間か悩んだのですが動いてくれません。google先生に聞いてみても,頼もしいはずの世界中のマニアも,AppleIIeでは試していても,私のようなAppleIIやAppleIIplusでの動作報告をしてくれていません。
うーん,そもそもAppleIIplusではダメなのか?
AppleIIとAppleIIeの回路図を比べて見ましたが,CPUの周辺で問題になるような特に差はありません。ますますおかしいです。
こういう時は,波形を見るのが解決の早道です。
まず,目星を付けていたクロックを確認。
むむ,これはやばそうです。
実は,NMOSの6502では,2.4V以上ならHighと認識してくれますが,W65C02ではなんと3.5V以上でないとHighと認識してくれません。CMOSなら当たり前のことなのですが,実はこの点において電気的な互換性が難しくなっていたのです。
波形の黄色い線は3.5Vのラインです。ここから上しかHighとして認識されないのですが,この波形ではちょうど3.5Vあたりで立ち上がってくるという,嫌な感じになっています。
いや,結局5Vまでスイングさせれば関係ないでしょ,と思うなかれ。この時代の主流だったTTLというロジックICは,Highレベルを電源電圧ギリギリまd目一杯振ることが出来ず,3.5V位で頭打ちになることも多いのです。CMOS時代の今では考えられない制限ですよね。
なので,この波形でもNMOSなら動くでしょうが,W65C02は動かないのです。
こういう事例で有名なのは,Z80のクロックです。Z80はNMOSですので2.4V以上ならHighなのですが,クロックだけは4.4V以上でないとダメという,非常に厳しい条件が課せられていました。Z80ではよく知られたお話です。
この時,対策として行われていたのが330Ωによるプルアップです。330Ωなんていう低い抵抗でプルアップしても大丈夫なんかと思いますが,TTL時代ならいいのです。
ということで,早速37ピンのクロックの端子を330Ωでプルアップしてみます。
おー,綺麗な波形になりました。もちろんちゃんと動いています。ディスクアクセスも問題ありませんし,丸一日動かしてもコケません。
ちなみに,データバズも不安だったのですが,こちらはなんとか3.5V以上を確保出来ています。面倒ですし,副作用も怖いですから,これはこのままでいきます。
ということで,W65C02はAppleIIplusでも動きます。AppleIIeでの動作報告が多いのは,どうもクロックを供給するICがCPUの近くにあり,波形のなまりが少ないせいではないかと思います。AppleIIplusでは,CPUから結構遠いところにクロックのICがいて,そのせいで波形がなまっているんじゃないかと思います。
ということで,W65C02でAppleIIplusが動いた数少ない事例になりました。
とまあ,書いてしまえば簡単なのですが,実は途中でキーボードが動かなくなったりして,CPUのせいかと焦ったりしていました。調べてみるとキーボードとマザーボードを繋ぐフラットケーブルの不良があったり,キーボードとエンコーダー基板を継ぐコネクタに接触不良があったりして,なかなかすんなり動いてくれなかったのです。
最終的にはそれらもすべて解決して,今の私のAppleIIplusは完調です。いやー,気分がよいものです。
さて,交換したW65C02ですが,さすがCMOSだけあって,ちっとも熱くなりません。これだけ電気を食わないなら,他の部品,特にRAMとROMをCMOSにするだけで随分消費電力が減るんじゃないかと思いますが,ホカホカするのもオリジナルならではの趣ですし,これはそのままにしておきましょう。
CPUは,壊れてしまうのが怖いですから,当面W65C02でいきましょう。出来ればもう1つくらい予備があると安心です。