見出し画像

8bitの王道 - Z-80

8bitCPUそして華々しいデビューをしたi8080ですが、すぐに強力なライバルが登場します。intelを退社して新たにzilogを設立したメンバーが8080開発陣をヘッドハントし、8080の上位互換チップであるZ-80をリリースしたのです。

8080に比べハードウェアとしては5V単一電源で動作するようにし、ダイナミックRAMのリフレッシュコントローラを内蔵したことが特徴です。ソフトウェアとしても、インデックスレジスタや裏レジスタを追加することで、差別化を図りました。

Z80 CPU

当初はi8080の後継であるi8085と競っていましたが、多くにセカンドソースメーカがZ-80を作り始めたことで普及に拍車がかかりました。このZ-80の後継CPUは2022年となった今でも製造されており、主に組み込み用途で使われています。歴史的に息の長いCPUとなっています。

Z80

Z80の過去と未来 (信憑性はわかりませんが、なかなか興味深い)

http://www.retropc.net/ohishi/s-os/6/z80.txt

パソコンで使われるCPUも、Apple][やコモドールPETなどの例外を覗けば、その殆どがZ-80を採用していました。確かに自作でマイコンボードを創るときでさえ、Z-80が一番楽ちんでした。特にDRAMを使うのであれば決定的です。ソフトウェア的にも8080の上位互換なので、蓄積されたコードを使い回すことが出来て、BASICインタプリタなどもすぐに使うことが出来ました。もっとも互換性が心配でZ-80であっても追加された命令を使うには少しばかり躊躇することはありましたが、ハードウェアに近い処理に関しては、どうせ移植しないだろということで裏レジスタなどを遠慮なく使いましたけど。

ソフトウェアが上位互換とは言っても、アセンブラ言語の表記方法に関しては、大幅に異なっていました。既に8080を使っていた人にとっては互換性のことも考えてインテル形式のアセンブラを使い続ける人が多かったのですが、少しばかり電卓的で使いにくかったので、私はザイログ形式を愛用していました。同じ命令の表記が複数あるわけで、今からソースを見る機会のある人にはちょっと気をつける必要のあるところです。

Z80命令説明書

https://userweb.alles.or.jp/chunichidenko/nd3setumeisyo/nd3_z80meirei.pdf

良くも悪くも、これが80系の標準で、あまりに広く使われたので、マイコンと言えば8080互換が基本でした。エンディアンも68系がちょっとおかしくてミニコンみたいだから注意してねと、あくまで80系が普通なんです。さらに共通のOSとしてCP/Mが登場し、これに拍車がかかります。ミニコンの世界と異なるのは共通の土台があるからこそ、バイナリの形でソフトウェアが流通し、バイナリ互換でなければパソコンにあらずという形となり、その後の発展にブレーキをかけたところもあるかもしれません。

Zilog Z80 のアーキテクチャとISAについて

Intel 4004 以外のチップ

日本のパソコンにおいては、ハードウェアべったりなところがあるので、機種ごとに移植する必要はありましたが、少なくとも同一シリーズにおいては、なんとか互換性を保つことに配慮していました。

8bitな世界においては、結局、このZ-80がゴールとなってしまいました。途中からはアドレスが16bitしかないことが足枷となり、64Kの空間をバンク切り替えなどを駆使して使い倒すようになり、なかなか使い勝手の悪いことになってしまいました。それもあって16bitCPUの登場と普及が待たれましたが、蓄積されたバイナリが使えなくなってしまうこともあり、16bitへの移行にはかなり時間がかかったように思います。結局、一人の人間が扱う処理としては(特に英語圏では)8bitで十分ではあったようです。

日本においては漢字を扱うことを考えると、基本となる文字を表現するのに16bit必要となるのと、日本語変換処理に多くのメモリが必要となり、ビジネス用途への普及は8bit時代にはあまり進みませんでした。

16bitに移行する際に、アドレス空間も倍の32bitまで拡張されれば良かったのですが、信号線をいきなり倍にするわけにもいかず、メモリ素子もいきなり増やすこともできないので、チビチビと拡張された結果、メモリ空間の圧迫による複雑さは、形こそ変わるもののずっと続くことになりました。

Z80


ヘッダ写真は、以下を使わせていただきました。
https://commons.wikimedia.org/wiki/File:Zilog_Z80.jpg


この記事が気に入ったらサポートをしてみませんか?