乗り越えなければならなかったハードル

今回の製品、DISK II エミュレータは、前モデルの SD カードリーダに比較して3倍以上の開発期間を要しました。 毎週、ハードルを越えてはまた次のハードルが現れ、いつ終わるのかと思いましたが、ようやく完成しました。

APPLE II からのライトリクエストを割り込みで拾い、バッファにライトデータを受信、アドレスヘッダを出力しないことで APPLE II を待たせておいて、その間に SD カードへ書き込む、という基本アイデアは、前作を作っている時から持っていました。 また、同じくシリアルである USB の信号の勉強をしていたため、ライト信号への同期、受信にテクニックを生かす事ができました。

ところが、SD カードへデータを書き込んでいるうちに、APPLE II がタイムアウトしてしまい、しばらくアドレスヘッダを読んで くれなくなってしまう問題が発生しました。これは COPYA を動かしているときで、場合によっては COPYA に一時間も かかってしまうことがありました。

SD カードへの書き込みは、ある程度の時間がかかるので、ある程度のタイムアウトはやむを得ないと判断しました。 そんな時に、RAM を 2K バイト積んだマイコンを発見しました。これですと、5セクタ分のバッファがとれるので、 書き込み速度はかなり改善され、COPYA が3分程度(初期化は除く)になり合格点となりました。

もう一つの問題は、初期化でした。初期化は、単なる書き込みではないので、特殊ケースとして扱う必要がありました。 リードもライトも DISK II とタイミングが異なるため、RWTS のコマンド4のソースを眺めながら、何とか初期化をやり過ごせる 方法を考えました。これにも、結構な時間を要しました。