エントリー

カテゴリー「マニアックなおはなし」の検索結果は以下のとおりです。

AppleIIのCPUをW65C02に換装

20220620160618.JPG

 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の周辺で問題になるような特に差はありません。ますますおかしいです。

 こういう時は,波形を見るのが解決の早道です。

 まず,目星を付けていたクロックを確認。

 20220620160620.PNG

 むむ,これはやばそうです。

 実は,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Ωでプルアップしてみます。

 20220620160619.PNG

 おー,綺麗な波形になりました。もちろんちゃんと動いています。ディスクアクセスも問題ありませんし,丸一日動かしてもコケません。

 ちなみに,データバズも不安だったのですが,こちらはなんとか3.5V以上を確保出来ています。面倒ですし,副作用も怖いですから,これはこのままでいきます。


 ということで,W65C02はAppleIIplusでも動きます。AppleIIeでの動作報告が多いのは,どうもクロックを供給するICがCPUの近くにあり,波形のなまりが少ないせいではないかと思います。AppleIIplusでは,CPUから結構遠いところにクロックのICがいて,そのせいで波形がなまっているんじゃないかと思います。

 ということで,W65C02でAppleIIplusが動いた数少ない事例になりました。

 とまあ,書いてしまえば簡単なのですが,実は途中でキーボードが動かなくなったりして,CPUのせいかと焦ったりしていました。調べてみるとキーボードとマザーボードを繋ぐフラットケーブルの不良があったり,キーボードとエンコーダー基板を継ぐコネクタに接触不良があったりして,なかなかすんなり動いてくれなかったのです。

 最終的にはそれらもすべて解決して,今の私のAppleIIplusは完調です。いやー,気分がよいものです。

 さて,交換したW65C02ですが,さすがCMOSだけあって,ちっとも熱くなりません。これだけ電気を食わないなら,他の部品,特にRAMとROMをCMOSにするだけで随分消費電力が減るんじゃないかと思いますが,ホカホカするのもオリジナルならではの趣ですし,これはそのままにしておきましょう。

 CPUは,壊れてしまうのが怖いですから,当面W65C02でいきましょう。出来ればもう1つくらい予備があると安心です。

 

M5jrにメガROMを

 昨年9月に,M5jrのメンテを行ったのですが,この時の宿題として,BASIC-Fを起動することと,複数のゲームを1つのROMに入れてしまうことがありました。

 この時はBASIC-G(これが今貴重である事に驚いているわけですが)のカートリッジを改造して実現しようとしたのですが,BASIC-Gのカートリッジでは取り出すことの出来ない,EXMという信号が必要になったためあきらめたのでした。

 ところが,少し前からM5のカセットテープのゲーム類をイメージ化してエミュレータで遊んでいるうちに,やっぱり実機で遊ばないとなと思うようになり,一念発起して宿題を片付けることにしました。

 そうするとM5に使えるユニバーサル基板が必要になるんですが,ここで閃いたのは,AppleIIやPC-6001のユニバーサル基板が欲しいと思った時に買っておいたMSXのユニバーサル基板が1つ余っていたことでした。

 これを使えばなんとかなると早速回路図を書いて,部品集めを始めたのです。特別な事はなにもせず,0x2000から0x6fffまでをROMに,0x8000から0xffffまでRAMにするだけのものです。

 RAMはA15を反転させてCSにすれば終わりです。これは実績がある回路なので心配なしですが,問題はROMです。

 BASIC-FとBASIC-I,これに8kBのゲームを4本詰め込んで,512kBitの27512にまとめる計画を立てました。

 0x2000から0x3fffまでの8kBがROM1,0x4000から0x5fffまでの8kBがROM2,0x6000から0x6fffまでの4kBがEXMという信号でそれぞれデコードされているのですが,これをAND(負論理のOR)で束ねてやれば,ROM用のCSは出来るはずです。2ゲート入りのTC7W08も手元にありますし,余裕余裕。

 バイナリエディタでROMのイメージを作り,ライタで書き込むのですが,どうもベリファイでエラーが出ます。この時期のEPROMは,メーカーが違っていると微妙に書き込み電圧が違っていたり,書き込みのシーケンスが違っていたりするのでちゃんと書けないという事が起きます。検証を含めて多種多様なEPROMに対応したROMライタが,それだけで立派な開発機器として販売出来た時代ですね。

 エラーになったのはAMDのものだったのですが,あいにく27512はAMDも富士通もエラーになり,これ以外の手持ちがないので諦めました。そこで,1Mbitの27010を使うことにしました。

 1MbitのEPROMなんて使った事がありませんので,書けるのかどうなのかわかりませんし,端子も32ピンになるので回路も書き直しです。しかし上手くいけばさらに8本もゲームを増やせます。

 手持ちを調べると,インテルの27010が3つほどありました。ROMライタも対応済みという事で試してみると,ちゃんとベリファイも通ります。早速イメージを作って書き込みます。

 さあ,回路図も書いたしROMも準備出来た。

 で,MSXのユニバーサル基板を実機に突っ込んで確認をしたところ,端子の数が違う事にようやく気が付きました。MSXは50ピン,しかしM5は58ピンなんですね。知りませんでした。

 56ピンのユニバーサル基板なんて見た事ありません。ファミコン用の60ピンの基板を買ってきて,削って56ピンにすることを考えましたが,買うのも面倒くさいです。

 改めてM5のピン配列を眺めてみると,A面とB面の1,2,3ピンは,-12Vと+12Vという使う事がない端子であることがわかりました。なら,反対側に寄せて差し込んで,この6つの端子は未接続で使えばいいんじゃないかと閃いて,そういう差し込み方が出来るかどうかを試したところ,問題なさそうであることがわかりました。

 あとはもうゴリゴリと配線です。アドレスのセレクタには,先日デジットの特価品から購入した小型のスイッチを早速使います。4時間ほどの作業で配線が終わりました。配線の確認後ワクワクしながらROMを差し込んで電源ONです。

 ・・・動きません。配線ミスがあったのでそれを修正しますが,BASIC-Iは起動するもののBASIC-Fが起動しません。ゲームも12本も入れたのに4本ほどしか動いてくれません。どうも,A13の処理がまずいような感じです。

 ROMのA13は,BASIC-Fのためにバスに繋ぐ場合と,Highにしてバンクを選択する場合とをスイッチで切り替える仕組みにしたのですが,ここがどうも機能していないみたいです。配線間違いも回路のミスも見直したのですが,動いてくれません。

 タイミングの問題かと思いCSを少し遅らせたり,どっかショートして信号がぶつかっていたりとか,真面目に調べてもみましたが解決しません。どうしたものか・・・

 しかし,心のどこかで,もやっとした不安はありました。本当にこれでROMがきちんとアクセス出来るのだろうかと。確かにデコード済みの信号としてROM1やROM2,EXMが出ているのは事実ですが,それがどんな信号なのかは,内蔵のゲートアレイの中身が不明なのでわかりません。

 わからないついでに,盲目的に「0x2000から0x3fffならROM1ね」と深く考えもせずに使うことにしたわけですが,本当にそんなに簡単なものかという疑いは,深く考えていないときに働く第六感のようなものです。

 ただ,BASIC-Fのカートリッジを解析した回路図が出回っており,これを見るとなにも特別な事をせず,27128で16kB,2732で4kBを実装していました。27128にはROM1とROM2のANDをCSに突っ込んでありますし,2732にはEXMを突っ込んでありました。

 うーん,面倒くさがらず,真面目に紙に書いて確かめて見ましょう。・・・なるほど,これでは動かないはずです。詳しく書く必要もないくらい恥ずかしいミスをしていました。

 M5のカートリッジのROMは0x2000から始まります。しかし,ROMは0x0000からバイナリが置かれています。なにも考えずにそのままアドレスバスを繋いでしまえば,M5が0x2000をアクセスすると,ROM上のバイナリは本来0x4000にあるべきものをデータとして出力してしまうのです。

 これは,2764を複数個使う場合には成り立つのですが,27128や27256など8kB以上のメモリを使う時には破綻してしまいます。ちゃんと0x2000分のオフセットを乗せないといけないのです。

 試しに,ROMの0x2000からBASIC-Fを書き込んだ27256を作って見ると,さくっとBASIC-Fが起動しました。わかってみればなんでもないことですが,思い込みというは厄介なものですねえ。

 まてよ,ならBASIC-Fのカートリッジはなぜ動いているのだ?

 これ,ちょっと考えればわかるのですが,ROMのバイナリの順番を入れ換えて書き込んで解決しているのだろうと思います。まず,0x2000から0x3fffまででアクセスされるバイナリは,ROMのアドレスも0x2000から0x3fffまでのエリアに配置します。このアリアはA13がHighになるエリアですので,これで正常にアクセス出来ます。

 問題は0x4000から0x5fffまででアクセスされるバイナリなのですが,ここはA13がLowになります。なのでROMの0x0000から0x1fffまでに配置するのです。こうするとA13がLowである0x4000から0x5fffまででROMの0x0000から0x1fffがアクセスされるようになります。

 0x0000から0x1fffまでがアクセスされたら破綻するんじゃないの?と思われるでしょうが,ここでROM2というデコード信号が0x4000から0x5fffでLowになることを思い出せば大丈夫であることに気が付きます。そう,このROM1やROM2といったデコード信号は,A13からA15が存在しない2764のための信号なのです。

 ということで,27128の場合は上下8kBを入れ換えるだけでシンプルに問題が解決します。かしこいなあ,M5の設計者は。和製AppleIIと呼ばれるだけあるなあ,うーん,味わい深い。

 前半の8kBにはBASIC-Iを書き込んで,後半の20KBにはBASIC-Fを書き込みます。残り4kBはダミーとして合計32kBとし,これを27256に書き込んでテストをしたところ,ROMのA13をバスに繋げばBASIC-Fが起動し,ROMのA13をGNDに繋げばBASIC-Iが起動するようになりました。(A14はバスにそのまま繋ぎます)

 ここまでくれば,あとは慎重に事を進めるまでです。ゲーム類は8kBごとにROM1のエリアにマッピングすればよいので,A13からA16をHighかLowにすれば8kBのエリアが16個選択出来ます。このうち最初のエリアはBASIC-Fという24kBのアクセスが必要ですから,A13とA14はバスに繋がなくてはいけません。

 A15とA16はZ80からアクセスされませんので,純粋にエリア選択だけで使いますから,HighとLowを切り替えるだけです。

 A13は前述の通りバスとLowの切り替えでいいのですが,A14はちょっと考えねばなりません。A14はBASIC-Fのためにバスに繋がっている場合と,エリア選択に使われる場合があります。

 しかし,M5は起動時ROM1を探しに行きます。つまりA14はLowです。ですのでBASIC-Fが格納された領域以外ではA14がLowになっている領域が選ばれます。今度はROMのA14をHighにすれば,次の8kBが選択されて表に出てきます。これでOKでしょう。

 ここまでくるのに少し時間がかかった(実はA13は当初バスとHighとLowの3ステートで回路を組んでいたが,実はA13は起動時にHighになるので,わざわざHighにする意味がないことに気が付いた・・・トホホ)のですが,BASIC-IとBASIC-Fに加えて12種類のゲームを1つにまとめたカートリッジが完成しました。

 20220602153650.JPG

 調べているうちに知ったのですが,海外にはすでにこれ以上のものを作って頒布しているマニアがいました。彼はPICマイコンで領域選択を行い,ROMの容量も4Mbitで,40種類近くのゲームを1つにまとめたものを作っていました。

 まあ,それはそれで大したもの(バージョンアップではPICマイコンの代わりにCPLDを使ってグルーロジックも取りこんでいました)なのですが,私はそこまでの熱意もわかず,これで綺麗にまとまったので終わりとしました。欲を言えばもう少したくさんのゲームを書き込んでおくのに,2MbitのROMにしたい所ですが,手持ちに27020がありませんので,深追いすることはしません。

 ということで,BASIC-Fを少し触ってみましたが,これはなかなか強力なBASICです。私はM5が過大評価されていると考えていて,それはBASIC-Gが整数型であることに由来します。

 確かにBASIC-Gはゲームを作るには最強のBASICだと思いますし,高速で動作することは文句の言いようもないのですが,いかんせん整数型のBASICではゲームしか作る事が出来ないBASICと言われても仕方がなく,ちょっと数学的なことをやろうとすればお手上げですし,扱える数字の範囲が狭すぎて桁数の大きなお金の計算には使えません。

 1980年代当時,BASICはゲームだけではなく,ビジネスにも使われるものであったわけで,同じようなホビーマシンであったMSXやPC-6001でもちゃんと実数が扱えたことを考えると,M5はそもそも汎用性が低いマシンであって,ゲーム以外には使い物にならない「おもちゃ」であると評されても仕方がないと思います。

 それが,安いとはいえMSXと同じ値段で売られていたわけですから,いくらゲームを作りやすいBASICだったとしても,評価はそこ止まりだというのが,私の結論です。

 ただし,これはあくまでベーマガで絶賛されていたBASIC-Gを搭載したM5について言えることであって,ソードほどのビジネスマシンを理解していたメーカーに手抜かりはなく,実数型のBASIC-Fと表計算ソフトのFALCまで用意していたことは,さすがです。

 BASIC-FはMSX以上の13桁の精度を持ち,しかも高速で動きました。FALCは今のエクセルの原始的なものであり,10種類ほどのコマンドを使えば様々な計算が可能なスプレッドシートで,実はこれだけでビジネスマシンに早変わりするほどの完成度を持っていました。

 弱点はBASIC-FがBASIC-Gの特徴的な命令群を持っていないことで,PLAY文さえないので音楽を演奏することも出来ないのです。

 だからもし,BASIC-FとBASIC-Gが統合され,速度そのままの実数型になったBASIC-Gが標準搭載されてRAMが32kBになって,もう少しましなキーボードが搭載されていれば,まさに最強のホビーマシンになっていたんじゃないかと思います。惜しいなあ。

 BASIC-Fからディスク関連のコードを抜けば16KBくらいになりそうですし,ここに8kBでグラフィックやスプライト,サウンド関連の命令を追加すれば,十分成り立つでしょう。ディスクは他のマシン同様にディスクBASICを用意してディスクから差分を読み出して起動すればよく,ホビーマシンの性格上それでも大丈夫だったように思います。

 M5はシンプルで綺麗なメモリマップを持っていますし,VDPを使うことでVRAMをメインメモリに置くことなく,ハイレゾグラフィックにスプライトやPCGまで使えます。そこにZ80CTCを搭載したことで可能になったモード2割り込み(ご丁寧にVDPからのV-SYNCの割り込みもCTC経由でモード2になっているらしい)や,なかなか強力なBIOSを持つ事もあり,本当によく出来たマシンだと感心します。

 ただ,繰り返しますがベーマガなどの雑誌での評価は8ビットマシンをゲームマシンとしてしか見ない人たちの過大評価に過ぎず,もっと多面的にマシンを評価するべきであり,その影響力を考えるとあまりに無責任だったのではないかと思われてなりません。

 実際,ゲーム以外にも使えるの実用マシンとしてのM5の評価は低いままで,ゲーム以外の雑誌で採り上げられることも少なかったように思います。マニアにウケたマシンだといいますが,I/Oに出てくる事が少なかったことからも,ゲームマニアに限定したものと考えるべきでしょう。

 さて,そんなM5は,日本では珍しい安価なホビーマシンでしたが,海外,特にイギリスではこの手のマシンが結構売られていました。ZX-81やSpectrumもそうですし,300万台を売ったと言われるAMSTRADのCPC464や,ORIC-1,有名なBBC Microというマシンもそうでした。VIC-20やC-64はアメリカ生まれですがヨーロッパでも人気がありました。

 そんなクラスのマシンの1つにM5があり,ヨーロッパではそれなりに知られた存在だったようです。その後日本は,ゲームはファミコンに,ホビーマシンはMSXからPC-9801に流れることになり,海外とは異なる流れを歩むことになっていくのです。

レトロ・コンピュータ・ピープル

 この3ヶ月ほど,レトロPCと戯れてきました。懐かしさもあるのですが,新しい事を知り「なるほど」と思う自然な感動もありましたし,過去の自分には突破できなかった課題が突破できたりと,過去を振り返ると言うよりも再会を果たしたと言う方が正しい様な気がしています。

 もちろん,そのためには修理や過去の雑誌などを見ることも必要なので,過去を振り返る作業が楽しめないといけないのですが,そこから先のもう一歩が,今の私には十分楽しめますし,また今の私に必要な事でもあるように思います。

 前置きはこれくらいにして,前回の更新からやっていたことを並べてみます。

(1)続・黄金の墓

 PC-6001のコレクションを整理していたところ,続・黄金の墓が出てきました。マジカル・ズゥのアドベンチャーゲームで,シナリオの面白さと同じくらい,グラフィックの出来が注目を集めていた当時にあって,高評価を得ていた有名な作品です。

 名前の通り,黄金の墓という作品の続編という体ではありますが,実のところディスク版の黄金の墓から途中まで抜き出したテープ版の同タイトルの続編という事になるので,実質的にはディスク版に収録されているものと同じだと聞きました。

 黄金の墓はプレイ済み,しかし続・黄金の墓は途中で挫折していたのですが,20年ほど前にエミュレータ用にイメージ化を試みるも読み出し不良で断念しており,唯一遊べていないタイトルとなっていました。

 ここは一念発起,いまならなんとかなるかも知れないと,最後の課題として頑張ってみました。

 続・黄金の墓は,全部で10個のプログラムに分かれています。最初の1つはローダーでBASICのフォーマット,続く2つはBASICではないバイナリのフォーマットで,この3つでオープニングが起動します。

 オープニングは勝手に進んで,本編をロードするのですが,最初に4つ目にあたる"main"というファイル名のBASICのフォーマット,次にバイナリを読み込んでゲームがスタートします。

 エラーが出るのはこの"main"というプログラムで,途中で音が途切れ途切れになってしまい,最後まで読み込むことが出来ません。前回のイメージ化ではここであきらめていたのでしょう。

 今回も半ばあきらめていたのですが,うちのPC-6001(初代)はどういうわけだか,明らかに音が消えているものでも読み込めてしまうという超能力が備わっており,もしかすると何度かやってるうちに読めてしまうかも知れません。

 試してみると,なんといきなりゲームがスタートするではありませんか。

 ゲームが始まるという事は,これはもうなんとかなるということです。やるしかありません。しかし,それは1ヶ月にも及ぶ長い戦いの始まりでした。

 まず,mainをなんとかイメージ化します。当時と違い,今はいろいろなツールがありますので,選択肢が増えていて助かりますが,このうちWAVファイルを解析した結果をその場でBASICのプログラムリストとして確認出来るツールがあり,これを試してみました。

 すると,案の定音が消えている部分はエラーになっています。

 もう一度実機で読み込み,その後すぐにCSAVEしてみます。これで修復できたのではないかと思っていたのですが,解析してみると一部不完全な部分があり,エラーが残っています。そりゃそうですよね。

 ということは,最初に試した時にすんなりゲームが動いたのは,やはりまぐれだったということでしょうか。

 本来,このプログラムはLISTを見る事が出来ないようになっています。しかし解析ツール上では見る事が出来るので,明らかに項分譲おかしい部分を修正してイメージ化します。

 以後に続くバイナリは確かめようがありませんので,出来るだけ信頼性の高い方法でイメージ化しておきます。

 エミュレータで動作確認をしますが,mainのあとのバイナリを読み込んだ直後に暴走します。はて,mainが悪いのか,その後のバイナリが悪いのか・・・

 イメージをWAVに変換し実機に読み込ませるも,やはり実機も暴走します。ロード時間が長いゲームなので1時間に数回しか試せません。効率が悪いです。

 ダンプを取ってバイナリを覗き込んだり,エミュレータでメモリやレジスタを見たりしていましたが,そもそもアドベンチャーゲームが簡単に解析できるわけもなく,万策が尽きたとあきらめモードに入り,中古品を探すようになっていました。

 実機へのロードや再取り込みを行っている途中に,取りこみ用用途に絶大な信頼を私が寄せるシャープのCZ-8RL1が突如誤動作,まだきちんと取り込みも検討も終わっていないテープの途中で書き込みがいきなり始まり,完全にダメになってしまうハプニングが発生し,これで完全に心が折れてしまいました。

 唯一の望みは,一番最初にざっとすべてを取りこんだwavファイルが残っていることです。しかしこれはその後の検討によって最適化された取り込みにはなっておらず,結構当てにならないです。それでもこれを使うしかありません。

 ここで改めてmainをイメージ化してプログラムリストを眺めてみると,PLAY$などという見慣れない構文が出ています。ここがおかしいのではないかと,プログラムを読み込んで周辺からそれらしい変数を推測し,修正したプログラムで試すと,一発でゲームが始まってくれるではありませんか!

 これはうれしい。ダメになったテープからサルベージに成功しました。奇跡です。

 しかし油断は大敵です。これで最後までクリア出来なければなりません。途中1つのバイナリがリードエラーを起こしていたので,これは波形整形を駆使して綺麗なバイナリにして突破,めでたくクリアに至ったのでした。

 とにかく,最終的に暴走してしまうわけですので,原因が特定出来ず,しかも1つとも限らない中での検討でしたから,考えられることはとにかくやってみて,原因を1つずつ減らして行くしかありません。

 そうした作業から,Audacityを使ってのフィルタリングや波形の整形などの編集作業や,解析/変換ツールの選び方など,たくさんのノウハウが手に入りました。が,それが結局メモや書類で残しておらず,すでにかなり忘れてしまっていることに愕然としています。趣味とは言え,これはいかんですね。


(2)オホーツクに消ゆの

 そういえば,オホーツクに消ゆ,イメージ化したものの最後までクリアすることはしていません。もちろん実機では当時クリアしているわけですが,万が一テープがダメになってしまった場合でも,イメージ化できていればどうにかなるという安心感が崩れてしまうのは,看過できません。

 ということで,攻略法を見ながら説いていくわけですが,シーン3で選択肢に強烈な文字化け発生。シーン3が正しくイメージ化できていないようです。そこでサイドイメージ化を行うのですが,あろうことかシーン3が起動することすらしなくなり,暴走します。

 波形整形などで解析結果のエラーがなくなるまで試行錯誤を繰り返しますが,何が悪いのか暴走します。ものは試しにとバイナリのダンプを比較し,1バイトを修正して見ると,これで文字化けも解消し,シーン3がめでたく終了出来るようになりました。

 これでよしとシーン4がロードされるのですが,ロードがうまくいかず,暴走したりTR Errorが出たりして先に進みません。ここでしばらくまた試行錯誤をしますが,全く改善されません。うーん,さくっと動作確認をして住ませる予定だったのに・・・

 調べてみると,エミュレータでシーン4が正常に起動しないことは,既知の問題でした。なんでも,SCREEN4での文字表示なので時間がかかり,実機ではローが始まるまでの時間がかかることで読み飛ばしはないが,エミュレータでは読み飛ばしてしまうので暴走するんだそうです。

 なら文字表示をやめるなりイメージの読み込みを待たせるなりすればいいと思う訳ですが,イメージを直接修正することが出来ないらしく,ロード直前のメモリをモニタモードで直接書き換えるしかないそうです。

 やってみると無事にクリア。良かったんだか悪かったんだか,なにや釈然としないテストプレイでした。


(3)PC-6001のテープをすべてイメージ化

 20年ほど前に行ったイメージ化では,とりあえず購入したテープを中心に処理したので,自分たちで打ち込んだプログラムなどはエミュレータで遊ぶことが出来ませんでした。

 今回はどんな小さなものもすべてイメージ化するというテーマで進め,考えつくものすべてをイメージ化できました。私の弟がですね,X1に乗り換える直前まで,PC-6001のPSGでゲーム音楽の打ち込みに精を出しており,途中の作品も残っていたりしました。本人は聞きたいだろうなあ。


(4)PC-6001再塗装

 私のPC-6001は改造されているため,筐体に穴が開いていたり,下手くそなスプレーでの再塗装で,見るも無惨な姿になっています。

 電気的な改造箇所はオリジナルに戻してあるのですが,見た目がこれではダメだろうと,修理用の予備機(こちらの方が程度が良かったりする)の筐体を流用して,綺麗なPC-6001を作る事にしました。

 とはいえ,予備機の筐体は練習も兼ねて10年ほど前に再塗装を行っています。この時は自分で混色をしたラッカー系の塗料を0.3mmのハンドピースで時間をかけて塗りました。ムラもなく色も綺麗で上手くいったのですが,クリアを塗らなかったこともあり,経年変化で塗膜が劣化し,しかもカビまで生えていました。

 このままでは先に進めないので,イソプロピルアルコールに漬け込んで塗装を剥がします。大きい筐体なので塗装はがしも一苦労,イソプロピルアルコールが大量にいるという事で,私は生まれて初めて一斗缶での購入を経験をしました。

 塗装は綺麗に剥がれたので,ペーパーをかけて傷を消して下処理を行い,ミッチャクロンを吹き付けておきます。

 その後ラッカー系の塗料で朝食をしますが,これが前回のように綺麗に決まりません。一度塗って見ましたが白すぎ,2回目は赤すぎで,どうもしっくりきません。

 しかも作った色が全然足りず,急ごしらえで作った色がずれているので,上半分と下半分で色が違ったりしています。

 のみならず,塗装そのものも上手くいかず,だれる,塗料のかたまりが飛ぶ,ホコリが付く,どっかにぶつけるなどで,もう散々でした。大量の塗料が文字通り霧散したわけで,私もたくさん吸い込みましたし,作業をしていた天井裏もひどい事になっています。

 これでは死んでしまう・・・そこで安全性の高い塗料を選ぶ事にしました。そう,アクリジョンです。

 乾くときに重合し塗膜を形成するので,乾くまでは水性ですが,乾いてからはラッカー系に匹敵する塗膜を作ります。しかもABSにも適用があります。

 依然使った時にも悪い印象がなかったので,早速いろいろ買い込んで,調色から始めます。どうせたくさんいると思うので,2ビンほど作っておきます。

 いざ塗って見ると,なかなか難しいです。ラッカー系と違って,硬化した塗料が融けることはないので,ハンドピースにつまります。また,気化の時間が変動するので,長時間にわたる塗装では,条件が変わって失敗しがちです。

 で,結局,およそ満足な出来とは言えず,重ね塗りをしすぎて厚ぼったく,かつ梨地になってしまったのですが,ぱっと見て違和感がない程度になったと言う最低限度のクリアで,この作業を終えることにしました。正直二度とやりたくないです。

 この後,クリアを重ねて塗って,最後にフッ素入りのスムースクリアーを塗って終了です。しかし先日ぶつけてしまい,角の部分の塗装が剥げてしまいました。

 どっちにしても,プラモデル用の塗料で実用品の塗装をしようというのですから,無理があります。PC-6001が観賞用になってしまったと言うべきなのか,割り切って使い倒すか・・・とりあえず私は,丁寧に箱にしまいました。


(5)AppleIIのフロッピードライブ

 一段落したPC-6001のあと,ちゃんと動くかなと電源を入れたAppleIIですが,ディスクドライブの異音が強烈になっていました。これはいかん,故障です。

 ひどいのは音だけで,動作そのものに問題はないようなのですが,テストプログラムで調べてみると回転数が低めになっていること,なによりこわいくらいの異音ですので,ほっとく訳にもいきません。

 異音はどうもスピンドルモーターが回転しているときに出ているみたいです。ということで,まずは分解です。

 そうそう,問題のディスクドライブは純正のDiskIIではなく,日本製を謳ったコンパチ品の1つ,ニューテックの飛鳥というものです。DiskIIがSA400というフルハイトのドライブを使っているのに対し,飛鳥はチノンのM-051MDというハーフハイトのドライブを採用していて,信頼性も見た目も私は気に入っています。

 分解して見ると,やはりスピンドルモーターから異音が出ています。指で触って回転数を変えると音も変化しますので,ここが原因で間違いないでしょう,

 ただ,スピンドルモーターへ供給する電源が大きく変動しているのが原因かも知れませんので,スピンドルモーターを取り外さなくても済む範囲で,まずは電解コンデンサの交換をします。

 どのコンデンサもそれほど劣化していなかったのですが,そこは予防的な意味も込めて交換します。結果,改善せず。あたりまえですね。

 そこで意を決して,スピンドルモーターをシャシーから取り外します。ああ,位置がズレてしまう・・・

 スピンドルモーターはJVC製です。当時VTRで勢いがあったJVCです。ヘッドを回すモーターで培った技術でFDDのスピンドルモーターとは,なかなか面白いじゃないですか。

 取り外して基板を見ていると,盛大に液漏れしている電解コンデンサがいくつもあります。おそらくこれでしょう。コイルの周辺に取り付けられたバイポーラの電解コンデンサですので,ここが抜けていると波形が汚いままになり,異音に繋がるんでしょうね。

 早速交換,他のコンデンサも一気に交換を済ませて組み付けます。本当はスピンドルモーター単体でのテストをするべきなんでしょうが,おそらくコンデンサの液漏れが原因ですので,これで直るはずです。

 結果,異音はなくなりました。元通り組み直して完成です。結構大ごとになるかなと覚悟しましたが,あっさり直って良かったです。

 速度調整も行って完成したところ,なぜかディスクによっては回転しないものが出てきて焦りました。原因は,ヘッドの掃除をする時に,反対側のスポンジもイソプロピルアルコールで拭き掃除をしてしまい,これが摩擦を減らした結果,ディスクによっては起動不良が起きてしまったようなのです。

 余計な事をしなければよかった,こればかりはどうにもならんかな,と思っていたのですが,とりあえず何枚かディスクを回してるうちに収まってきたので,よしとします。


(6)m5Jr

 実家からの荷物の整理で一番最初に手を付けたのがm5Jrです。しかし,これもテープをイメージ化しておらず,いつダメになってしまうかわからない状態でした。

 エミュレータでの動作も整備したいという事で,もう一度引っ張り出して,イメージ化です。ここで私は重大な事に気が付きます。

 エミュレータでは,実機を持っていることを条件にBIOSを使っても良いことになっています。本当は吸い出さないといけないのですが,同じ物なら別にいいじゃない,という考え方です。

 しかし,どうも文字化けがすごいのです。なにが原因かと首をひねっていましたが,おそらくこのBIOSは海外版なんじゃなかろうかと思い,実機のBIOSを吸い出して見たところ,きちんとあのひらがなが出てくるようになりました。

 M5のテープは私は市販品を5本ほど持っているのですが,いずれも小さなものなので,WAVファイルのままでも知れています。そこで下手にイメージ化せず,WAVのまま運用することにしました。

 というのも,M5のエミュレータとして選ぶ事の出来るMESSのエミュレータと,emu5という日本製のものとの間に,テープイメージファイルの互換性がないからです。

 emu5は単独で動作するのが気軽でいいのですが,ツール類が整備されておらず,WAVとイメージを行き来出来ません。ただ,MESSのイメージはemu5で読み込めますので,emu5から実機へのパスを確保しさえすれば,運用は可能です。

 最初はemu5のイメージを解析していたのですが,どうもRAWのオーディオっぽいのです。しかしヘッダを作ったりするのも面倒なので,ものは試しにとemu5でロードしている間に出てくる音をそのまま実機に突っ込んでみました。

 すると見事にロード出来たのです。いやはや,これは楽ちんです。手間ですが,このemu5おロード音をWAVで録音してしまえば,MESSにも持って行けます。

 そこで,昔打ち込んだプログラムポシェットのプログラムをもう一度打ち込むことにしました。しかし今は21世紀,OCRで楽々入力です。

 ・・・実際には解析ミスが連発し,まともに動くまでにはかなりの時間と手間がかかりました。打ち込み直した方が早かったかも知れません。

 とはいえ,採取的には実機でもかつての感動を思い出し,満足しました。

 余談ですが,inpをつかってキーを読み込むとき,伝統的に行われていたのはキーのI/Oポートのイメージのアドレスを指定しているんですね。ところがemu5ではこのあたりの事情を作者がご存じないらしく,イメージのアドレスを読み出してもキーの状態は返ってきません。

 だから互換性は低いという事になるわけですが,そこを修正してあげれば問題なし。m5のユーザーなら,これくらいのことは問題にはならないのかも知れません。


(7)SYSTE16BとSYSTEM24

 言わずと知れたセガのアーケード基板,SYSTEM16BとSYSTEM24です。

 SYSTEM16Bはソニック・ブームがやりたくて買ったもの,SYSTEM24はクイズ廊下に立ってなさいが500円だったのでついつい買ってしまったというやつです。

 昔はこの手のゲーム基板をいろいろ持っていたのですが,捨てたり売ったりで,残っているのはこの2枚だけです。

 SYSTEM16Bはコピー対策として暗号化されたバイナリを解くための鍵を格納したSRAMを持つ,特殊なCPUが搭載されています。巷で羊羹と言われている日立製のカスタムICです。

 怖いのは,この鍵を格納したSRAMはリチウム電池でバックアップされていて,これが5年ほどで切れてしまうと鍵も消えてしまい,起動しなくなってしまうというのです。

 すでにセガはこの基板のサービスをやめて久しく,メーカーにお願いすることは出来ません。また,消えたデータがデータですので,簡単に復元するkとも出来ず,かつては多くのSYSTEM16がゴミになったと聞きます。

 そうなる前にリチウム電池を交換する方法が世界中で考えられて,今や当たり前の手術となっています。

 手順は簡単で,羊羹の表に貼り付けてあるアルミの機銘板を丁寧に剥がし,出てきたCR2032を交換するだけです。しかし,電池を外せば当然SRAMは消えてしまいますので,基板に取り付けて通電したまま交換しないといけないのです。

 そう,まさに手術です。肝臓を手術するからといって,取りだしてしまうと肝臓も本体も死んでしまうわけです。

 しかし,通電中ですのでショートしたりすれば電源が落ちてアウトです。失敗が即死に繋がるという点でも,手術さながらの緊張感を持ってかからねばなりません。

 もう1つ,このCR2032はタブ付きで,ハンダ付けが可能です。しかしよく知られているように,CR2032のタブ付きは一般に市場に出てこないので,入手が難しいのです。その上どのくらい補完されて眠っていたのかわかりません。

 そこで今回は不格好ですがソケットを使って対応しましょう。

 とその前に,とにもかくにも現在SRAMが生きていなくては始まりません。恐る恐る通電すると,めでたくソニック・ブームが起動しました。まずは一安心です。

 それでは交換作業を始めましょう。

 まずアルミの機銘板を剥がします。

20220526155728.JPG

 こんな風におさまっているCR2032を取り外して,ソケットを取り付けます。

 最後に電池をはめ込んで,電圧を確認して手術は終わりです。

20220526155727.JPG

 ドキドキしながら電源を切り,再度投入します。

20220526155726.JPG

 無事に起動,手術は成功です。

 ちなみに,取り外した電池ですが,マクセル製で1986年の刻印がありました。今から36年も前なのに,電圧は3.1Vもあり,まだまだいけそうな感じでした。私の中でマクセルの株がグンと上昇した瞬間です。

 その後のロードテストも順調でなにも問題ありません。今のうちに処分してしまうのも手ですが,せっかくですのでもうちょっと持っておきましょう。

 なお,もしSRAMが死んでいたら,という作戦も書いておきます。

 思い出して欲しいのは,すでにSYSTEM16の多くは,MAMEで遊べてしまいます。と言うことは暗号はすでに解読されているわけで,合法かどうかは別にして技術的には暗号を説いたバイナリが存在するのは事実です。

 ならこれをROMに焼いてやればいいわけで,すでにソニック・ブームも,そうしたバイナリが存在しています。私は実機を持っていますので,このROMを使うことそのものには違法性はないと考えていて,最悪のケースでは,これを使おうと思っていました。

 ですが,グレーなものはグレーです。使わずにすんでよかったです。

 そうそう,SYSTEM24ですが,こちらは羊羹も搭載されていませんし,鬼門のフロッピーが必要ないゲームですので,問題なく動きました。

 


 こんな感じで,いろいろやってました。ここには書いていませんが,データレコーダのコンデンサの交換なんかはちょいちょいやっていましたし,先に書いたCZ-8RL1の誤動作も対策しました。

 さて,秋から冬,そして春まで過ぎて,かなりのことを経験しました。面白いですね。次の課題は,m5JrでBASIC-Fを動かす事なのですが,どうなることやら。

 

PC-6031にフロッピーディスクエミュレータを繋いで2ドライブに

 PC-6001の整備を進める中で,いろいろ課題が見えてきました。

 まず,すべてのカセットテープのプログラムをテープイメージに出来ていなかったことです。20年ほど前に試みた時には上手くいかずあきらめたものもありますし,自作のしょーもないプログラムはイメージにしてエミュレータで遊ぶことも全然考えていませんでした。

 次にフロッピーですが,せっかくPC-6031を持っているのに,5インチ2D(もしくは1D)のデイスクが不足していて,活用し切れていません。5インチ2Dは2HDで代用できないのですが,みんな困っているようで中古の価格が高騰しています。

 私も手持ちが30枚ほどあるだけで,そのほとんど使ってしまいました。AppleIIでも使いますので,話は結構深刻です。

 そこで,簡単な対策として,ディスクを裏返して使うことを考えました。

 要するに,PC-6001やAppleIIのような片面しか使わないマシンでは,両面の2Dのディスクがもったいないので,裏返して両面使いましょうという話です。

 実はこの話,AppleIIでは割に当たり前に使われていた作戦です。AppleIIの時代はディスクの値段がとにかく高価でしたからね,日本に限らずアメリカでも裏返すことは普通に行われていたようです。

 それも,アマチュアがやると言うのではなく,例えば市販のゲームにディスクを両面使うものがあったりしましたし,もっというとApple純正の付属のディスクにも両面を使ったものがあったほどです。

 ただこれはAppleIIだからこそ手軽に出来た技でもあります。AppleIIのディスクはかなり特殊で,後にAppleGCRと呼ばれるフォーマットです。難しい話は置いておきますが,一般的に用いられるインデックスホールを使って0セクタを検出する方法ではないのです。

 インデックスホールというのはディスクにあいた穴で,ここを使ってディスクが1周したことを検知します。左右対称の位置にないので,裏返すと位置がずれてしまいますので,普通は裏返しても認識すらされません。

 ですが,AppleIIはこれを使いません。だから裏返して使えるわけですね。

 とはいえ,私はこれについては少々不安を持っています。

 両面のドライブはディスクを挟むように,裏と表の2つにヘッドを持っていて,両面を裏返すことなく読み書き出来るようになっているのはご存じの通りです。しかし,両面のヘッドが全く同じ位置にあると,書き込み時に磁力が反対面の磁性体に届いてしまい,磁力が弱くなってしまったり,書き換わったりします。

 これを避けるため,裏と表のヘッドの位置は少しずらして取り付けられています。つまり裏と表で,同じトラックの半径が少し違うという事ですね。そのズレ量はちゃんと決まっているのでドライブが変わっても互換性が維持されているわけですが,もともと片面のドライブに,ディスクを裏返して両面を使うようにすると,裏と表で待った置く同じ位置に書き込まれてしまいます。

 これって本当はマズいんじゃないのかというのが私の考えで,これまでそういう理由で裏返すことをやってきませんでした。とはいえ,いよいよ背に腹は代えられなくなってしまい,裏返しに手を出したということです。

 AppleIIではただ裏返すだけなのですが,インデックスホールを使うPC-6031など多くのパソコンでは,インデックスホールを検出する穴をジャケットに開けてあげる必要があります。

 ジャケットを開き,ディスクを取りだし,裏返したときにインデックスホールの検出を行う穴をパンチで開けるというのが手順なのですが,これだとディスクを戻した後ジャケットを閉じねばなりません。しかしこれがなかなか難しいのです。

 そこで私は,小型の1穴のパンチをセンターホールからすーっと滑り込ませて,穴を開けてみました。最初はディスクに傷を付けたりと散々でしたが,慣れてしまえばなんてことはなく,綺麗に処理できるようになりました。

 実際にPC-603?え使って見ると,ほとんどの場合両面で使えるわけですが,なかには裏面で使うとエラーになる物も出てきます。もともと裏面にエラーが出るようなディスクだったのか,あるいはトラックの干渉なのかはわかりませんが,使えないものは仕方がありません。

 それでもこの方法だと,いい気にディスクの仕様枚数を半減できるので,私の手元にはブランクの2Dディスクが何枚も残りました,これはうれしい。

 しかし,この方法もいずれは使えなくなります。どうするか?

 答えは,フロッピーディスクエミュレータを使うこと,です。

 なんのことはない,フロッピーディスクのインターフェースに接続するUSBメモリの駆動装置で,一種の変換器のようなものです。USBに刺さったストレージにイメージファイルを置いておけば,ホストはフロッピーをアクセスしているつもりで,実はイメージにアクセスしているという寸法です。

 これを使えば,小さなSDカードに何百枚のディスクを収納できる上,いくらでも新しいディスクを追加できます。不安定でいつ壊れるかわからないフロッピーのバックアップを補完することも出来ますし,いいことずくめです。

 これ,織物などの機会でパターンのデータを読み込むメディアとして未だにフロッピーディスクが使われていることへの対策が需要として根強くあるそうなのですが,我々のようなレトロPCマニアにとってもありがたい存在です。

 しかし,これまではHxCというメーカーの高価なものしかなく,なかなか厳しいものがありました。これが近年,中国製の安価なものが用意出回り,しかもこれに書き込んで使える高機能なファームウェアがフリーで提供されているおかげで,一気に身近になりました。

 GOTEKという会社のもので,もともとは1.44MBと720KBしか対応しないのですが,FlashFloppuというファームウェアを書き込むと,1Dから2HDまで,様々なフォーマットに対応したエミュレータに変身します。

 しかも標準の?セグLEDから128x32ドットのOLEDへの置き換えやロータリーエンコーダへの対応など,高機能にも程があります。

 私はこのGOTEKの製品を2500円ほどで入手しました。これを書き換え,400円ほどのOLEDに交換,手持ちのロータリーエンコーダも取り付けてみました。

 電源はPC-6031から取るとして,問題は接続ケーブルです。以前は売るほど持っていたこの手のフラットケーブルですが,何度かの引っ越しによって処分されてしまい,34ピンのフラットケーブルなどもう1本も残っていません。

 悔しいですが,新たに買いましょう。これも400円ほどで購入,ただしAT互換機用なので途中で信号線が入れ替わっていますから,これをストレートに戻してやります。

 動作試験を行うとあっけないくらい簡単に動きました。

 しかし,ここで新たな問題が・・・

 PC-6031は,ドライブ1とドライブ2を入れ替える事が簡単にはできないのです。通常フロッピーディスクドライブはデイジーチェーン接続ですので,ドライブセレクトを入れ換えれば済みます。しかしPC-6031はコントローラ基板から直接ドライブ1と2に繋ぐケーブルが出ており,入れ替えはなかなか面倒なのです。

 それに貴重なPC-6031に穴を開けるのも嫌なのでなんとかこのまま使いたいのですが,更に悪いことに標準のディスクコピーツールはドライブ1からドライブ2に一方通行で,USBへのコピーは出来ても,元のフロッピーに書き戻す事が出来ません。

 それ以前の話として,標準のフォーマットツールでは,ドライブ2のディスクをフォーマットすることも出来ないのです。

 かといってドライブ2から起動することも出来ないので,これって意味があるのか,と言う状態に陥り,ちょっと考え込んでしまいました。

 確かにUSBからの起動はなかなかハードルが高そうです。しかし,この問題はもともと,フロッピーディスクに不足に対応するための作戦だったはずです。さらにいうとディスクイメージのやりとりで,実機とエミュレータの間でファイルの交換を出来るようにすることもメリットがあります。

 そこで,常時の運用はフロッピーディスクとし,そのバックアップやエミュレータとのファイル交換にUSBを経由することにしました。

 それでも,USBからフロッピーに書き戻す必要があります。そこで標準のバックアップツールを解析です。一部マシン語で書かれていますが,逆アセンブルで読んだ限り,これはインテリジェントドライブに対する送受信を行うものでした。

 対象となるドライブの指定は,ドライブへのコマンド(1バイト)に続けて1バイトで指定するものなので,ここを見ていくとワークエリアにドライブ番号をPOKEしている箇所が見つかりました。

 ということで,誰が必要かはわかりませんが,NEC純正のバックアップツール「backup.2」を,ドライブ2からドライブ1にコピーするようにする修正箇所を以下に紹介しておきます。

(1)160行目のPOKE PA+2,0を,1とする
(2)240行目のPOKE PA+2,1を,0とする
(3)120行目のDSKI$(1,18,14)を,(2,18,14)とする
(4)あとはメッセージを適当に書き換える

 最初はこの改造をPC-6001VW4で試していたのですが,どうも上手く動きません。ディスクは壊すし散々だったのですが,どう考えても原因がわからず,もしやと思って実機で試すとちゃんと動き,なるほどこのあたりはエミュレーション出来てないんだなあと思った次第です。

 ついでに,2ドライブをフォーマットする改造も紹介して起きます。

(1)すべてのDSKO$とDSKI$の第1パラメータを1から2に変更する
(2)130行目のPOKE&HD980,0を1にする

 PC-6031などのNECのドライブは,フォーマットコマンドを一発送り出すだけでフォーマットをしてくれます。でもFATがないと使えないので,それはBASICで書かれているわけですね。

 ということで,とりあえず私が狙った運用は出来そうです。実機とエミュレータのファイル交換が出来るようになったのは結構大きくて,いろいろな事が出来そうです。

 

PC-6031の復活

 実家から持ち帰ったレトロPCのレストア第2弾は,AppleIIに続いてPC-6001です。

 そう,うちにはPC-6000シリーズの三種のレアアイテム(勝手に私が言ってます)と言われるPC-6031,PC-6061,PC-6053のうち,PC-6031とPC-6053があります。

 PC-6031は5インチフロッピーディスクドライブ,PC-6053はボイスシンセサイザです。

 PC-6031はPC-6000シリーズ用として登場した,当時としては安価なフロッピーディスクドライブでした。PC-8001やPC-8801と同様にインテリジェントタイプで,本体とはパラレルI/Fで接続するものでしたが,コントローラはPC-8031やPC-80s31のZ80とは違い,8049を使ってコストダウンを図っています。

 このため,ドライブ側のZ80にプログラムを流し込み,並列動作させるという技が使えません。ですが,コマンド体系そのものは互換性があるらしく,実はPC-6001にPC-80s31を繋いでも動作します。(確認済みです)

 PC-6031はPC-6001mk2なら直結なのですが,mk2の後に登場したPC-6601で3.5インチへの移行が方向付けられ,PC-6601SRでは1DDになって容量も倍増しています。

 とはいえ,PC-6001のソフトの供給はカセットテープが主流であり,わざわざフロッピーディスクを買っていた人はいないでしょう。

 PC-6053に至っては,実物を見た人も少ないのではないでしょうか。PC-6001mk2は「話す」機能が有名でしたが,これはPC-6001のオプションであるPC-6053をいわば内蔵したもので,しゃべるパソコンは実はPC-6001が最初だったわけです。

 結局の所,安いことを理由に手に入れたPC-6001に,本体と同じ値段のフロッピーディスクを追加できる人は少なく(しかも2万円の拡張ユニットと1万円の拡張BASICが必要),それが可能な人は最初からPC-8801を買うという話です。PC-6053に至っては,欲しいと思った人はほとんどいなかったでしょう。

 私の場合,どちらも使っていた当時に買ったものではなく,随分後から二束三文で手に入れたものなのですが,PC-6001(初代)を手に入れたのもPC-6001mk2が登場して随分経ってからでしたし,その後はX1turboに移行していたので,使った記憶はありません。

 ですが,あのPC-6001でフロッピーディスクが使えるというのは面白い体験ですし,初代PC-6001がmk2のようにしゃべるのも興味深いものです。

 特にPC-6031について便利でもあり,機能的に見劣りしていることをあえて楽しむレトロPCにおいて,楽しむのに便利になるフロッピーディスクはとてもありがたいもので,私としては大事にしたいものの1つです。

 さて,初代PC-6001ではさらにレアと呼ばれるPC-6011(拡張ユニット)とPCS-6001R(拡張BASIC)が必須になるPC-6031ですが,mk2ではどちらも内蔵されたので,直結可能です。私はmk2も持っていますので,PC-6031は実際に動かして使っていましたが,しばらく実家に置き去りにされており,昨年秋に実家から運び込んだPC-6031は,もう20年も通電していないものでした。

 そこで,AppleIIに続いて,PC-6000シリーズをレストアすることしました。まずはPC-6001mk2からです。

 PC-6031を使うにも,PC-6001mk2が動かなくては話になりません。通電の前にタンタルコンデンサをすべてセラミックに置き換えて,電源を入れてみます。最初は起動せず,なんどかリセットを行うと起動するようになりました。不安定ですね。さらに音が出ません。

 とりあえず電源ユニットを含めた電解コンデンサを交換,電圧のチェックを行って再調整を行いました。すると動作は安定します。電圧が4.5V付近まで下がっていたので,これが不安定の原因だったようです。

 音が出ないのは相変わらずで,これはボリュームが破損していました。おそらく本体から出っ張ったシャフトを引っかけてしまったのでしょう。

 部品取りのPC-6001から移植して修理完了。動作も問題はないのですが,あまりに汚いので清掃しようとしましたが,キートップを外そうとしてキーを折ってしまいました。こんなに脆かったっけ?

 さすがに落ち込みましたが,ダメモトで接着剤で修理しました。想像以上にがっちり固定できたようで,今のところ問題なく使えています。

 さて,PC-6031です。これもえらい汚いので分解して掃除から始めます。PC-6000シリーズに共通の問題として,ACコードが劣化し,内部の銅が錆びるというものがありますが,これは危険ですので交換が必要です。

 コントローラ基板のタンタルコンデンサを交換し,組み直します。電源を入れてみますが,一瞬LEDが点灯した後,沈黙。どうも電源ユニットが壊れているようです。

 いやー,スイッチング電源は修理の経験が浅いので,ちょっと焦りました。とりあえず目視で焦げたり変色した部品がないかを確認しますが,どれも問題なし。電解コンデンサの容量抜けも確認しますが,これも問題ではありません。

 あとは回路を順に追いかけてチェックしていくのですが,2次側の製流用のダイオードであるSB340が壊れてショートしているのを発見,手持ちの40V2Aのものにとりあえず交換すると復活しました。これは後日同じSB340に交換することになるのですが,これくらいで電源が復活して本当によかったです。

 心配していたコントローラ基板も動作していますし,もっと心配していたドライブそのものも無事でした。

 ということで,とりあえずPC-6001mk2とPC-6031は動き出しました。

 しばらくゲームを楽しんでいたのですが,懐かしい上に楽しいです。今のスマホのゲーム以下の表現力ですが,それでも十分遊べるのは,ゲームの本質的な部分が良く出てきてからでしょう。

 さて,PC-6001mk2が動いても,まだちょっと物足りません。私は初代PC-6001を,mk2が出た後にあえて選んだ人ですし,背景が緑色であることも,ファンクションキーが大文字で設定されていることも,テキストやセミグラフィック画面の色が反転表示になることも,全部含めてPC-6001が好きなのです。

 後継機であり,周囲の多くが手に入れたmk2に対して,わざわざ初代機を選んだくせに引け目を感じ続けていた事に対する自分なりの納得の仕方として,これらのちょっとした違いであったことは今もまだ鮮明であり,PC-6001mk2で5インチフロッピーディスクが動いても,感動はまだ半分というところなのです。

 まずは,我々兄弟が散々遊んだPC-6001初代の復活。そしてこれをPC-6031と繋いで,当時の憧れを具現化する作戦に出ましょう。

 うちのPC-6001は満身創痍で,20年ほど前に電源回路(初代はシリーズレギュレータなのです)の製流用ダイオードがショート,メイン基板のタンタルコンデンサもショート,サブCPUの8049が破損し交換(ちょうど手に入ったmk2のサブCPUに交換しました),PC-6006(RAMカートリッジ)のDRAMが1つ破損し交換と,なかなか苦労して修理した記憶があります。

 とりあえず電源を入れてみると動いたので深刻な故障はなさそうですが,困ったのは長年接触していたビニールケーブルの可塑剤によって筐体の一部が溶けてしまっていることです。こればかりはどうにもなりません・・・

 部品取りとして買った別のPC-6001から筐体を持ってくるしかないのですが,これも過去に一度全塗装している(しかしその後汚れて傷だらけになってしまった)ので,まずはこれを剥がすことから始めないといけません。

 コツコツやるしかないのですが,いつになることやら・・・

ユーティリティ

2026年01月

- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed