標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第19回]

●2枚目の基板の配線チェック作業に入りました

先日はNフラグについて長々とお話をしました。
手元に8080についての詳しい資料が無いものだから、フラグについては、ついZ80の資料を参考にしてしまいました。

Z80では加算後だけではなくて、減算後でもDAA(十進補正)を行えますが、そのためには、直前に行われた命令が、加算なのか減算なのかを知る必要があります。
そのためにZ80ではNフラグを使います。
Nフラグは加算命令ではクリアされ、減算命令ではセットされます。このNフラグを見れば、直前に行われたのが、加算命令だったのか減算命令だったのかを知ることができます。

私はZ80の資料に基づいて、フラグの設計も、DAA命令の回路設計もしてしまったのですが、後からネットでよーく確認したら、なんと、オリジナルの8080は加算後のDAA(十進補正)しかできず、減算後のDAAについては考慮されていなかった(当然Nフラグも無い)ことがわかりました。
もっと、はやい段階で、もう少し詳しく調べておけばよかったのに…。

回路の設計は全部完了してしまい、おまけに基板配線図までとりあえずは作業済み。
せっかく配線したのに、余計だった部分を今度は削除しなくてはいけません。それも手間な話です。
でも、この際、たとえ1個でも2個でもよいから、ICの数を減らしたい。

Nフラグ回路は2枚目の基板にありますが、DAA回路は3枚目の基板にあります。
結局両方とも手直しです。
幸いというか、1枚目は図面チェックも完了して、ガーバーデータを基板屋さんに送ってしまいましたが、2枚目と3枚目の基板については、これから基板配線のチェックにかかろうか、というところですので、まだ変更は可能です。
追加するのは大変ですけれど、削除するのは、うっかり間違えて必要な配線を削除したりさえしなければ、それほど大変なことでもありません。

今2枚目の基板配線のチェック作業中です(なかなか、大変です)。
チェック後の配線の修正作業と一緒にNフラグ関係の配線の削除もしていくつもりです。

●P/Vフラグ(パリティ&オーバーフローフラグ)

じつは、Nフラグのほかにも、もうひとつ気になるフラグがありました。P/Vフラグです。
インターネットでの8080の記事(wikipediaなど)ではPフラグ(パリティフラグ)としか書かれていません。
ひょっとして、Nフラグの二の舞か!なんとなく、いやーな、予感が…。

本家のyahoo.comまで行って、英文の8080のdocumentを検索してみました。
あった!intelのカタログ資料で12ページ程度の8080のドキュメントが!

む?カタログ…?

期待外れでした。やっぱり、ね。
命令とかタイミングチャートなどはついていましたが、命令毎のフラグの動作については、全く無し。
そこまで期待する方が無理、か。

Nフラグと同じようにP/Vフラグについても、8080とZ80とで相違があるのか、それとも同じなのか、それが知りたい!

●そうか!8080とZ80の比較資料をみつければ、良かったんだ!

今までは、とにかく8080の詳しい技術資料は無いだろうか、とそのことだけを考えて、インターネットで検索してきました。
いくらインターネットでも、いまどき、そんな古い資料はなかなかみつかりません。
でも、ひょっとしたら、Z80との比較を行った資料ならば、みつかるかも…。

ありました!

なんと、8080の命令表などを参考にさせてもらい、その後には、Nフラグについて貴重な情報を読ませていただいた、 半導体コレクション展示会場さまのサイトに、8080と、8085と、Z80の機能の比較を行っているページが見つかりました。

でも、やっぱり!いやーな、予感は、見事に的中!

8080と8085はPフラグ(パリティフラグ)のみ。
これに対して、Z80はパリティフラグと同じフラグビットに、オーバフローフラグの機能も併せ持たせた、ということが、よーくわかってしまいました。
またしても、トホホ…。です。
また、余計な作業をしっかりやってしまった…。

●Nフラグの回路と同じように、オーバーフローフラグの回路も、削除!

せっかく考えて、基板配線までやってしまった、オーバーフローフラグ回路なのですが、もともと8080にはなかった機能ですから、ちょいと残念ですけれど、削除してしまいます。
現在は2枚目の基板の配線図のチェック作業中です。まだ3枚目の基板のチェックにはかかっていませんから、オーバーフローフラグ回路の削除作業は、とりあえず2枚目の基板から、先に行います。
削除作業といっても、2枚目の基板の回路では、関係するのは、INR、DCR回路のみです。

削除する部分の回路図の写真をお見せします。

本文で書いたように、オーバーフローフラグが不要であることに、この回路のチェックの途中で、気がつきました。


これだけ、ばっさり削除、です。

こうやって、回路図を見せられると、
うーん、何をやっているのか、知りたい!
という気分になってきませんか?

私としても、せっかくこうやって清書までした回路をバッサリ削って、永遠に、お蔵入り、というのもちょいと惜しいような気がします。
そこで、次回は、この回路図なども交えながら、オーバフローフラグとはそも何者か?とか、(8080にはありませんが)Z80ではそれはどのように働くのか?とか、どうして同じフラグビットをパリティフラグと共有することができるのか(あ、パリティフラグって、何?)などなど、思いつくままにお話をしてみたいと思っております。
乞う、ご期待。
2008.7.27upload

前へ
次へ
ホームページトップへ戻る