エントリー

2022年08月08日の記事は以下のとおりです。

ADTProへの長い道~SuperSerialCard編~

20220805102627.JPG

 なかなかこの日誌を更新できずにいたのですが,それもこれもAppleIIのトラブルが解決しないことにありました。そう,SuperSerialCardです。

 もともとSuperSerialCardの自作は某オークションでうっかり落札の期日を忘れてしまって入手を逃してしまったことから,なら自作するかで始めたものでした。

 前回の日誌では,それが完成したというところで止まっていたかと思うのですが,本来の目的である「ADTPro」という,AppleIIのディスクイメージを実際のフロッピーディスクに書き戻したり,その逆であるフロッピーディスクをイメージにするソフトを動作させることに,なかなか成功しませんでした。

 ADTProは世界中で使われている定番ソフトで,イメージを持っておくサーバーはPC側に,フロッピーディスクの読み書きは実機にクライアントソフトを動かしておいて,双方で通信をすることで動作します。

 通信はカセットインターフェースを用いたオーディオを使うもの,SuperSerialCarsを用いたシリアルポートを使うもの,そしてイーサーネットを使うものの3つから選ぶ事が出来るのですが,オーディオは遅い上に信頼性も低く,非現実な手段でしょう。

 イーサーネットは純正のカードがないので基本的には自作するしかありませんし,そこまで大げさなことをしなくてもと思っていたので, シリアルポートをp使う人が大半だろうと思います。

 これがAppleIIcやAppleIIGSなどのシリアルポートが内蔵された機種ならなにも問題はないのですが,AppleIIPlusやAppleIIeでは,クライアントソフトがサポートするSuperSerialCardを手に入れなければなりません。

 どうも,そういう事情もあってか,アメリカではSuperSerialCardの中古価格が高騰しているそうで,入手も難しくなっていると聞きます。

 私の場合,AppleIIPlusですので,なにがなんでもSuperSerialCardを手に入れるしかないわけですが,貴重な機会を逃してしまい,その後手に入る目処も立っていません。

 だから,自作するという選択肢は間違いではなかったはず,でした。

 完成までの顛末は前回書きましたが,シリアルポートとしては動いてるという前提で,ADTProを動かしてみるも,全然動いてくれません。

 最新の2.1.0では,まずBootに失敗します。Bootというのは,クライアントを実機に転送して起動させるフェイズで,実機のモニタでサーバー側から転送されるProDOSを読み込み,ProDOSで再起動させます。その後ProDOS上で受信ソフトが自動起動し,クライアントソフトがサーバーから転送されるという仕組みです。

 これが全く動きません。Bootloaderの読み込みまでは問題なく進むのですが,ProDOSとADTProを読み込むBootloaderが沈黙したままで転送が始まりません。

 ならばと別の方法でフロッピーディスクに書き込み済みのクライアントソフトを手に入れて,これでADTProを起動させてみたのですが,やっぱりサーバーとの通信が全く行われず,タイムアウトします。

 この場合の多くは,ケーブルの問題だとADTProの開発者も世界中の親切な人も言っていますので,先人達の知恵には従おうと,様々なクロスケーブルの結線を試してみました。しかし結果は惨敗。以下,やってみたことです。

(1)様々なクロスケーブルの結線を試す。手持ちのケーブルは全滅だったので,自由に結線を変更出来るようブレッドボードを間に挟んで考えつく限り試したがどれもダメ。どうもクライアント側から何度もデータを送り込んでいるが,PC側がそれを受け取っていないようだ。

(2)RS-232Cドライバが悪いのかと,ドライバを挟まずPCのUSB-シリアル基板に直結。結果はドライバを挟む場合と同じ。

(3)先人達は,USB-シリアルはFDTIだと失敗しないというので,FDTIのチップが載っているUSB-シリアル変換ケーブルを秋月で調達。しかし状況は全く変わらず。

(4)バージョンを戻して変化が出ればと,2.1.0->2.0.3->2.0.2->1.3->1.0とバージョンを遡ってみた。1.3まで遡るとBootには成功するが,その後がダメ。しかし,何回かに1回はDirectoryコマンドだけ動くことがある。

(5)サーバーはJavaで書かれているので,先人達はJavaのバージョンにもこだわるべきと忠告。そこでJDKやらJREやらVer8やらなんやら,言われたままに様々なものを試してみるがさっぱりだめ。

(6)2.0.3以前は,Java用のシリアルドライバが必要だそうで,それも入れてみる。でもだめ。

(7)Windowsが悪いのかと,RaspberryPiを引っ張り出す。Linuxベースでサーバーを立ち上げてみるがWindowsと全く同じ。ただし,2.0.3のBootはなぜか爆速。

(8)もちろんボーレートも試せるものはすべて試すが全部だめ。

(9)こうなってくるとハードウェアだろうと,SuperSerialCardを疑い始める。まずCMOSで用意されたロジックICをLS-TTLに置き換えるが,むしろ動かなくなることがある。電圧レベルで考えると,Highの入力がCMOSでは3.5V以上必要だが,TTLでは2.4Vですむ。出力もHighがCMOSはほぼ電源電圧で出てくるが,TTLだと4Vを切るくらいなので,実はCMOSで受けるのは結構まずいはずなのに。

(10)バスのドライブ能力が足りなくて安定しないのかもと,オリジナルには入っていたバスバッファを入れて見る。といっても基板面積から面実装品の74AHCT245を選ぶしかなく,これを挟んでみるが結果は変わらず。

(11)モニタからアドレスを直接叩いてみるも問題なし。うーん・・・

(12)しかし,気になる事も。W65C51の初期バージョンにはエラッタがあり,送信バッファが空っぽになったときにフラグが立たない。オリジナルの6551とは挙動が異なる。この問題はW65C51を使う上ではよく知られた話らしい。このエラッタは後に「仕様」と割り切られたあげくに,後期バージョンではしれっと修正されているらしい。
 で,ADTProでエラッタが問題となるかについては不明。ソースを見る元気もない。ただし,初期バージョンでクローンをADTProを目的に作っている人がいるので,おそらく動作しているんじゃないかと思う。

(13)さらに気がかりなこと。実はApple側から8bitで通信が出来ていない。PCのTeraTermからAppleに8bitで文字を送り込むときちんと表示される。しかし,Apple側からTeraTermへは文字化けする。TeraTermを7bitにすると正しく表示されるので,Apple側が7bitで送信しているのは間違いない。
 波形をみると確かに7bit。8bitに設定しても7bitに設定しても波形に変化がない。SuperSerialCardのROMのソースが公開されているので解析をしてもいいのだが,すでにこの段階でもう力尽きつつある。

(14)ADTProでは,SuperSerialCardに搭載されたROMは使わない。SuperSerialCardの回路がややこしいのは実はROMのサポートのためなので,ROMを抜いてしまえばW65C51をそのままバスにぶら下げただけ。これで配線ミスの可能性はぐっと減るはずだが,やっぱりADTProでは動作してくれない。

(15)ADTProのクライアント側から出てくるコマンドやデータをPCのサーバー側でログを取ると,どうも正しいコマンドがクライアントから送られていない事がわかった。データの送信はW65C51のレジスタに書き込んで送信するだけなので,ここに至って万策尽きた。


 確かに,W65C51への書き込みタイミングがあやしくて,連続のアクセスで上手く書き込めていないのかも知れませんし,そういうタイミングの検証は真面目にやってはいません。だけど,1.3では115200bpsでBoot出来ているので,ちょっと違うかなと思っています。

 試せていないことは4つ。1つはシリアルポートが内蔵されたPCで試すこと。なかにはUSB-シリアルではどうにも解決せず,内蔵のシリアルポートでようやく動いたという先人もいらっしゃるようです。

 もう1つは,別のApple2で試すこと。特にAppleIIeと自作のSuperSerialCardの組み合わせです。実は,ADTProでの動作例はほとんどがAppleIIeで,Plusで動かしてる人って少ないのです。

 3つめは,W65C51を交換すること。交換と言っても,昔のNMOSの6551にです。チップの差分による差を確かめてみたいものです。

 最後は,純正のSuperSerialCardを入手すること。これで動いてしまえば自作に失敗した事になりますし,動かないようなら自作の意味が最初からなかったことになるので,どっちに転んでも負けです。

 

 そもそも,PlusではProDOSがそのままでは動きません。16KBのRAMを増設してようやく動き出しますので,そこまでしてPlusでADTProを試す人がいるのかと,そういう話です。一応ADTProの対象機種にPlusは含まれていますが,もしかするともともと動かないものであった可能性もありますし,いわゆる相性の問題があったりするのかも知れません。AppleIIeと自作SuperSerialCardで試せれば一歩進めるんですがねぇ。

とまあ,考えつく限りのことを1ヶ月近くもかけてやってみましたが解決に至りませんでした。残念ながら敗北です。

 一応,シリアルポートとしては機能しているので,無駄にはならないと思います。しかし具体的な使い道もないので,複雑な気分です。

 さて,このままでは最初の目的であったディスクイメージとフロッピーディスクを行き来すること,すなわちADTProを動かす事が出来ずに足踏みです。残念ですがSuperSerialCardにこだわっていても時間ばかりが過ぎてしまうので,違う方法を考えることにします。

 そう,イーサーネットです。続きは次回。

 

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2022年08月

- 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