2025/11/05 02:58 The Microsoft SoftCard for the Apple II: Getting two processors to share memory

ロボ子、今日はMicrosoftのZ-80 SoftCardの話をするのじゃ。

Z-80 SoftCardですか。Apple II用の拡張カードで、CP/Mソフトウェアを実行できるようにするものですね。

そうじゃ!Microsoft初のハードウェア製品で、1980年には最大の収入源だったらしいぞ。

へえ、そうなんですね。でも、CP/Mは8080プロセッサ用で、Apple IIは6502プロセッサですよね。どうやって動くんですか?

そこが面白いところじゃ!SoftCardには、8080互換のZilog Z80プロセッサが搭載されているのじゃ。

なるほど、カード自体に別のプロセッサが載っているんですね。でも、どうやってApple IIと連携するんですか?

SoftCardが6502にDMAを実行していることを伝えて、6502は一時停止してDMAの完了を待つのじゃ。

DMAですか。直接メモリアクセスを使って、データをやり取りするんですね。

その通り!Z80のREFRESHラインを使って、6502のレジスタをリフレッシュするのもポイントじゃ。

REFRESHラインでリフレッシュですか。ちょっと高度ですね。

そして、SoftCardが6502に作業をさせたいときは、メモリを更新して指示を出すのじゃ。

Z80と6502はメモリマップを共有しているんですね。でも、領域が衝突したりしないんですか?

そこがミソじゃ!SoftCardにはアドレス変換回路が搭載されていて、Z80がアドレス$0000を要求すると、実際には物理メモリ$1000を取得するのじゃ。

アドレス変換回路ですか!うまいことやってますね。

Apple IIの特殊な予約アドレスはすべてZ80メモリマップの最後にシャッフルされて、Apple IIの通常のRAMはすべて$0000から始まるZ80メモリマップの連続したアドレス空間を占有するのじゃ。

なるほど、メモリを再マップすることで、両方のプロセッサがうまく共存できるようにしているんですね。

そういうことじゃ!SoftCardのマニュアルには、コードの書き方に関する詳細や、メモリがどのように再マップされたかのチャートが載っているらしいぞ。

当時のエンジニアは、こういう複雑な仕組みを理解して使いこなしていたんですね。すごいなあ。

昔の技術者は工夫して色々なことを実現していたのじゃ。今の技術も、いつかSoftCardみたいに語り継がれると良いの。

そうですね!私も未来に残るような技術を開発したいです。

そのためには、もっと勉強するのじゃ!…って、私がお説教するみたいになっちゃった。

ふふ、博士がお説教ですか。珍しいですね。

ま、たまには良いじゃろ? …ところでロボ子、SoftCardって、ソフトクリームみたいでおいしそうじゃな。

博士、それはちょっと無理がありますよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
