メインメニューを開く
Z80 CPU(1993年第45週製造品)

Z80 は、米国ザイログによって製造された 8ビットマイクロプロセッサーである。1976年に発表され、1980年代の中頃までは、パーソナルコンピュータCPUとしてなど、幅広い用途に使用された。以後も周辺デバイスを集積した製品が出されるなど、現在でも組み込み用途など、目に見えないところで多用されている[注釈 1]

概要編集

嶋正利インテルを退社したIntel 8080の開発スタッフが設計を行っており、8080とはバイナリレベルでほぼ上位互換性がある(100%ではない)。

ザイログオリジナルの製品としてクロック周波数が2.5MHzのZ80から20MHzの派生製品まで、各社からセカンドソースや互換製品が製造されている。2007年現在は実チップではなく、FPGAASIC用のIPコアとして活用されている。パチンコの主基板向けプロセッサーに使われているNECのμPD70008 IPをはじめ、商用の互換コアは20社以上存在し、オープンソースのIPコアも5種類以上存在している。

Z80とその互換CPUは、当初はより高速な8080互換CPUとして応用され、S-100バス互換機にもこぞって搭載されるなど、黎明期のパーソナルコンピューター市場を支配した。日本国内においても、1970年代の末から80年代前半頃にかけて、ビジネス用のオフィスコンピュータなどの他、各社のホビーパソコンにも搭載された。

また組み込み用としては21世紀に至るまで応用され続けて来ており、多数の機器に搭載されたほか、初期のゲーム専用機などにも搭載されていた。パチンコ・パチスロの抽選を司る主基板部分のコアCPUには暗号機能を付与したZ80ベースのカスタムLSIが使われており、消費量の多い分野の一つである。このLSIはCPUとメモリの間で交換するデータを暗号化し、プローブを当ててもプログラムやデータが読み取れない様にしている。

8080が、それと組み合わせられる8251 (USART)、8253 (CTC / PIT)、8255(PPI)でファミリーを構成していたのに対応して、Z80SIO、Z80CTC、Z80PIOや、Z80DMAでZ-80ファミリーを構成する。また、これらを組み合わせたマイコンがある。

開発者の間では、しばしば「ゼッぱち」と略して呼ばれることが多い[要出典]。しかし、同社にはZ8というマイクロコントローラーもあるため、混乱の原因になることもある。

ハードウェア編集

Z80は、インテルの 8080マイクロプロセッサの改良型といえる製品であり、他のインテル系CPUと同じくリトルエンディアンである。8080に対して、若干の拡張、電源の 5V単一化、より高いクロック周波数への対応などが図られた。メモリ空間は16ビット幅のアドレスバスで示される64KBで、それ以上のメモリ空間を操作する場合には、MMUなどを追加しバンク切り替えなどを行う必要がある。

最大クロック周波数は、Z80が2.5MHz版、Z80Aが4MHz版、Z80Bが6MHz版、Z80E[注釈 2]もしくはZ80Hが8MHz版、など、末尾のアルファベットの有無と種類で識別できる。トランジスター数は8,200個。CMOS版ではZ84C0006が6.17MHz、Z84C0008が8MHz、Z84C0010が10MHz、Z84C0020が20MHz動作となっている。

8080から拡張されているものは、DRAMの情報を維持(リフレッシュ)する機能の内蔵とそのためのレジスタの追加、8080では1組だった汎用レジスター群を、切り替えて使用できる表と裏の2組とし、また、IXとIYの2つのインデックスレジスタを使用したメモリ操作を含む命令の増強、割り込みモードの追加、ワイヤードロジックによる命令の実行、相対アドレスによるジャンプ命令などが行われている。乗算除算命令は8080同様に存在しない。

また、本来16ビット固定のインデックスレジスタを8ビット単位に分割して使用できるなど、ロジックの設計上で派生したとおぼしき、命令表には存在しない隠し命令が存在した。これらの一部はZ280のマニュアル中で正式にドキュメント化されている。

製造には、この頃使われ始めたイオン打ち込み技術が使用された。当時、ライセンスを取ってセカンドソースとして製造する、あるいはクリーンルーム設計による独立実装ではなく、顕微鏡写真を利用したデッドコピーを行う一部の日本企業があったため、イオン打ち込み技術はその対策のためにも使われた。イオン打ち込みにより、エンハンスメント(ノーマリーオフ)に見えるが実はディプリーション(ノーマリーオン)というトランジスタを6個ほど仕組み、素直にデッドコピーしたのでは正しく動作しなくなるようにして時間稼ぎをした[2]

特徴編集

8080との差別化のため、命令の1サイクル目(M1サイクル)では他のサイクルに比べて所要ステート数が少なくなっている。通常のサイクルが3ステート必要なのに対しM1サイクルでは2ステートである。仕様を見るとM1サイクルには4ステート必要なように見えるが、後半の2ステートはリフレッシュ機能のために使用され、通常のメモリアクセスとは関係がない。

これは同じ命令を実行しても8080よりも高速に実行するためのZ80の売りの一つだった。反面、このM1サイクルだけのために速いメモリが必要になり、ハードウェア設計者からは不評を買っていた。

Z80には「特定の命令の組み合わせを用いると、普通に命令を書いた場合よりも実行にかかるクロック数や命令の総バイト数を少なくできる」というテクニックが多数存在し、これらは「最適化」「クロック削り」などと呼ばれた。例えば、Z80にて追加されたブロック転送命令やインデックスレジスタ命令は、一連の処理に必要なプログラムコードのバイト数を節約できる反面、他の命令で代用する場合よりも所要クロック数が増大するといったデメリットもあり、命令のメモリ空間上の占有量と処理速度とのトレードオフの関係にあった。

またZ80は、同時期に新規に開発された他社製の8ビットCPUと比較すると、相対ジャンプは可能であるもののジャンプ先の範囲が狭いなどリロケータブルな構成をとりづらく、バイナリ化したコードをリロケータブルに配置して動作させるドライバやデバッガ、オペレーティングシステム等の環境を作るには不向きとされた。リロケータブルでない一般的なバイナリは、配置アドレスを変更する度に再コンパイルや再リンクが必要となった。またアドレス参照時のオフセットも汎用レジスタ使用時には指定できず、インデックスレジスタ使用のオフセット指定も-128〜0〜127の範囲で制限されるため、C言語ポインタとの相性がよくない面があった。

アドレッシングモードが少ないこともあり、オペコードおよび命令フォーマットを暗記して、直接機械語を記述することも、さほど難しいものでもなかった。

レジスタ編集

 
Z80-CPUのレジスター一覧

A,B,C,D,E,H,Lは8080の同名レジスタと同じ機能を持つ。 Fは8080上位互換のフラグレジスタである。 Rはリフレッシュカウンタで、オリジナルのZ80では下位7ビットが変化し、読み出した際の最上位ビットの初期値は不定である。書き込んだ場合、最上位ビットが保存され、読み出すと最上位ビットは書き込んだ値が得られる。周辺LSI統合CPU・上位互換CPUでは、8ビット全部使用し、8ビット全部が変化し書き込んでも最上位ビットが保存されないものもあるほか、8ビット全部が変化せず書き込んだ値が保存されるものもある。

フラグレジスタのビット位置(*は8080から拡張されたビット)
b7:S 符号
b6:Z ゼロ
b5:未使用 (0に固定)
b4:H AUXキャリー(パックBCD演算用)
b3:未使用 (0に固定)
b2:P/V * パリティ・オーバーフロー(8080ではP パリティ)
b1:N * 減算(ADD命令で0、SUB命令で1になる。8080では未使用、0に固定)
b0:C キャリー

命令セット編集

8080に存在する命令については、同じバイナリとなるという、基本的は上位互換である。しかし、フラグ変化の違いがあるため、プログラムをバイナリ的にそのままもってきても動かないという可能性はありうる(あまり使われないフラグであるパリティフラグなので、それを使っていなければ動く)。

ザイログ社が定義したZ80のニモニックは、8080に対応する命令があるものでもインテル版と全く異なっており、記述の容易さが勘案され、より整理されたものとなった。これは初心者にも判りやすいとされる反面、他のCPUのニモニックと比較して、アドレッシングモードがはっきりしない、という欠点もあった。オペランドの順番は、ディスティネーションが前でソースが後である。

ここではZ80で追加された命令のみ示す。8080からある命令についてはIntel 8080#命令セットを参照。また、IXとIYについては同等の命令が存在するが、ここではIXのみを示す。

  • rは8ビットレジスタA,B,C,D,E,H,Lまたは(HL)を表す。
  • rrは16ビットレジスタBC,DE,HL,SPを表す。
  • rxは16ビットレジスタBC,DE,IX,SPを表す。
  • nは8ビットの即値を表す。
  • nnは16ビットの数値(即値またはメモリアドレス)を表す。
  • bはビット位置0~7を表す。
  • dはインデクスレジスタの変位(符号つき8ビット)を表す。
  • eはプログラムカウンタの変位(符号つき8ビット)を表す。

転送・交換命令編集

LD r,(IX+d)
LD (IX+d),r
インデクスレジスタを用いたメモリとレジスタの転送。rに(HL)は指定できない。
LD (IX+d),n
メモリに即値をストアする。
LD IX,nn
インデクスレジスタに即値をロードする。
LD IX,(nn)
メモリの内容をインデクスレジスタにロードする。
LD (nn),IX
インデクスレジスタの内容をメモリにストアする。
LD BC,(nn)
LD DE,(nn)
LD SP,(nn)
メモリの内容を16ビットレジスタにロードする。8080ではHLレジスタでしかできなかった。
LD (nn),BC
LD (nn),DE
LD (nn),SP
16ビットレジスタの内容をメモリにストアする。8080ではHLレジスタでしかできなかった。
LD SP,IX
インデクスレジスタの内容をSPレジスタに転送する。
EX AF,AF'
AFレジスタとAF'レジスタを交換する。
EXX
BC,DE,HLレジスタとBC',DE',HL'レジスタを交換する。
LD A,I
LD I,A
割り込みベクタレジスタとAレジスタの転送。LD A,Iを使用するとき、特にNMOS品ではこの命令を実行中に割り込みがかかった場合、元の割り込み状態に関わらず割り込み禁止になる場合がある[3]。このバグ(エラッタ)はNMOS品は全般にある。CMOS品でも、東芝TMPZ84Cxx・日立HD64180 R0マスク・他にはこのバグがある。ザイログのものは修正されている。HD64180はR1マスクおよびZバージョンで修正済み。シャープLH5080も修正済みの模様。NEC μPD70008は不明。
LD A,R
LD R,A
リフレッシュレジスタとAレジスタの転送。Rの下位7ビットは常に変動しているため、LD A,Rは簡易な乱数発生器としてよく使われる。
LD A,Rについては、チップのバージョンにより前述のLD A,Iと同様の割り込み禁止となる問題が発生する場合がある。

算術演算命令編集

ADD IX,rx
16ビットレジスタの内容をインデクスレジスタに加算する。
ADC HL,rr
16ビットレジスタの内容とCフラグをHLレジスタに加算する。ADD命令は8080から存在した。
SBC HL,rr
16ビットレジスタの内容とCフラグをHLレジスタから減算する。なお16ビットのSUB命令はない。そのため8ビットの算術演算命令のうちSUB命令だけAを表記しない。
INC IX
インデクスレジスタの内容をインクリメントする。
DEC IX
インデクスレジスタの内容をデクリメントする。
NEG
Aレジスタの2の補数をとる。

ローテート・シフト命令編集

RLC r
RLC (IX+d)
レジスタまたはメモリの内容とCフラグを連結して左ローテートする。RLC Aと8080からあるRLCAとではフラグの変化が異なる。
RRC r
RRC (IX+d)
レジスタまたはメモリの内容とCフラグを連結して右ローテートする。RRC Aと8080からあるRRCAとではフラグの変化が異なる。
RL r
RL (IX+d)
レジスタまたはメモリの内容を左ローテートする。RL Aと8080からあるRLAとではフラグの変化が異なる。
RR r
RR (IX+d)
レジスタまたはメモリの内容を右ローテートする。RR Aと8080からあるRRAとではフラグの変化が異なる。
RLD
RRD
Aレジスタの下位4ビットとHLを連結して4ビット単位でローテートする。BCD用の命令。
SLA r
SLA (IX+d)
レジスタまたはメモリの内容を左に算術シフトする。
SRA r
SRA (IX+d)
レジスタまたはメモリの内容を右に算術シフトする。
SRL r
SRL (IX+d)
レジスタまたはメモリの内容を右に論理シフトする。

ビット操作命令編集

BIT b,r
BIT b,(IX+d)
レジスタまたはメモリの特定のビットをテストする。
SET b,r
SET b,(IX+d)
レジスタまたはメモリの特定のビットをセットする。
RES b,r
RES b,(IX+d)
レジスタまたはメモリの特定のビットをリセットする。

ジャンプ・コール・リターン命令編集

JR e
無条件相対ジャンプ。
JR NZ,e
JR Z,e
JR NC,e
JR C,e
条件付相対ジャンプ。
DJNZ e
Bレジスタをデクリメントして0でなければ相対ジャンプする(Decrement and Jump if Non Zero)。ループに使う。
JP (IX)
インデクスレジスタの内容をPCに転送する。
RETI
割り込みからのリターン。
RETN
NMIからのリターン。

スタック操作命令編集

PUSH IX
インデクスレジスタの内容をスタックにプッシュする。
POP IX
スタックトップの内容をインデクスレジスタにポップする。
EX (SP),IX
インデクスレジスタとスタックトップの内容を交換する。

入出力命令編集

IN r,(C)
OUT (C),r
CレジスタまたはBCレジスタによる間接指定の入出力。rに(HL)は指定できない。

CPU制御命令編集

IM x
割り込みモードを設定する。xの値は0〜2。

ブロック命令編集

8086のストリング命令、80186/V30のI/Oストリング命令に相当する。LDIRが最もよく使われる。

LDI/LDD/LDIR/LDDR
ブロック転送。HLレジスタの指すメモリの内容をDEレジスタの指すメモリへ転送することを、DE,HLレジスタをインクリメント/デクリメントしながらBCレジスタの回数だけ繰り返す。LDIRとLDDRは転送元と転送先の領域が重なる場合に使い分ける。
CPI/CPD/CPIR/CPDR
ブロックサーチ。AレジスタとHLレジスタの指すメモリの内容を比較することを、HLレジスタをインクリメント/デクリメントしながらBCレジスタの回数だけ、あるいは比較結果が一致するまで繰り返す。
INI/IND/INIR/INDR
ブロック入力。Cレジスタの指すI/OポートからHLレジスターの指すメモリに入力することを、HLレジスタをインクリメント/デクリメントしながらBレジスタの回数だけ繰り返す。
OUTI/OUTD/OTIR/OTDR
ブロック出力。HLレジスタの指すメモリからCレジスタの指すI/Oポートに出力することを、HLレジスタをインクリメント/デクリメントしながらBレジスタの回数だけ繰り返す。

I/Oポート編集

Z80には8080と同じくメモリアドレスとは別に0からFF(255)までのI/Oポートアドレスを持っていた。ポートアドレスはメインメモリーのアドレスデコーダーを流用していたのか、アドレスバスの下位8ビットに出力されたが、上位8ビットにも同時に値が出力される仕様になっていた。この値にはI/OアドレスをCレジスタで指定する命令の場合はBレジスタ、それ以外の命令はAレジスタの値が用いられる。

この仕様を利用するとI/Oポート空間を16ビットアドレスで取り扱うことができ、VRAMをここに割り当てることで、メインメモリーがVRAMによって圧迫されることを防ぐことができる。そのような構成をとった日本製パソコンには、シャープのX1、ソニーのSMC-777BUBCOM80などがある。シャープMZ-1500ではオプションのRAMファイル(MZ-1R18、容量64KB)のアクセスにこの仕様を使用している[4]

しかし、通常に16ビットアドレスをデコードしてI/Oのハードを構成してしまうと、アドレス指定にBCレジスタを指定しないOUT命令の時にアドレスバス上位8ビットにはAレジスタの内容が出力されてしまうため、アドレス指定にBCレジスタを指定しないOUT命令を用いることが出来なくなってしまう。そこで、SONYSMC-70では、I/Oアドレスの上位8ビットを下位に、下位8ビットを上位にアドレスデコードした。こうして、多くのI/Oアドレスの割り付けが必要なところでは上位8ビット・下位8ビット両方をデコードしてBCレジスタアドレシングのOUT命令でアクセス、他のI/Oアドレスでは元の下位アドレスのみをデコードしてデバイスに割り付けることにより、通常のOUT命令を使用できるようにした。

なお、ブロック入出力命令の場合はBレジスタをデクリメントするため、16ビットアドレスとしては使用しにくい。逆にこれを利用することにより残り回数を周辺デバイスなどが知ることができる。ただし、出力の場合は処理の順番はアドレス出力よりもBレジスタのデクリメントが先のため、アドレスの上位8ビットを利用する場合は1小さい値が出力されることに留意する必要がある。なお、入力の場合はアドレス出力が先である。

Z80の互換CPU編集

セカンド・ソース契約に基づいてピンコンパチブルな互換製品が他社で生産された。こうした製品には、シャープの「LH0080」モステックの「MK3880」などがある。一方、日本電気(NEC)が独自に互換性のある「μPD780」を出荷したことに対し、ザイログはこれをチップ著作権侵害として訴訟を起こしたが、最終的には両者は和解して製造販売が継続された。

 
LH0080A
 
μPD780C-1
 
μPD70008AC-4

もともとはNMOSプロセスで製造されたが、一部のセカンド・ソースの製造者からは、NEC「μPD70008」、シャープ「LH5080」、東芝「TMPZ84C00」など、独自にCMOSプロセス化し消費電力の低減を図った製品も出荷されている。

また、2002年シャープシステム液晶のデモンストレーションとしてガラス基板上にZ80を形成し、MZ-80CのCPUと交換し動作させた。

この他にも東欧諸国で、例えば東ドイツU880ルーマニアMMN80CPUや、ソ連T34など、ライセンスによらないクローン製品があった。

派生品編集

ナショナル・セミコンダクターからは、CMOS化とともに、インテル8085のようにアドレスバスの下位とデータバスとをマルチプレックスさせ、Z80とソフトウェアの互換性を持つ「NSC800」が製造された。ただし8085とはピン配置が異なり、置き換えだけでの移行はできない。

現在[いつ?]でも制御、組込用として、メモリおよび周辺機器の制御用回路を単一のパッケージに集積したLSIが製造されており、ASICのIPコアとしてZ80の互換プロセッサを用意するデバイスメーカーも多い。Z80 IPコアは、本家の「ALUが4ビットのため、多くの演算で複数クロックを必要とする」「レジスタがダイナミック動作をするため、クロックを停止できない」「LDx、LDxRのような繰り返し実行する命令やインデックスレジスタを使う命令等、組み込み用途では不要な複雑な命令がある」といった欠点を解消した物も提供されている。

他社によるZ80上位互換CPU編集

以下にZ80互換のCPUのうち、ザイログ以外の会社で開発された上位互換性を持つものを示す。高速化を図ったものや、周辺デバイスを集積したものである。

 
HD64180SY10
 
R800 CPU
 
TMPZ84C015AF
HD64180
日立製作所(現ルネサス エレクトロニクス)が開発。高速化されたZ80バイナリーレベル互換命令とMMUを集積し、アドレス空間を512KB〜1MBにしたもの。乗算、除算命令を追加している。IX/IYレジスタの8ビットアクセスには対応していない。68系周辺デバイスのバスサイクル(同期バス)に合わせたHD64180と、Z80用周辺デバイスのバスサイクル(非同期バス)を直接接続できるHD64180Zがある。ザイログからは、HD64180Zのセカンドソース品としてZ64180が製品化された。
μPD9002
NEC Vシリーズのひとつで、PC-88VAが使用。V30が8086の上位互換であるのと同時に8080互換モードを持つように、この石は8086の上位互換であるのと同時にZ80互換モードを持つ。型番が示すとおりVシリーズの通常のラインナップ(μPD70〜)ではなく、カスタムモデルである。チップそのものはV30をベースに周辺回路を統合したV50を基本としているため、Intel 8086とのソケット互換性はないが、PC-88VA2/3においては、V30モード時に8087-1コプロセッサが稼動する数値演算プロセッサソケットが用意されていた。
R800
アスキーが開発した、内部16ビットの高速版Z80互換CPU。1990年4月に発表。乗算命令を拡張しているが、使用するレジスターの組み合わせで計算結果が不正になる不具合があるため、実質使用できるレジスターが制限されていた。また隠し命令のうち、IX/IYレジスタの8ビットアクセスを主とするいくつかの命令が正式命令としてサポートされる。Rレジスタが8ビット幅になっている。MSXturboRに搭載された。CPU機能を停止しメモリコントローラーとして動作するモードも持ち、同機で使用された。MMUやDMAを集積しているが、仕様がMSXのものとは異なるため使用されなかった。
TMPZ84C00
TMPZ84C011
東芝 CMOS版Z80CPU、Z80CTC、Z80PIO非互換パラレルI/Oを集積したチップ。
TMPZ84C013
東芝 CMOS版Z80CPU、Z80CTC、Z80SIO等を集積したチップ。
TMPZ84C015
東芝 CMOS版Z80CPU、Z80CTC、Z80PIO、Z80SIO、CGC、ウォッチドッグタイマー等)を集積したチップ。また、本家にあたるザイログからも同等のZ84C15が販売されている。ただし、ピン機能の一部が異なる。東芝TMPZ84C015は製造中止。
TMPZ84C112
東芝 CMOS版Z80CPU、Z80PIO非互換パラレルI/O、タイマー、256バイトRAM等を集積したチップ。
TMPZ84C710
東芝 CMOS版Z80CPU、ISDN基本インターフェイス、Z80SIO等を集積したチップ。
TMPZ84C711
東芝 CMOS版Z80CPU、ISDN基本インターフェイス、Z80SIO等を集積したチップ。Z84C710上位互換。
TMPZ84C810
東芝 CMOS版Z80CPU、Z80CTC、Z80SIO、パラレルI/O、DMA、MMU、DRAMリフレッシュコントローラー、ウォッチドッグタイマー等を集積したチップ。
KC80
川崎マイクロエレクトロニクス(旧川崎製鉄)の、Z80互換の高速版CPU。乗算・除算命令を持つ。KC80をコアにMMUなどを追加した組み込み用ICとしてKL5C8012、KL5C8016、KL5C8400が販売されている。M1サイクル時にリフレッシュアドレスが出ず、Rレジスタも変化しないためこれを利用した設計のハードウェア・ソフトウェアをZ80からKL5C8400に置き換えると不具合が出る場合がある。16ビット版で上位互換のKC160も販売されている。2009年7月1日に一連の汎用マイコンの生産終了が発表された。
MSX-ENGINE
MSX 向けのカスタムCPU。MSXで使用する周辺LSIを取り込んで製品化されたもの。

後継CPU編集

ザイログ自身の開発による上位互換CPUを以下に示す。

Z180
日立が開発したHD64180ZについてザイログがセカンドソーサとなったZ64180の改良品。HD64180Z/Z64180とは仕様が微妙に異なる。Z80180やZ8S180がある。
Z800
Z80を16ビットCPUとして大幅に拡張するとともに周辺チップを集積したもの。命令体系拡張として、乗除算命令の追加、16ビットオペランド命令の増強、PC相対アドレッシングモードやSP相対アドレッシングモードの拡充などを行い、また従来隠し命令となっていたIX、IYレジスタを分割操作する命令などが公式にサポートされる。システムとしてはユーザーモード・スーパーパイザーモードの区別を持ち、内蔵MMUによるメモリ保護機能が提供される。256byteのRAMを内蔵し、ローカルメモリとして使用する他に、キャッシュとして使用することも可能である。外部バスは従来のZ80と互換性の高い8ビット幅のZ80-BUSと、16ビット幅のZ-BUSを選択することが可能で、またMMUの機能により512KBアドレス空間と16MBアドレス空間が選べる。このバスの種別とサポートするアドレス空間の種別により4つの製品 (Z8108,Z8116,Z8208,Z8216) が計画された。のちにC-MOS化されたZ280に引き継がれた。
Z280
あまり採用される事無く、消え去った。ほとんど生産されなかったZ800CMOS化したもの。Z800のZ-BUSインターフェース・16MBアドレス空間サポート版であるZ8216の仕様をおおよそ引き継ぎ、起動時にコンフィギュレーションで他のバージョンの仕様もサポートする。
Z380
1993年2月5日に発表されたZ80互換の32ビットCPU。レジスタは従来の汎用レジスターに加えて16ビット追加部分を含めたグループが4バンク存在する。4GBのアドレス空間をリニアにアクセス可能。DRAMリフレッシュコントローラやINT0~3の割込みが追加されている。Z8000との互換性はない。
eZ80
3ステージ命令パイプラインを導入し、同一クロックのZ80に対して約3倍のパフォーマンスを持つ[5]。最大クロックスピードは50MHz、アドレスレジスタを24ビットに拡張しており、16MByteアドレッシング可能。

主な開発環境編集

Z80は、8080とバイナリレベルで互換性があり、そのDOSであるCP/M、及びCP/M上で動作する各種のソフトウェアが利用可能である。以下はCP/M上の動作を前提に供給されたものの一部である。

脚注編集

[ヘルプ]

注釈編集

  1. ^ 一例としてパチンコでは、保安通信協会による規制でメモリ等の制限が厳しいため、メインの制御CPUはそれに適したZ80が使われ続けている[1]
  2. ^ シャープLH0080/AにHがついたものは、DIPパッケージで使用温度範囲を拡大したものである

出典編集

  1. ^ パチンコ/パチンコ/パチスロ台ではいまだZ80が主流、そのため技術者が高齢化?
  2. ^ 嶋正利『マイクロコンピュータの誕生』p. 142
  3. ^ Z80・割り込みフラグの不具合に関するレポート Z80のIFF2に関するトラブル体験談”. 下間 憲行 (1997年6月17日). 2018年1月16日閲覧。
  4. ^ 「MZ-1500 オーナーズマニュアル」(付属説明書)に具体的な記述あり。
  5. ^ "eZ80 CPU User Manual" http://www.zilog.com/docs/um0077.pdf

参考文献編集

  • 嶋, 正利『マイクロコンピュータの誕生:わが青春の4004』岩波書店、1987年8月。ISBN 400006021X

関連項目編集

外部リンク編集