Zilog Z80

Zilog Z80
根據日期郵票於1976年6月製造的Z80
一般信息
發射1976年3月
設計Federico Faggin,Masatoshi Shima
普通製造商
表現
最大限度。 CPU時鐘速率2.5、4、6、8 MHz至10 MHz,CMOS變體高達20 MHz和二元兼容衍生物(從Zilog),最高為33和50 MHz
數據寬度8位
地址寬度16位
架構和分類
指令系統Z80
物理規格
電晶體
  • 8500(4μm工藝)
軟件包
插座
  • 不適用
歷史
前任
繼任者
Z80的原始dip40芯片包裝插圖

Z80是由Zilog作為創業公司的第一個產品引入的8位微處理器Federico Faggin於1974年底構思了Z80,由他和他的11名員工從1975年初開始開發。第一個工作樣本於1976年3月交付,並於1976年7月在市場上正式推出。隨著收入的收入。 Z80,該公司在接下來的兩年中建立了自己的芯片工廠,並成長為一千多名員工。

Zilog Z80是Intel 8080軟件兼容擴展和增強,並且主要針對嵌入式系統。儘管在該角色中使用,但Z80也成為從1970年代到1980年代中期的台式計算機家用計算機中使用最廣泛的CPU之一。它在軍事應用中也很常見,音樂設備(例如Roland Jupiter-8 )以及1970年代末和1980年代初的硬幣操作的街機遊戲,包括Pac-Man

Zilog將Z80許可給了美國的SentertekMostek ,這幫助他們進行了初始生產以及歐洲第二源製造商SGS 。該設計還由幾家日本,東歐和蘇聯製造商複製。由於NECToshibaSharpHitachi等大型公司開始生產該設備(或他們自己的Z80兼容克隆或設計),因此這贏得了Z80接受。

近幾十年來,Zilog已將嵌入式系統的不斷增長的市場重新集中在不斷增長的市場上,以及最近的Z80兼容的微控制器家族,該家族是完整管道的24位EZ80 ,其線性16 MB地址範圍已成功引入了更簡單Z180產品。

歷史

1976年5月的Z80廣告概述了其在8080的主要優勢。
原始Zilog Z80微處理器設計的照片耗竭nmos 。總死亡尺寸為3545×3350μm。外部周圍的藍色正方形是連接到外銷的墊子。該芯片是在1990年製造的。
一個44針四分之一平麵包裝中的CMOS Z80。

早期歷史

Fairchild的半導體,後來在英特爾物理學家工程師Federico Faggin一直在研究基本晶體管半導體製造技術。他還開發了用於內特爾的記憶和微處理器的基本設計方法,並領導了英特爾4004英特爾8080和其他幾項IC的工作。 Masatoshi Shima是4004和8080的主要邏輯和晶體管設計師,在Faggin的監督下, Ralph Ungermann負責定制的集成電路設計。

1974年初,英特爾(Intel)觀看了他們的微處理器,不如自己出售的產品,而是一種出售更多主要產品靜態RAMROM的方式。重組將許多以前獨立的部分置於萊斯·瓦達斯(Les Vadasz)的指導下,進一步稀釋了微處理器在公司中的位置。那一年, 1973 - 1975年的經濟衰退達到了高峰,英特爾(Intel)放棄了許多員工。所有這些都導致了法格金變得不安,他邀請Ungermann出去喝酒,並問他是否有興趣成立自己的公司。 Ungermann立即同意了,並且由於他在英特爾的少數情況下,八月或9月離開了,其次是Faggin,他在英特爾的最後一天是1974年的萬聖節。沒有實際的產品設計或金錢,他們告訴他等待。

這家新成型和未透露姓名的公司最初開始設計一個名為2001的單芯片微控制器。他們會見了Synertek ,以討論自己的生產力,而Faggin開始了解所涉及的成本時,很明顯,像這樣的低成本產品將無法與擁有自己生產線的公司(例如英特爾)的設計競爭。然後,他們開始考慮一個更複雜的微處理器,最初稱為Super 80,主要功能是使用A +5 V總線,而不是8080之類的設計使用的更常見的-5,+5和12 V。新設計旨在與8080兼容,但添加了摩托羅拉6800的許多不錯功能,包括索引寄存器和改進的中斷

埃克森投資,詳細的開發開始

在仍在設置的同時,《行業通訊》電子新聞聽說了它們,並在新成立的公司上發表了一個故事。這引起了埃克森美孚高科技投資部門埃克森美孚企業的關注。當時,在經濟衰退之中,幾乎沒有風險投資,整個行業在1975年的整個行業中總計1000萬美元(相當於2022年的5400萬美元)。來自埃克森美孚公司的人聯繫了這家尚未命名的公司,並安排了一次會議,最終導致他們在1975年6月提供了最初的500,000美元資金(相當於2022年的270萬美元)。

隨著資金的討論,以及將要建造的設計,Shima於1975年2月加入。Shima立即著手製作高級設計,並添加了自己的幾個概念。特別是,他利用自己在NEC微型計算機上的經驗來添加兩組處理器寄存器的概念,以便他們可以迅速對中斷做出反應。 Ungerman開始開發一系列相關的控制器和外圍芯片,以補充設計。

在此期間,Shima因能夠實時將邏輯概念轉換為物理設計而聞名。在討論提出的功能時,他經常會中斷,並說明如果太大,則否決了芯片並否決其添加的空間。設計時的第一次通行證已於1975年4月完成。Shima在5月初完成了邏輯佈局。 8月7日發布了第二版的邏輯設計,並於9月16日發行了公共汽車詳細信息。膠帶在11月完成,並將磁帶轉換為生產面膜,需要再過兩個月。

Faggin已經開始尋找生產夥伴。到這個時候,Synertek和Mostek都設置了可用於生產設計的耗竭模式生產線。 Faggin之前與Ansertek進行了交談,首先與他們聯繫。但是,Antertek總裁要求將公司獲得第二個源許可,使他們可以直接出售設計。 Faggin認為,這意味著即使他們建立自己的界限,他們也永遠無法競爭,並且協議失敗了。然後,他求助於Mostek,後者同意Zilog建立界限,並最終獲得了第二項來源協議。

在考慮了新公司的許多名稱並發現它們如此難以忘懷之後,即使一天之後,Faggin和Ungermann都無法回憶起它們,當Ungermann說“ Zilog呢?”時,Faggin和Ungermann正在圍繞基於“綜合邏輯”的想法來啟動想法。 Faggin立即同意,他們可以說這是“綜合邏輯中的最後一句話”。當他們第二天見面並立即回想起時,該公司的名字。

進入生產

第一批樣品於1976年3月9日從Mostek返回。到本月底,他們還完成了一個基於組裝商開發系統。此時,其中一些Z80支持和外圍IC正在開發中,其中許多是在第二年推出的。其中包括Z80 CTC(計數器/計時器),Z80 DMA(直接內存訪問),Z80 DART(雙異步接收器- 傳輸器),Z80 SIO(同步通信控制器)和Z80 PIO(並行輸入/輸出/輸出) 。

Z80於1976年7月正式推出。最早的客戶之一是Zilog未知的買家,曾在NEC工作。當時,日本電子公司以將我們的芯片設計和無牌照生產而聞名。 Zilog團隊對此感到擔心,Faggin提出了添加晶體管的想法,這些想法將被巧妙地修改以進行與視覺檢查所暗示的不同。 Shima圍繞設計添加了其中六個“陷阱”。一段時間後,NEC內的工程師告訴Shima,陷阱將其複制工作推遲了六個月。

成功的發布使Faggin和Ungermann能夠接近埃克森美孚(Exxon),以尋求資金來建造自己的工廠。該公司同意了,Zilog非常迅速地建立了生產線。這使他們能夠捕獲Z80銷售總額的60%至70%。隨著自己的生產線運行,Mostek被批准了自己的版本MK3880的銷售,該版本為Intel缺少的客戶提供了第二個源。當時,由於Zilog這樣的初創企業可能會倒閉,並使潛在客戶陷入困境,因此被認為是非常重要的。

與8080的比較

Faggin設計的指令集與8080兼容二進制,以便大多數8080代碼,尤其是CP/M操作系統和Intel的PL/M編譯器,用於8080(以及其生成的代碼),將在新的Z80 CPU上運行未經修改。 Masatoshi Shima設計了大部分微體系結構,以及Z80 CPU的門和晶體管水平,並在少數工程師和佈局人員的協助下。 CEO Federico Faggin實際上與兩個專門的佈局人員一起參與了Chip佈局工作。據Faggin稱,他每週工作80小時,以滿足金融投資者給出的緊迫時間表。

Z80比8080提供了許多改進:

  • 增強的指令集,包括:
    • 彙編指令助記符的更合乎邏輯,可理解和可讀的系統
    • 更靈活的16位數據移動(負載或LD)指令,至關重要的是包括堆棧指針SP
    • 更靈活的地址模式,用於輸入/輸出到外部外圍端口
    • 所有寄存器和內存的單位地址,包括位測試
    • 移動/旋轉在內存和註冊器以外的其他寄存器
    • 改進,更準確(比以前的8080) BCD算術
    • 旋轉記憶中BCD數字字符串的說明
    • 16位減法和8位否定
    • 程序循環
    • 程序計數器(PC)相對跳躍
    • 塊複製,塊輸入/輸出(I/O)和字節搜索說明。
  • 一個溢出標誌,可以更好地支持簽名的8和16位算術。
  • 新的IX和IY索引寄存器,帶有有關直接基礎+偏移地址的說明
  • 更好的中斷系統:
    • 一個更自動和一般的矢量化中斷系統模式2 ,主要用於Zilog的計數器/計時器線,DMA和通信控制器以及固定向量中斷系統,模式1 ,用於具有最小硬件的簡單系統(模式0為0 8080兼容模式)。
    • 不可掩蓋的中斷(NMI),可用於響應減速情況或其他高優先級事件(並允許簡約的Z80系統輕鬆在模式1中實現兩級中斷方案)。
  • 一個完整的重複寄存器文件,可以快速切換,以加快對中斷的響應,例如快速異步事件處理程序或多任務調度器。儘管它們並不是作為一般代碼的額外登記冊,但它們在某些應用中仍然使用。
  • 電源,時鐘生成和接口到內存所需的硬件較少,I/O
  • 單5伏電源(需要8080-5 V,+5 V和+12 V)。
  • 單相5伏時鐘(8080需要高振幅(9至12伏)非重疊的兩相時鐘)。
  • 內置DRAM刷新,否則需要外部電路,除非使用SRAM(更昂貴且密度較低(但更快))。
  • 非多路線的總線(8080的狀態信號多路復用到數據總線上)。
  • 一個僅清除程序計數器的特殊排位函數,因此可以在開發系統(例如循環模擬器)中使用單個Z80 CPU。

市場上的成功

Z80從8080及其後代(8085)接管了處理器市場,並成為最受歡迎且最廣泛使用的8位CPU之一。由於對其熟悉以及其芯片串行界面和中斷體系結構的熟悉,一些英國電信等組織仍然忠於8085的嵌入式應用程序。同樣, Zenith數據系統將8085與16位Intel 8088配對了其第一台MS-DOS計算機Zenith Zenith Z-100 ,儘管以前具有其開創性Z80基於Z80的Heathkit H89和Zenith Z-89產品的經驗。但是,其他計算機是將Z80與其他CPU集成的:帶有Motorola 68000的無線電Shack TRS-80型16 ,具有8088的DEC彩虹MOS 8502Commodore 128

Zilog後來生產出適合1980年代初期不斷增長的筆記本電腦市場的低功率Z80。英特爾生產了電池供電的便攜式計算機中使用的CMOS 8085(80C85),例如1983年4月從京都開采的筆記本電腦,也由Tandy(AS TRS-80型號100 ),Olivetti和NEC出售。然而,在接下來的幾年中,Z80的CMO版本(來自Zilog和日本製造商)也將在Amstrad NC100Cambridge Z88和Tandy自己的WP-2等產品中占主導地位。

Z80最初成功的關鍵也許是內置DRAM刷新,至少在CP/M以及其他辦公室和家用計算機等市場中。 (大多數Z80嵌入式系統都使用不需要刷新的靜態RAM 。)它也可能是其簡約的兩級中斷系統,或者相反,其一般的多級雛菊鏈中斷系統可用於維修多個Z80 IO芯片。這些功能允許使用更少的支持硬件和更簡單的電路板佈局來構建系統。

但是,其他人則聲稱其受歡迎程度是由於重複的寄存器允許快速上下文開關或更有效地處理諸如浮點數學之類的東西,而寄存器則較少。 (Z80可以在內部使用HL'Hl,De'de和BC'BC作為32位寄存器保留幾個這樣的數字,避免在計算過程中必須從較慢的RAM訪問它們。)

對於原始的NMOS設計,指定的上時鐘頻率極限從介紹性的2.5 MHz連續增加,通過眾所周知的4 MHz(Z80A),最大6(Z80B)和8 MHz(Z80H)。自1980年代後期以來,NMOS版本已成為10 MHz部分。開發了CMOS版本,其指定的上限限制範圍從4 MHz到今天出售的版本不等20 MHz。 CMOS版本允許內部狀態保留,沒有較低的頻率限制。目前分別指定了最多33和50 MHz的完全兼容衍生物HD64180 / Z180EZ80

設計

編程模型和註冊集

Z80的近似框圖:對於R的偏移或單獨的增量器,沒有一個超過單個16位臨時寄存器WZ的專用加法器(儘管增量器閂鎖也用作16位臨時寄存器,在其他情況下) 。 PC和IR寄存器放置在一個帶有可拆卸總線細分市場的單獨組中,以允許與主註冊庫並行更新這些寄存器。

Z80的編程模型和寄存器集是相當傳統的,最終基於DataPoint 2200的寄存器結構。 Z80被設計為由同一工程師創建的英特爾8080的擴展,而這又是8008的擴展。 8008基本上是DataPoint 2200的基於TTL的CPU的PMOS實現。

2200設計允許8位寄存器H和L(高和低)配對16位地址寄存器HL。在8080中,該配對也被添加到BC和DE Pairs中,而HL被推廣以允許用作16位蓄能器,而不僅僅是地址寄存器。 8080還引入了用於累加器操作的重要的8位即時數據模式,並為HL,BC和DE負載提供了16位數據。此外,現在可以使用直接地址在HL和內存之間進行直接16位複制。

Z80通過使所有16位寄存器,包括IX和IY,更通用,並允許所有這些對直接與內存複製16位複制。 Z80中的16位IX和IY寄存器主要旨在作為基礎地址登錄機構,其中特定的指令提供了添加到先前值的恆定偏移,但它們也可作為16位蓄能器的使用,除其他外。一個限制是,所有涉及IX或IY的操作組引用都需要一個額外的說明前綴字節,而是在使用HL的指令時至少添加了至少四個時鐘週期;有時,使用IX或IY的效率比僅使用8080模型寄存器的方法效率降低。 Z80還引入了一個新的簽名溢出標誌,並補充了8080的相當簡單的16位算法,並提供了針對簽名的16位算術的專用說明。

8080兼容的寄存器AF,BC,DE,HL被複製為Z80中的單獨寄存器文件,處理器可以快速(四個T態,任何Z80指令的最小執行時間)從一個銀行切換到一家銀行到其他;一項功能,可加快對單級,高優先級中斷的響應。 2200中也存在類似的功能,但從未在英特爾實施。雙寄存器集在嵌入式角色中非常有用,因為它改善了中斷的處理性能,但在個人計算機角色中發現了廣泛使用,作為複雜代碼(如浮點算術或家庭電腦遊戲)的附加通用寄存器。

重複的寄存器文件通常稱為“備用寄存器集”(通過某些登記寄存器文件,因為撇號字符用於在彙編器源代碼和Zilog文檔中表示它們)。這強調,只有一組可以隨時可尋址。但是,具有其標誌寄存器F的8位蓄能器A從“通用”寄存器對HL,DE和BC分叉。這是通過兩個單獨的說明來交換其訪問性的方法:EX AF,AF'交換僅註冊AF與AF',而EXX指令將三個通用寄存器對HL,DE和BC與他們的替代hl',de'和bc'交換。因此,累加器A可以與備用(或啟動)寄存器文件中的任何通用8位寄存器獨立交互,或者,如果HL'包含一個指針到達內存,則某些字節(de'and Bc'也可以傳輸內存和累加器之間的8位數據a)。

這可能會使程序員感到困惑,因為執行後EX AF,AF'或者EXX以前的備用(底漆)寄存器現在是主要寄存器,反之亦然。程序員判斷哪個集合在上下文中的唯一方法(在“播放計算機”的同時仔細檢查彙編器源文本,或者更糟糕的是,使用調試器瀏覽代碼)是追踪每個寄存器在每個寄存器進行何時進行的何處該程序中的點。顯然,如果在這些代碼段中進行許多跳躍和呼叫,除非仔細評論,否則很難很難判斷哪個寄存器是在上下文中的。因此,建議直接使用交換說明並在簡短的離散代碼段中使用。 Zilog Z280指令集包括JAFJAR如果備用寄存器在上下文中,則跳到目標地址的說明(因此正式識別了這種編程並發症)。

寄存器

Zilog Z80寄存器
15141312111009080706050403020100(位位置)
主要寄存器
A標誌AF (8位蓄能器和標誌)
BCBC (數據和地址寄存器)
DEde (數據和地址寄存器)
HLHL (16位累加器和地址寄存器)
替代寄存器
A'旗幟AF ' (8位累加器和標誌)
B'C'BC ' (數據和地址寄存器)
D'e'DE ' (數據和地址寄存器)
H'L'HL ' (16位累加器和地址寄存器)
索引寄存器
ixndex x
iyndex y
sps大頭ointer
其他寄存器
I偏僻的向量
Rr efresh計數器
程序計數器
個人電腦程序計數器
狀態註冊
SZ-H-p / vNCf滯後

與8080一樣,通常配對8位寄存器以提供16位版本。 8080兼容寄存器是:

  • AF:8位累加器(a)和標誌位(F)隨身攜帶,零,負,均等/溢出,半攜帶(用於BCD )以及一個添加/減去標誌(通常稱為N),也用於BCD
  • BC:16位數據/地址註冊或兩個8位寄存器
  • DE:16位數據/地址註冊或兩個8位寄存器
  • HL:16位累加器/地址註冊或兩個8位寄存器
  • SP堆棧指針,16位
  • PC:程序櫃檯,16位

Z80引入的新寄存器是:

  • IX:16位索引或基本寄存器的8位立即偏移
  • IY:16位索引或基本寄存器的8位立即偏移
  • I:中斷矢量基本寄存器,8位
  • R:DRAM刷新計數器,8位( MSB不計數)
  • AF':備用(或陰影)累加器和標誌(用Ex AF,AF'切換和外出
  • BC',DE'HL':備用(或陰影)寄存器(用EXX插入和外出
  • 四位中斷狀態和中斷模式狀態

刷新登記冊R,每次CPU獲取OPCODE(或OPCODE前綴,它在內部執行1字節指令)時會增加,並且與程序執行沒有簡單的關係。這有時已被用來在遊戲中以及軟件保護方案中生成數編號。在某些設計中,它也被用作“硬件”計數器。一個例子是ZX81 ,它可以通過觸發周圍的包裹中斷(通過將INT連接到A6)來跟踪電視屏幕上的角色位置。

中斷向量登記冊I,用於Z80特定模式2中斷(由IM 2操作說明)。它為128個輸入的服務例程地址提供了基本地址的高字節,該地址是通過在中斷確認週期中通過發送給CPU的索引選擇的;該索引僅僅是指向指向服務例程的列表間接地址指針的低字節部分。指針標識了特定的外圍芯片或外圍功能或事件,其中芯片通常在所謂的雛菊鏈中連接以進行優先分辨率。像刷新寄存器一樣,此寄存器有時也被創造性地使用。在中斷模式0和1中(或在不使用中斷的系統中)可以用作另一個8位數據寄存器。

說明LD A,RLD A,I影響Z80標誌寄存器,與其他所有LD(負載)說明。根據從刷新或中斷源寄存器加載的數據設置符號(位7)和零(位6)標誌。對於這兩個說明,均等/溢出標誌(位2)都是根據IFF2觸發器的當前狀態設置的。

微結構

儘管Z80通常被認為是八位CPU,但它具有四位ALU ,因此計算以兩個循環進行。

Z80彙編語言

數據點2200和英特爾8008

第一個Intel 8008彙編語言基於從DataPoint 2200設計繼承的非常簡單(但係統的)語法。該原始語法後來被轉變為一種新的,更傳統的裝配語言形式,用於同一原始8008芯片。大約在同一時間,新的組裝語言也擴展了以適應更高級的Intel 8080芯片中的其他地址模式(8008和8080共享了一個語言子集而不兼容二進制;但是,8008與DataPoint兼容了二進制2200) 。

在此過程中,助記符L,對於負載,被單詞加載存儲移動的各種縮寫所取代,並與其他符號字母相互混合。瘋字M,對於記憶(由HL引用),在助記符中被提起,以成為句法獨立的操作數,而註冊表的記錄和組合變得非常不一致。在指令助記符本身(LDA,LHLD等)或同時(LDAX B,Stax d等)中,通過縮寫的操作數(MVI D,LXI H等),在Mnemonic本身(LDA,LHLD等)內。

英特爾8008
數據點2200
英特爾8080
英特爾8085
Zilog Z80英特爾8086/
英特爾8088
大約之前1973大約1974年19761978
LBCMOV B,CLD B,CMOV CH,CL
--LDAX BLD A,(BC)--
LAMMOV A,MLD A,(HL)MOV AL,[BX]
LBMMOV B,MLD B,(HL)MOV CH,[BX]
--STAX DLD (DE),A--
LMAMOV M,ALD (HL),AMOV [BX],AL
LMCMOV M,CLD (HL),CMOV [BX],CL
LDI 56MVI D,56LD D,56MOV DL,56
LMI 56MVI M,56LD (HL),56MOV byte ptr [BX],56
--LDA 1234LD A,(1234)MOV AL,[1234]
--STA 1234LD (1234),AMOV [1234],AL
----LD B,(IX+56)MOV CH,[SI+56]
----LD (IX+56),CMOV [SI+56],CL
----LD (IY+56),78MOV byte ptr [DI+56],78
--LXI B,1234LD BC,1234MOV CX,1234
--LXI H,1234LD HL,1234MOV BX,1234
--SHLD 1234LD (1234),HLMOV [1234],BX
--LHLD 1234LD HL,(1234)MOV BX,[1234]
----LD BC,(1234)MOV CX,[1234]
----LD IX,(1234)MOV SI,[1234]

使用等效樣本或(對於8086)非常相似的負載和存儲指令的四個語法的插圖。 Z80語法使用圍繞表達式的括號表示該值應用作存儲地址(如下所述),而8086語法為此目的使用括號代替了括號代替括號。 Z80和8086都使用 +符號表示將常數添加到基本寄存器中以形成地址。請注意,8086不是Z80的完整超集。 BX是唯一可以用作指針的8086寄存器對。

新語法

由於英特爾聲稱對他們的組裝助記符擁有版權,因此必須為Z80開發新的組裝語法。這次使用了一種更系統的方法:

  • 所有寄存器和登記闆對都用其全名表示
  • 括號始終用於指示“記憶內容”(常量地址或可變指針取消給出),但一個跳躍指令JP(HL)除外。 JP(XY)只是加載新PC地址的JP(HL)的變體。
  • 所有負載和存儲說明都使用相同的Mnemonic名稱LD進行負載(返回簡單的Datapoint 2200詞彙);其他通用說明(例如Add and Inc),無論是解決模式或操作數尺寸,都使用相同的助記符。這是可能的,因為操作數本身俱有足夠的信息。

這些原則使找到所有新的Z80指令的名稱和表格以及舊Z80的正交化,例如LD BC,(1234).

除了命名差異,儘管基本寄存器結構有一定的差異,但Z80和8086語法實際上是大部分指令的同構。儘管8080程序可以通過Translator程序將8080程序翻譯成8086的彙編語言,但僅存在8080和8086的彙編語言之間的相當膚淺的相似性(例如MOV或字母X,用於擴展寄存器的字母X)。

指令集和編碼

Z80在可用的256個代碼中使用252作為單個字節opcodes(“ root指令”,這些字節均從8080繼承);剩下的四個代碼被廣泛用作OPODE前綴:CB和ED啟用額外的說明,DD或FD分別選擇IX+D或IY+D(在某些情況下沒有位移D)代替HL。該方案為Z80提供了大量的說明和登記冊; Zilog將它們分為158種不同的“指令類型”,其中78種與英特爾8080的“指令類型”(允許在Z80上運行所有8080個程序)。 Zilog文檔的更多組指令陷入以下類別(大多數來自8080,其他類別如塊和位指令,以及其他具有更廣泛的地址模式的8080指令,例如16位負載,I/O,旋轉/shifts和相對跳躍):

  • 負載和交換
  • 阻止轉移和搜索
  • 算術和邏輯
  • 旋轉和移動
  • 位操縱(設置,重置,測試)
  • 跳,打電話並返回
  • 輸入輸出
  • 基本CPU控制

原始Z80中沒有明確的乘法指令,儘管可以將寄存器A和HL乘以兩個的功率與添加A,A和添加HL,HL指令(同樣是IX和IY)。移位指示也可以乘以或劃分兩個功率。

添加,移位和旋轉的不同尺寸和變體對標誌的影響有所不同,因為複制了8080的大多數換旗特性。但是,在Z80中,8080(位2)的奇偶標誌位p p在Z80中稱為p/v(均等/溢出),因為它具有二下補體溢出指示器的其他目的,這是8080中缺少的功能。 Z80將其設置為指示溢出而不是奇偶校驗,而位指令仍然將其用作奇偶校驗標誌。 (這引入了Z80與為8080編寫的代碼的微妙不相容性,因為Z80有時表示8080表示奇偶校驗的簽名溢出,可能導致某些實用的8080軟件在Z80上失敗。)用於所有新的Z80特異性16位操作(ADC,SBC)以及8位算術操作,而16位操作是從8080繼承的(ADD,INC,DEC)不要影響它。另外,將標誌寄存器的位1(8080上的備用位)用作標誌n,指示執行的最後一次算術指令是扣除還是加法。 Z80版本的DAA指令(BCD算術的十進制調整累加器)檢查n標誌並相應地行為,因此(假設)減法後來,DAA與Z80相比,在舊的8080上將產生不同的結果。但是,這可能是8080上的錯誤代碼,如DAA僅在該處理器上添加定義。

Z80有六個新LD可以從內存中加載DE,BC和SP寄存器對的說明,並從這三個寄存器對加載內存 - 類似於8080。 R寄存器加載)。常規編碼的結果(帶有8080的常見)是可以從自己身上加載每個8位寄存器(例如LD A,A)。這實際上是NOP.

新的塊轉移指令可以從內存到內存或內存之間以及I/O外圍端口之間的64千字節移動。阻止說明LDIRLDDRl oa di ncrement/ d ecrement, r epeat)使用HL指向源地址,DE到目標地址,而BC則是字節計數器。字節從源到目的地複制,指針會增加或減少,並且字節計數器被降低,直到BC達到零為止。非重複版本LDILDD移動單個字節並撞到指針和字節計數器,如果它變為零,則重置P/V標誌。相應的內存到I/O指令INIR,INDR,OTIR,OTDR,INI,IND,OUTIOUTD類似地,除了B而不是BC外,還用作字節計數器。 Z80可以使用寄存器C將任何寄存器輸入並輸入I/O端口以指定端口。 (8080僅使用指令中指定的直接端口地址通過累加器A執行I/O;使用變量8080端口地址需要進行自修改的代碼技術。)

最後一組塊指令執行CP比較字節AT(HL)和累加器A之間的操作。不使用寄存器對DE。重複版本CPIRCPDR僅當BC終止於零或找到匹配時終止。 hl左指向字節之後(CPIR)或之前(CPDR)匹配字節。如果找不到匹配,則重置Z標誌。有不重複的版本CPICPD.

與8080不同,Z80可以跳到相對地址(JR代替JP)使用簽名的8位位移。只能測試這些新的兩字節的零和攜帶標誌JR指示。 (所有8080跳和通話,無論有條件與否,都是三字節說明。)專門用於程序循環的兩字節說明也是Z80的新手:DJNZ(如果n on- z ero,則d ecrement j ump)將簽名的8位位移作為直接操作數。 b寄存器被減少,如果結果為非零,則相對於PC的程序執行會跳躍;旗幟保持不變。要在8080上執行等效循環需要單獨DEC和有條件的跳躍(到兩個字節的絕對地址)指令(總計四個字節)和DEC改變標誌寄存器。

索引寄存器(IX/IY,通常縮寫的XY)指令對於訪問在固定異質結構(例如記錄)或固定的Offsets相對可變基礎地址(如遞歸堆棧框架)中有組織的數據很有用,並且還可以減少代碼通過使用非索引寄存器刪除多個簡短說明的需求,大小。但是,儘管與更簡單的操作的長/複雜“等效”序列相比,它們可能會在某些情況下節省速度,但它們會產生很多額外的CPU時間(例如,19個T型態,可以訪問一個索引的內存位置,而不是盡可能少11使用HL訪問相同的內存和INC指向下一個)。因此,對於數據的簡單或線性訪問,IX和IY的使用往往會更慢,並且佔據更多的內存。儘管如此,在“主要”寄存器都被佔用的情況下,它們可能會通過消除保存/還原寄存器的需求而有用。在這種情況下,他們正式無證件的8位一半(見下文)可能特別有用,因為它們比16位父母的速度較小。同樣,在原始Z80中,增加16位的說明並不是特別快(11個時鐘)(比8080/8085慢1個時鐘);但是,它們的速度大約是使用8位操作執行相同計算的兩倍,同樣重要的是,它們減少了註冊使用情況。程序員“戳”不同的偏移位移字節(通常是動態地計算出的)並不少見。這是自修改代碼的一個示例,這是幾乎所有具有非管道執行單元的早期8位處理器的常規練習。

索引寄存器具有平行指令JP (HL),那是JP (XY)。這通常是在類似堆棧的語言中可以看出的,在每個第四個單詞的末尾(包括語言的原子子例子)必須無條件跳回其線程解釋器例程。通常,此跳躍指令在應用程序中出現數百次,並使用JP (XY)而不是JP THREAD為每次出現保存一個字節和兩個T型態。這自然會使索引寄存器無法用於任何其他用途,否則需要不斷重新加載它會否定其效率。

這項為期10年的微編碼Z180設計最初可以負擔更多的“芯片區域”,從而允許實施略有效率(使用更寬的Alu ,除其他外);對於Z800Z280Z380 ,可以說類似的話。但是,直到2001年啟動了完全管道的EZ80 ,這些說明最終變得越來越多地效率,從技術上講可以使它們變得有可能,IE IE鑑於Z80編碼結合了進行8位讀取或進行8位讀取或編寫每個時鐘週期。

無證說明

索引寄存器IX和IY旨在作為靈活的16位指針,增強了操縱內存,堆棧框架和數據結構的能力。正式地,他們僅被視為16位。實際上,它們以與HL登記冊相同的方式作為一對8位登記冊實現,該登記冊可作為16位訪問或與H Igh和L OW寄存器分別訪問。二進制opcodes(機器語言)是相同的,但在新的OpCode前綴之前。 Zilog發布了針對預期功能的Opcodes和相關助記符,但沒有記錄一個事實,即每個允許操縱H和L寄存器的OPODE對於IX和IY寄存器的8位同樣有效。例如,OpCode 26H,然後是立即字節值(LD H,n)將將該值加載到H寄存器中。在使用IX寄存器的OpCode前綴DD之前,此兩字節說明將導致帶有相同值的IX寄存器中最重要的8位。一個值得注意的例外是類似的說明LD H,(IX+d)在同一指令中使用HL和IX或IY寄存器;在這種情況下,DD前綴僅應用於指令的(IX+D)部分。 XY寄存器的一半還可以為8位算術,邏輯和比較說明持有操作數,並保留常規的8位寄存器以供其他用途。無證件增量和降低索引寄存器的上半部分的能力使擴展正常索引指令的範圍變得容易,而無需訴諸於記錄的ADD/SBC XY,DE或者ADD/SBC XY,BC.

還有其他一些無證件說明。 Z80未檢測到無證件或非法的Opcodes ,並且具有各種效果,其中一些很有用。但是,由於它們不是指令集的正式定義的一部分,因此不能保證(或尤其可能)以每個無證件的OPCODE的方式使用相同的方式(或尤其有可能)。

錯誤

OTDR指令不符合Z80文檔。這倆OTDROTIR說明應該將攜帶(c)標誌未修飾的貨架留出。這OTIR說明正確運行;但是,在執行期間OTDR指示,隨身攜帶標誌取出了累加器(a)和最後輸出之間的偽造結果OTDR操作說明。

示例代碼

示例1:以下Z80彙編器源代碼適用於名為Hello_world的子例程。這是一個介紹性程序,它將打印到視頻顯示然後退出的消息。儘管很簡單,但它演示瞭如何格式化彙編器源代碼,並通過計算機操作系統與顯示硬件進行交互。這必然針對特定的計算機硬件,操作系統和彙編軟件。使用的示例是
TRS-80 Model 4運行TRSDOS/LS-DOS 6.X,由Tandy/Radio Shack和邏輯系統生產,大多數由Radio Shack或Misosys Inc.出售的大多數彙編器(I/Edtasm,Alds,Alds,Edas ,Edas或MRAS)與 - GC開關)。該配置的主要特徵即使在CP/m下,Z80彙編器也是通用的。

            
            
            
            
            
            
            
            
            
    
  
  
  
  
  
3000 3E 69
3002 EF 
3003 21 14 30
3006 3E 0A
3008 EF
3009 0E 0D
300B 3E 02
300D EF
300E 21 00 00
3011 3E 16
3013 EF
3014 48 65 6C 6C
3018 6F 2C 20 77
301C 6F 72 6C 64
3020 21 0D 0D
3023
 ; hello_world_TRS-80 Model 4
 ; Print "Hello, world!" then exit to TRSDOS Ready
 ;
 ; Entry registers: none
 ; Return registers: none
 ;
 ; values below are decimal unless suffixed by H
 ; the term "pseudo-op" means same as "assembler directive", is not Z80 code
 ;
 @CLS         EQU     105                 ; EQU pseudo-op sets @CLS text label = TRSDOS Supervisor Code
 @DSP         EQU     2                   ; set @DSP text label = TRSDOS SVC to send char to display
 @DSPLY       EQU     10                  ; set @DSPLY text label = SVC for text string display
 @EXIT        EQU     22                  ; set @EXIT text label = SVC for returning to TRSDOS Ready
;
              ORG     3000H               ; ORG pseudo-op sets standard start address under TRSDOS 6.x
START         LD      A,@CLS              ; CLS = Clear Screen, erase display and home cursor
              RST     40                  ; Z80 Restart instruction for system SVC processor, execute @CLS
              LD      HL,MSG              ; point to message string with HL (required by @DSPLY SVC)
              LD      A,@DSPLY            ; send text string to *DO Display Output device (video screen)
              RST     40                  ; execute @DSPLY SVC (13d byte needed to terminate string)
              LD      C,13                ; now send another carriage return, needed in reg C 
              LD      A,@DSP              ; to set off Hello message from TRSDOS Ready prompt
              RST     40                  ; once we exit to system
              LD      HL,0                ; indicate no error condition to Command Interpreter
              LD      A,@EXIT             ; return to TRSDOS Ready
              RST     40                  ; (stack integrity maintained, could as well have used a RET!)
 MSG          DB      'Hello, world!',13  ; DB = Define Byte pseudo-op assembles ASCII string to Z80 memory
 CR           DB      13                  ; 13d byte is ASCII carriage return char, moves cursor down
              END     START               ; END pseudo-op required by assembler 
                                          ; to produce transfer record to program entry point

示例2:以下Z80彙編源代碼適用於命名的子例程memcpy這將一個給定大小的數據字節從一個位置複製到另一個位置。重要:示例代碼無法處理目標塊重疊源的情況;一個嚴重的限制,但與某些應用無關的限制,例如,尤其是當源位於ROM和RAM的目的地時,因此它們永遠不會重疊。示例代碼效率極低,旨在說明各種說明類型,而不是速度的最佳實踐。數據塊一次被複製一個字節,數據移動和循環邏輯利用16位操作。此外,Z80有一個指令,可以執行整個循環(LDIR)。請注意,組裝的代碼與Intel 8080和8085 CPU兼容二進制代碼。

                     
                     
                     
                     
        
             
                     
             
                     
                     
                     
 1000            
 1000            
 1000 78         
 1001 B1         
 1002 C8         
 1003 1A         
 1004 77         
 1005 13         
 1006 23         
 1007 0B         
 1008 C3 00 10   
 100B
 ; memcpy --
 ; Copy a block of memory from one location to another.
 ;
 ; Entry registers
 ;      BC - Number of bytes to copy
 ;      DE - Address of source data block
 ;      HL - Address of target data block
 ;
 ; Return registers
 ;      BC - Zero
             org     1000h       ;Origin at 1000h
 memcpy      public
 loop        ld      a,b         ;Test BC,
             or      c           ;If BC = 0,
             ret     z           ;Return
             ld      a,(de)      ;Load A from (DE)
             ld      (hl),a      ;Store A into (HL)
             inc     de          ;Increment DE
             inc     hl          ;Increment HL
             dec     bc          ;Decrement BC
             jp      loop        ;Repeat the loop
             end

指令執行

每個指令均以通常稱為機器週期(M-Cycles)的步驟執行,每個指令都可以在三到六個時鐘之間(T-States)進行。每個M-Cycle大致對應於一個內存訪問或內部操作。實際上,許多說明在下一個指令的M1中結束,該指令被稱為“獲取/執行重疊”

典型說明的示例(r =讀,w =寫)
全部的

M-Cycles

T州操作說明M1M2M3M4M5M6
14INC BOPCODE
27ADD A,nOPCODEn
311ADD HL,DEOPCODE內部的內部的
415SET b,(HL)字首OPCODER(HL),設置W(HL)
519LD (IX+d),n字首OPCODEdn,添加W(ix+d)
623INC (IY+d)字首OPCODEd添加R(IY+D),IncW(iy+d)

Z80機循環是通過內部狀態機對3、4、5或6個T型構建的內部狀態機進行測序的,具體取決於上下文。這避免了繁瑣的異步邏輯,並使控件信號在各種時鐘頻率下始終如一。這也意味著必須使用更高的頻率晶體,而沒有機器週期的細分(大約高2-3倍)。它並不意味著對內存訪問時間的要求更嚴格,因為高分辨率時鐘可以更精確地控制內存時間,因此內存可以在更大程度上與CPU並行活動,從而更有效地利用可用的內存帶寬。

一個中心示例是,對於OpCode Fetch ,Z80將兩個完整的時鐘週期結合到了內存訪問周期(M1-Signal)中。在Z80中,該信號持續典型指令執行時間的相對較大的部分,而在6800、6502或類似的設計中,該週期通常會持續使用時鐘週期的30-40%。使用內存芯片可負擔性(即1980年代的訪問時間約為450-250 ns),通常確定最快的訪問時間,這意味著此類設計被鎖定到比Z80的時間更長的時鐘週期(即內部時鐘速度更低)。

與現代微處理器中使用的狀態機子循環(時鐘週期)相比,記憶通常很慢。因此,可以安全地用於嵌入式設計中的最短機器週期通常受到內存訪問時間的限制,而不是最大CPU頻率(尤其是在家庭計算機時代)。但是,在過去的幾十年中,這種關係逐漸改變,尤其是關於SRAM 。因此,諸如EZ80之類的無循環單週期設計變得越來越有意義。

刷新寄存器R的內容在地址總線的下半部分發出,同時CPU解碼並執行提取的指令。在刷新期間,中斷寄存器的內容被發送在地址總線的上半部分。

兼容的外圍設備

Zilog引入了Z80的許多外圍部件,這些零件都支持Z80的中斷處理系統和I/O地址空間。其中包括計數器/計時器通道(CTC),SIO(串行輸入/輸出),DMA(直接內存訪問),PIO(並行輸入/輸出)和飛鏢(雙異步接收機 - 傳輸者)。隨著產品線的發展,引入了這些芯片的低功率,高速和CMOS版本。

像8080、8085和8086處理器一樣,但是與摩托羅拉6800和MOS Technology 6502等處理器不同,Z80和8080具有單獨的控制線和地址空間,用於I/O說明。雖然某些基於Z80的計算機(例如Osborne 1)使用了“摩托羅拉風格”內存映射的輸入/輸出設備,但通常使用I/O空間來解決與Z80兼容的許多Zilog外圍芯片之一。在I/O讀取或I/O寫操作的定時期間,Z80會自動插入一個等待週期。 Zilog I/O芯片支持Z80的新模式2中斷,這些模式簡化了大量外圍設備的中斷處理。

Z80被正式描述為支持16位(64 KB)的內存地址,以及8位(256個端口)I/O-地址。實際上,所有I/O指令實際上主張了整個16位地址總線。 OUT(C),REG和REG,(c)將整個16位BC登記冊的內容放在地址總線上;將(n),A和A,(n)中的A寄存器的內容放在地址總線的B8 – B15上,在地址總線的B0 – B7上將A寄存器的內容放在B8 -B15上。設計師可以選擇在I/O操作上解碼整個16位地址總線,以利用此功能,或者使用地址總線的高度一半選擇I/O設備的子圖。此功能還用於最大程度地減少解碼硬件要求,例如在Amstrad CPC / PCWZX81中。

第二來源和衍生物

第二來源

Mostek為Zilog生產了第一個Z80,它以MK3880為第二個源。 SGS-Thomson(現為Stmicroelectronics )也是其Z8400的第二源。 Sharp和NEC分別為NMOS Z80,LH0080和μPD780C開發了第二個來源。 LH0080用於由夏普和其他日本製造商製造的各種家用計算機和個人計算機,包括Sony MSX計算機以及Sharp MZ系列中的許多計算機。 Sharp分別以4MHz和6MHz的頻率開發了LH0080A和LH0080B。

東芝進行了CMOS-version,即tmpz84c00,據信(但未驗證)Zilog也用作其自己的CMOS Z84C00的設計。 NMO和ROHM Electronics製造的NMOCMOS還製作了Goldstar (現為LG )(現為LG)和BU18400系列Z80-CLONE(包括DMA,PIO,CTC,DART和SIO)和BU18400系列的Z80芯片。

東德,製造了Z80的無牌克隆,被稱為U880 。它被廣泛用於機器人和VEBMikroelelektronikMühlhausen的計算機系統(例如KC85-系列)以及許多自製的計算機系統中。在羅馬尼亞,可以找到另一個未經許可的克隆,稱為MMN80CPU ,由Microelectronica生產,用於Tim-S,HC,Cobra等家用計算機。

另外,在蘇聯創建了幾個Z80克隆,值得注意的是T34BM1,也稱為Erumum立858-1 (平行蘇聯8080-Clone-Clone KR580VM80A )。第一個標記用於製作序列,而第二個則必須用於更大的生產。但是,由於1980年代後期蘇聯微電子的崩潰,T34BM1的t34bm1s遠高於生度。

衍生物

與原始Z80兼容
  • Hitachi開發了HD64180 ,這是CMO中的微編碼和部分動態的Z80,具有芯片外圍設備和簡單的MMU,提供了1 MB地址空間。後來,它是由Zilog的第二種來源的,最初是Z64180,然後以稍微修改的Z180的形式來源,該Z180的形式具有總線協議和時機,更好地適應了Z80外圍芯片。 Z180已被維護並以Zilog的名稱進行了進一步開發,最新版本基於具有非常低功率的Draw和EMI(噪聲)的完全靜態S180/L180核心。
  • 東芝開發了84引腳Z84013 / Z84C13和100 PIN Z84015 / Z84C15系列“智能外圍控制器”,基本上是普通的NMO和CMOS Z80核心,具有Z80外圍設備, WatchDog Timer ,W​​atchDog Timer,witchdog Timer , power on Reset ,以及在同一CHIP上等待狀態生成器。由鋒利和東芝製造。這些產品今天是由Zilog推出的。
  • 1994年推出的32位Z80兼容的Zilog Z380用於電信設備。
  • Zilog在2001年引入了具有8/16/24位單詞長度和線性16 MB地址空間的完全管道Z80兼容EZ80 。它以On on Chip SRAM閃存的版本以及集成的外圍設備介紹。一個變體具有芯片Mac(媒體訪問控制器) ,可用軟件包括TCP/IP堆棧。與Z800和Z280相反,只有一些添加的說明(主要是LEASPEAS和可變地址16/24位加載),但是指令是在2到11倍之間的時鐘週期的2到11倍,如該時鐘週期的高效原始Z80(平均值約3-5次)。目前,它針對高達50 MHz的時鐘頻率指定。
  • 川崎開發了兼容兼容的KL5C8400,大約是原始Z80的時鐘週期效率的1.2-1.3倍,最高為33 MHz。川崎還生產KL5C80A1X家族,該家族具有外圍設備以及芯片上的小公羊。它的時鐘週期大約與EZ80一樣有效,並且最高可達10 MHz(2006)。
  • NECμPD9002是與Z80和X86家族兼容的混合CPU。
  • 中國的動作半導體的音頻處理器芯片家族(ATJ2085等)包含Z80兼容的MCU ,以及24位專用DSP處理器。這些芯片用於許多MP3和媒體播放器產品。
  • T80(VHDL)和TV80(Verilog)合成軟件可從OpenCores.org獲得。
  • 1980年宣布的國家半導體NSC800在許多望遠鏡Timmann(TST)電子密碼機和佳能X-07中使用。 NSC800與Z-80指令集完全兼容。 NSC800使用像8085這樣的多路復用總線,但與Z80不同。
不兼容
  • 東芝TLCS 900系列高體積(主要是OTP )微控制器基於Z80;他們共享相同的基本BC,DE,HL,IX,IY寄存器結構,並且在很大程度上相同的說明,但不兼容二進制,而先前的TLCS 90與Z80兼容。
  • NEC 78K系列微控制器基於Z80;他們共享相同的基本BC,DE,HL寄存器結構,並且具有相似的(但命名不同)的說明;不兼容二元。
部分兼容
不再產生
  • ASCII Corporation R800MSX Turpor計算機中使用的快速16位處理器。它是軟件 - 但與Z80不兼容硬件(信號定時,引腳和引腳功能與Z80不同)。
  • Zilog的NMOS Z800和CMOS Z280是16位Z80實現(在HD64180 / Z180之前),具有16 MB頁的MMU地址空間;他們在Z80指令集中添加了許多正交化和向地址模式。微型計算機功能(例如用戶和系統模式,多處理器支持,在芯片MMU上,芯片指令和數據緩存等等)被認為比(通常是面向電子設備的)嵌入式系統設計器的功能和支持更複雜;這也使預測指令執行時間非常困難。
  • 某些街機遊戲(例如Pang / Buster Bros)使用VLSI Technology生產的加密“ Kabuki” Z80 CPU,其中解密鍵存儲在其內部電池支持的內存中,以避免盜版和非法盜版遊戲。

值得注意的用途

台式計算機

Z80A在許多遊戲機中用作CPU,例如此ColeCovision

在1970年代末和1980年代初,Z80與CP/M操作系統一起使用了許多相當匿名的面向企業的機器,這一組合在當時佔據了市場。運行CP/M的Z80商務計算機的四個著名示例是Heathkit H89 ,Portable Osborne 1Kaypro系列和Epson QX-10 。昂貴的高端奧特羅納附件鮮為人知。一些系統使用多任務操作系統軟件(例如MP/MMorrow的Micronix)在幾個並髮用戶之間共享一個處理器。

Sinclair ZX頻譜,使用Z80時為3.5 MHz的Z80

引入了多台家庭計算機,該計算機使用Z80作為主處理器或插件選項,以允許訪問為Z80編寫的軟件。值得注意的是TRS-80系列,包括原始模型(後來重試的“ Model I”), Model IIModel IIIModel 4 ,它們配備了Z80作為其主處理器,以及一些(但不是全部)其他(但不是全部)將Z80用作主處理器或輔助處理器的TRS-80型號。其他值得注意的機器是DEC Rainbow 100 ,而Seequa Chameleon則均配備Intel 8088和Z80 CPU,以支持8位CP/M-80應用程序在Z80上運行的應用程序或自定義MS-DOS這與8088上運行的PC DOS應用程序並不完全兼容。

1981年,MultiTech(後來成為ACER )引入了Microprofessor I ,這是一個簡單且廉價的Z80微處理器培訓系統。目前,它仍然由英格蘭南安普敦的Flite Electronics International Limited製造和出售。

1984年,東芝在日本和澳大利亞推出了東芝MSX HX-10。

1985年,夏普(Sharp)介紹了HotbitGradiente介紹了專家,該專家直到1980年代後期才成為巴西的主要8位家用計算機。

便攜式和手持計算機

隨著處理器的CMOS版本的可用性,在更輕的電池操作設備中使用Z80變得更加普遍。它還啟發了其他基於CMO的處理器的開發,例如Sharp的LH5801。 Sharp PC-1500是1981年發布的基本可編程計算機,隨後是1986年改進的Sharp PC-1600和1991年的Sharp PC-E220。 。可以像台式機一樣運行CP/M操作系統的筆記本電腦,然後在1984年與Epson PX-8 Geneva一起使用,1985年Epson PX-4Bondwell-2 。雖然隨後幾年的筆記本電腦市場轉移到了更強大的Intel 8086處理器和MS-DOS操作系統,但仍引入了較長電池壽命的輕質Z80系統,例如1988年的Cambridge Z88Amstrad NC100在1992年。Z80衍生的Z8S180也進入了1993年的早期筆專門的個人數字助手Amstrad Penpad PDA600。位於香港的VTECH生產了一系列基於Z80的小型筆記本電腦,稱為“ Lasers”。最後兩個是激光PC5和PC6。 Cidco MailStation Mivo 100於1999年首次發布,是一種獨立的便攜式電子郵件設備,帶有基於Z80的微控制器。 Texas Instruments使用圍繞Z80核心建造的東芝處理器生產了一系列袖珍組織者(2000年結束);其中的第一個是Ti PS-6200,在長期生產了幾十個模型之後,他們的Pocketmate系列中都達到了高潮。

嵌入式系統和消費電子產品

基於Z80的PABX 。 Z80是左側的第三個芯片,到芯片的右側,上面有手寫的白色標籤。

Zilog Z80長期以來一直是嵌入式系統微控制器內核中流行的微處理器,如今它仍然在廣泛使用中。 Z80的應用包括消費電子,工業產品和電子樂器的用途。例如,Z80用於開創性的音樂合成器Prophet-5 ,以及第一個MIDI合成器先知600Casio在其PV-1000視頻遊戲機中使用了Z80A。

1980年代初期的街機視頻遊戲,包括街機遊戲Pac-Man ,都包含Z80 CPU。

Z80用於SEGA的主系統遊戲齒輪控制台。 SEGA Genesis包含一個Z80,其8 kb的RAM與MC68000 Main CPU並行運行,它可以直接訪問系統的聲音芯片和I/O(控制器)端口,並且具有切換的數據路徑68000的主存儲總線(提供64 KB主RAM,軟件盒和整個視頻芯片的訪問);除了提供與主系統遊戲的向後兼容性外,Z80還通常用於在Genesis軟件中控制和播放音頻。

Z80 CPU也用於來自德克薩斯州儀器的開拓性和流行的TI-8X圖形計算器中,從1990年開始使用TI-81,該TI-81的具有2 MHz為2 MHz的Z80。該系列中的大多數高線計算器從TI-82TI-85開始,其Z80 CPU在6 MHz或更高時將其Z80 CPU計時。 (一些具有TI-8X名稱的型號使用其他CPU,例如M68000,但絕大多數是基於Z80的。在這些基礎上,可以以Z80機器語言代碼的形式運行組裝或編譯用戶程序。 )截至2023年推出的TI-84 Plus系列仍在生產中。2015年推出的TI-84 Plus CE系列使用了Z80衍生的Zilog EZ80處理器,截至2023年,Ti-84 Plus CE系列使用了Z80衍生的Zilog EZ80處理器。

在1980年代後期,一系列名為“ Aon”的蘇聯座機手機以Z80為特色。這些手機使用呼叫者ID ,基於呼叫者,速度錶盤等不同的鈴聲擴展了座機的功能集。在90年代的下半年,這些手機的製造商切換到8051兼容的MCU,以減少功耗並防止緊湊的牆壁功率適配器過熱。

也可以看看