ノート:Z80
μPD780はセカンドソースか
[編集]μPD780ってセカンドソースでしたっけ? --Fx 11:21 2003年10月21日 (UTC)
- 長いこと見落としていました。ごめんなさい(最初に書いたのは私ではないけれどこの語を含む改訂をしています)。
- NEC vs Zilogの訴訟がおこったくらいですから、当初は「セカンドソース契約」をしなかったものと思われます。但し最終的には和解して、継続販売していますので何らかの契約が行われたと推定できます。
- しかしシャープやモステックなどと同列に記述するのは誤解をまねくので、ちょっと経緯を資料にあたって確認の上書きなおしたいと思います。--sphl 03:14 2004年1月6日 (UTC)
「マルチプレックスした」とは、どういう意味か
[編集]NSC800 のところに、マルチプレックスしたアドレス/データバス とありますが、この「マルチプレックスした」とは、どういう意味なのでしょうか? --a perfect fool 19:07 2004年1月5日 (UTC)
- 説明不足ですみません。このCPUはアドレスバスの下位8ビット(A0~A7)をデータバス(D0~D7)と共用しているということです。パッケージのピン数を節約するため(というか、そういう理由で同方式を採用したIntel8085にあわせたのでしょう)です。よくまとまった説明が以下のリンクにあります。--sphl 03:14 2004年1月6日 (UTC)
雑
[編集]- 代表的なニーモニックを載せるのはまずいですかね。
- Z80の互換品などについて、勝手に補完させて頂きました。
プログラム上からの8080とZ80の判別
[編集]フラグレジスターですが、Z80では8080のオーバーフロービットにパリティービットの意味も追加されたために、一部の命令の実行によるフラグレジスターの状態が8080とZ80とで異なるはずです。これを利用してプログラム上からプロセッサーの判別ができたはずですが、今資料が見つかりません。
- 8080にあったのはパリティフラグでした(Zilog Z8400/Z84C00・NEC µPD70008およびNEC µPD8080A(µCOM-80)/µPD8080AF(µCOM-80F)データシートで確認)。Z80はVフラグが真・8080はPフラグが偽(または逆)を返す命令で区別できそうです。
- 例を示します(Z80ニーモニックは大文字、8080ニーモニックは小文字)。Z80/R800のMSXPLAYerと、8080(µCOM-80F)のTK-80シミュレータで試しました。
- 例 実行後に8040hの値が5AhかFFhかで区別できます
- org 8000h
- LD A,1 ; mvi a,1 8000: 3E 01
- ADD A,2 ; adi 2 8002: C6 02 ここで8080は偶数パリティ(Pフラグがtrue)、Z80はオーバーフローなし(Vフラグがfalse)になる
- JP PO,8020h ; jpo 8020h 8004: E2 20 80 P・P/Vフラグがfalseの場合はジャンプ
- mvi a,5Ah ; 8007: 3E 5A (8080の場合の処理)
- sta (8040h) ; 8009: 32 40 80
- ret ; 800C: C9
- org 8020h
- LD A,0FFh ; 8020: 3E FF (Z80の場合の処理)
- LD (8040h),A ; 8022: 32 40 80
RET ; 8025: C9
- 例 実行後に8040hの値が5AhかFFhかで区別できます
- 8080で未定義(nopとして動作するもの)で、Z80で追加された命令を使う(JR $+1Ah (db 18h,18h)等)のは反則。理由は、未定義のdb 18hが必ずしもnopの保証はないためです(TK-80シミュレータでは動いたので、µCOM-80ではジャンプ・コール/リターン命令以外のようですが)。
- 余談ですが、8080→µCOM-80で拡張されたフラグ(SUBフラグ - Z80ではNフラグ)もチェックすれば、8080/µCOM-80FかµCOM-8/80かのチェックもできます。このチェックで8080と判別されたあとにチェックすると良いでしょう--160.79.35.17 2010年6月10日 (木) 19:38 (UTC)
ROHM製Z80
[編集]ROHM製Z80もありましたね。NMOSかCMOSか分かりませんが情報がありましたらどなたか追加お願いします。
- nMOSはカシオのMSXに使われたりしました。確かBU18400だったと思います。CMOSは判りません。--212.116.83.110 2010年6月6日 (日) 19:39 (UTC)
- CMOS版はBU184C00のようです。ちょっと資料がアレですけど→[[1]]--Baz1521 2010年6月7日 (月) 10:48 (UTC)
Z8000やZ380の記述追加削除
[編集]Z380がZ8000に吸収された記述がありましたが、既にどなたかのつっこみのコメントが記載されていました。年代的にもモノ的にも全く別物と思われますので、勝手に削除およびZ380の情報を多少追加させていただきました。
IX、IYのオフセット
[編集]LD reg,(IX+n)のnは8ビット2の補数で指定できるはずなので-128~0~127に修正しました。
R800のバグ
[編集]R800 http://homepage3.nifty.com/z80/r800.htm
によると、メモリマッパがらみのようです。 --60.41.238.70 2007年2月10日 (土) 06:03 (UTC)
割り込みレジスタ関連のバグについて
[編集]nMOS品はLD A,I・LD I,Aの実行中に割り込み(INT)がかかると、DIになってしまうバグがあり、CMOS品は一部を除いて修正されているようですが、バグがあるCMOS品はTMPZ84Cxx(単体・統合ともに)とHD64180R0の他にはどのようなものがあるのでしょうか?ザイログやHD64180はデータシートで確認しました。--212.116.83.110 2010年6月6日 (日) 19:39 (UTC)
暗号化など
[編集]Z80の概要の中にバスのデータが暗号化されたカスタムZ80について記載されていますが、それは派生品に記載されるべき内容ではないでしょうか。 Z80の概要にはZ80本来の機能にとどめるべきかと思います。
KC80 の仕様
[編集]川鉄のKC80は、乗除算命令はありません。というか命令は全く変わっていません。命令の実行サイクルが異なるだけです。KL5C8400はKC80そのもので、タイミングは異なりますが MMU などの一切の付加機能なしです。出典は川鉄の KL5C8400 CFP ハードウェアマニュアル (1996 Ver.2.0)。Rレジスタがインクリメントされないという話もどこから来たのかな~。仕様書上は一応 Z80 と同じような動きをすることになっています。
KC160 は乗除算が追加されていますが、そもそも大幅にアーキテクチャが拡張されていて同列とは言えないです。一応 Z80 上位互換ではありますが。
他も間違い多いな。KC80は2modeあって、Z80モードのときはリフレッシュアドレスも出るし、細かいところはともかくそこまで挙動は違わない。KC80 modeだと、そもそも M1サイクルという概念がないし。KL5c80A12/16/20系はコアからして KC80(KL5C8400) とは違います。タイミングは似ても似つかないし、この石もM1サイクルなんてない。リフレッシュアドレスは出ません。
HD64180 には除算命令はないです。Z64180 は Z180/Z80180 とは別物で、HD64180 の CP1 マスク相当品、というか日立が Zilog にチップ自体を供給していたと思われる。Z80180 は Rev1 と Rev.2 があって、Rev.1 が HD64180Z と事実上同じもの。Rev,2 の話は、Z80 のところに書く話じゃないな。 → 直しました。