Talk:Zilog Z80

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing  
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.


It also turned out to be quite useful for hard-optimized manual assembly coding. (in section Programming model and register set)

Can somebody tell me what this means? (They don't mean "hand-optimized", do they?)


--thundt (talk) 17:30, 30 April 2009 (UTC)


I did not find information about the coprocessors. Like 8080, Z80 could not multiply and divide. Was created the firm arithmetical coprocessor, such as i8231? And the floating-point-coprocessor of as i8232? Or Z80 could use those developed Of intel for i8080 coprocessors? Marlagram (talk) 17:20, 1 June 2009 (UTC)

Soviet Clones[edit]

I've done a minor edit to the article. I've removed mentioning of KR580 CPU which is irrelevant to this article, as it was i80 clone. T34 and 1858 were not "slightly" different than original z80's, but complete copies. T34's were German made chips (U880?) put cased by Angstrem fab in Soviet Union. 1858 was supposed to be completely built by Angstrem, but I can't find more info on this. —Preceding unsigned comment added by (talk) 19:05, 1 June 2009 (UTC)

original research[edit]

I've tagged this article with "original research" because there are vast amounts of text with no distinct references. There are many examples of strong claims with no references:

  • "The Z80 quickly took over from the 8080 in the market," where "quickly" is a vague weasel word, as is "market".
Fixed Removed "quickly", and sourced statement. --LjL (talk) 13:38, 17 July 2009 (UTC)
  • The source code is completely unreferenced and un-verified
Which source code? Do you mean the table comparing opcodes of related processors? --LjL (talk) 13:38, 17 July 2009 (UTC)
Yes, that source code. The caption says this is a small program; nothing there is sourced, and it's almost completely without context anyway. -- Mikeblas (talk) 06:41, 21 July 2009 (UTC)
Uhm, but the caption does not say it's a small program...? It merely says it's an illustration of four syntaxes - and I personally doubt it might be a program, anyway, as I don't know of many programs made entirely of "LD" instructions. I've sourced the Z80<->8080 part, anyway. --LjL (talk) 14:58, 22 July 2009 (UTC)
  • The Masatoshi Shima quote is un-cited and should be deleted immediately until a reference for the quotation is found.
Fixed Quote removed. --LjL (talk) 17:00, 17 July 2009 (UTC)
  • "The bit set, reset, and test instructions are well adapted to I/O control." is a matter of opinion.
Fixed Assertion removed. It'd probably be more relevant on an article specifically about such kinds of instructions. --LjL (talk) 18:34, 17 July 2009 (UTC)
  • There are assertions without basis, such as "because the flag-influencing properties of the 8080 had to be copied for compatibility"
Fixed Changed into "were copied", without giving a reason. I suppose it can be cited if it's still very controversial notwithstanding the toning-down. --LjL (talk) 01:03, 18 July 2009 (UTC)
  • The "Undocumented instructions" section is dubious: documenting them here makes them documented. It doesn't scope the lack of documentation, nor the vendors which did or did not implement the unnamed op-codes.
N I don't agree. "Undocumented instruction" customarily means an instruction that's not documented by the maker; that's an old and definitely attested usage of the term, so much that the very Illegal opcode article on Wikipedia gives it as an alternative term. It's quite obvious that if someone knows about them, then they are "documented" somewhat, but this is not predicate logic. --LjL (talk) 17:50, 17 July 2009 (UTC) Anyway, I've added citations for the main instructions described, as well as to substantiate the use of the term itself. --LjL (talk) 00:25, 18 July 2009 (UTC)
Even so, that the op-codes were un-documented by the maker is not too easy to source. "illegal opcode" isn't appropriate, since the opcode is legal, just not documented. "implementation defined" would probably be best. -- Mikeblas (talk) 06:41, 21 July 2009 (UTC)
Except that it's a neologism as far as processors instructions go, and as far as I can see, and most certainly not the WP:Common name for this. A Google Books search gives me naught for Z80 and implementation defined. "Implementation-defined" is a term that is often used for C/C++ implementations where things aren't clearly defined by the ANSI standard. It's not routinely used for undocumented processors instructions. "Undocumented instructions", on the other hand, is. I'm sure that, after all the fuss you made about alleged original research, you wouldn't want to do any yourself - so, let's stick to the well documented "undocumented instructions". --LjL (talk) 13:09, 21 July 2009 (UTC)
It's quite easy to determine if certain instructions/opcodes are undocumented; check the processor's databooks. If the instructions/opcodes are not documented by the manufacturer but have been documented by others, they are by industry terms "undocumented". The "undocumented" opcodes for Zilog processors such as the Z80, Z180, etc have actually been very well documented by experts. A large amount of this information is available at [1] --Tothwolf (talk) 21:34, 21 July 2009 (UTC)
  • The "Instruction execution" section is entirely un-cited, and it's entirely possible that it also applies to only certain vendor's implementations of the processor, or certain versions of the processor from the same vendor
It'll need to be sourced, but keep in mind the article is primarily about the Zilog Z80, so what matters to that section is that those bits of information are true for that vendor. And I know that they are (but again, yes, it needs sourcing), as those timings were often heavily relied upon by programmers. --LjL (talk) 13:38, 17 July 2009 (UTC)
Doing... A citation about that is added. --LjL (talk) 14:51, 18 July 2009 (UTC)
  • The claim that a certain list of processors is "fully compatible with the original Z80" is very substantial, and deserves references.
Fixed Added references for the claim about the Z180, 64180, 84013 - wording removed in other cases where it's barely relevant anyway --LjL (talk) 15:21, 20 July 2009 (UTC)
  • "partially compatible" is weaselly.
Fixed Removed the "partially", although generally speaking I don't find it very weaselly (a processor can be compatible with another only when restricting to a subset of instruction, but it's probably not an encyclopedia's job to explain that in full detail). But in this case, I agree, it was a bit weaselly ("they're not binary compatible at all, but they're still partially compatible"). Calling them "derivatives" is enough. --LjL (talk) 13:38, 17 July 2009 (UTC)
  • "non-compatible" deserves references
Fixed Referenced it. --LjL (talk) 15:21, 20 July 2009 (UTC)
  • "prduced in large numbers" is unreferenced and weaselly
Where does it say that? --LjL (talk) 18:28, 17 July 2009 (UTC)
  • "notable uses" is completely unreferenced
Doing... References are in the process of being added. --LjL (talk) 17:00, 17 July 2009 (UTC)
Not all of the TRS-80s were Z80 based. The TRS-80 Models I, II, III, 4, and 4p certainly were. The Model II used a Z80 but could also accept a Motorola 68000 processor card. The Model 16 (which looks similar to a Model II) used a Motorola 68k but also used a Z80 for I/O purposes. The TRS-80 Color Computer line used the Motorola 6809 and the Model 100 used the Intel 80C85 (which is mostly compatible with the Z80).
Not all of the Sharp MZ systems used a Zilog Z80, some of them (the MZ-700 for certain) used the Sharp-produced LH0080 Z80 clone (which was also used in many other Z80 compatible systems from the time period).
--Tothwolf (talk) 22:24, 17 July 2009 (UTC)
Fixed Specified that not all models necessarily have a Z80. I think more specific information should only be provided in the respective articles. --LjL (talk) 14:30, 18 July 2009 (UTC)
I'm not sure... I don't think its fair to say most of the TRS-80 models were Z80 based, but maybe roughly half of the models were. The Sinclair ZX81 also used the NEC µPD780C in large numbers, but like many manufactures, Sinclair seems to have also used genuine Z80s as well. --05:57, 19 July 2009 (UTC)
  • Several of the footnotes contain assertions which should be referenced; #7, #9. #8 is synthesis. #6 mentions some "Special assembler", which seems quite remarkable and should be referenced.
I'm not sure which references you mean now... #7 has been added by me, and it is a reference, so I assume you mean some others. I had assumed they were all quotations from the reference "Zilog Components Data Book", but I suppose some might not be (some don't especially sound like they are, admittedly). --LjL (talk) 13:38, 17 July 2009 (UTC)
Doing... I've fixed the one about a "special assembler", anyway, by providing sources. --LjL (talk) 00:53, 18 July 2009 (UTC)

There are many other issues in this article. I didn't initially enumerate any of these issues on the talk page here because I thought the problems with the article to be obvious per Wikipedia policies, and do so now only because clarification was requested. -- Mikeblas (talk) 04:58, 17 July 2009 (UTC)

Well, that particular template (as opposed to "Unreferenced" or "Refimprove" for instance) does require explaining the issue on the talk page. Thanks for doing it.
If you don't mind, I'll use this section as a sort of to-do list, so my comments may change after changes to the article. --LjL (talk) 13:38, 17 July 2009 (UTC)
I think a significant of your concerns has either been addressed or been tackled to the point where the reasonable assumption is that the statements in the article are not original research, but are merely in need to be sourced. Therefore, I'm changing the tag from Template:Original research to Template:Refimprove at this point. --LjL (talk) 22:53, 17 July 2009 (UTC)
What you call a "table" isn't really a table; it's source code of an algorithm re-implemented in different languages. The whole section is speculative and unreferenced. While you've sourced a lot of things in the article, you've really improved the problem: it's full of speculative and arguable opinion. -- Mikeblas (talk) 05:31, 19 July 2009 (UTC)
WP:SOFIXIT, but don't go around removing whole sections at random. Thank you. I have addressed part of the concerns you expressed, and I have stated my intention to address the rest. If you have not expressed the "right" concerns, that's your problem, not mine. Find sources. I have shown that sources could be found for a lot of the stuff that you just labeled "original research". Have you looked at the documentation for the template you used? It says: "This template should not be applied without explanation on the talk page, and should be removed if the original research is not readily apparent when no explanation is given". You treated me almost as if you were doing me a favor by caring to explain what your problems with the article were. That is not the case. Do you actually have evidence that stuff you're removing is original research? If it's just unsourced, then help source it, not remove it. Thanks. --LjL (talk) 13:22, 19 July 2009 (UTC)
I fixed it by removing the material. Original research is not permitted here. There's nothing notable about the uses; the choice of this part (if this part really was the one used) didn't make most of the listed products materially different. Even stipulating that the products are using this processor, is that fact encyclopedic in any way? Are you asking me to provide a reference to show that some material isn't referenced? How would I possibly "prove" that? This article is making claims about several companies and dozens of products. It's irresponsible to publish them without verifying they're true. So, let's not publish them until we know them to be true. That's why a deletion is in the best interest of the site and its readers.
Then if that's what you think, feel free to lobby for modifying WP:PRESERVE (don't expect my help with that, though...). But while it's there, please respect it. This is hardly a biography of living persons or anything sensitive, and I had already indicated my intention to source the problematic parts, and you can clearly see that I'm doing it. Honestly, I believe you've been exceptionally rude. --LjL (talk) 13:04, 21 July 2009 (UTC)
Sorry you feel like it was a favor. The reason I didn't initally provide a comment was because I thought the fact that the article was OR was obvious: nothing is referenced, strong claims are everywhere, there's lots of POV, and there are many weasel-isms. Given a punch list tends to make only those sections identified better, while other problems persist. -- Mikeblas (talk) 06:26, 21 July 2009 (UTC)
So let's blank the whole article, aye? --LjL (talk) 13:10, 21 July 2009 (UTC)

Another derivative[edit]

ROHM Electronics manufactured a derivative with part name BU184C00. I do own one, plastic 40-DIP:


Z80CA CPU 806 809A I'm not sure how to include this part in the main page so I leave this comment here. —Preceding unsigned comment added by (talk) 19:57, 20 January 2010 (UTC)

Notable uses[edit]

I wonder my changes to the notable uses in desktop computers were reverted, because I thought it made sense to mention 2 of the most well known machines featuring that cpu (which I would think is a "notable use"). Even more so when it seems worth mentioning machines (like the C128) which only used that cpu as kind of an add on. (talk) 14:15, 3 August 2010 (UTC)

See the edit comment. We have a list of popular Z80 computers. The ones specifically listed in the article should be notable in some way; for example, it is peculiarly notable that manufacturers of computers with other processors thought that access to Z80 programs was commerically worth developing add-ons for a Z80. If we don't use the links, pretty soon this article will be overrun with everyone's favorite Z80 computer and it will be useless as an article. --Wtshymanski (talk) 15:16, 3 August 2010 (UTC)

Z-80 price[edit]

The Zilog Z-80 was more expensive than the Intel 8080. This October 1977 mail order advertisement. lists the Z-80 for $36.95 and the 8080A for $15.95. The October Jameco Electronics ad in Popular Electronics listed the Z-80 for $24.95 and the 8080A for $10.95. There were many mail order suppliers and pricing was very completive. The Z-80 price was always higher than the 8080 price. I uploaded the advertisement because it used a large type font; most ads were in 6 point or smaller type. -- SWTPC6800 (talk) 03:47, 3 November 2010 (UTC)


In the picture, it show that Zilog is a Exxon partner, is that true? -- 16:51, 8 February 2011 (UTC)-- 16:51, 8 February 2011 (UTC) —Preceding unsigned comment added by (talk)


In case anyone thinks the FAOL banner above is useful for improving this article, it appears the Italian Wikipedia version of the Z80 article is based on translation of the Sept. 2010 edition off en.wikipedia. The Italian Wikipedia doesn't seem to mind using "loc cit" in footnotes, but somehow I don't think that's the key to its featured article status there. --Wtshymanski (talk) 19:15, 13 May 2011 (UTC)

Suggest merge[edit]

The Sharp and NEC second-source parts have about 1 paragraph each. Should these not be merged to the present list of second-source parts? If we're hurting for space we could delete the description of microprocessors that aren't from Zilog and that dno't have any compatibility with the Z80. --Wtshymanski (talk) 13:48, 11 July 2011 (UTC)

already merged by the time I got to it :P Sn1pe! (talk)(edits) 00:11, 28 January 2014 (UTC)

Z80 In-Circuit Emulator[edit]

Was wondering if there is scope here for some in-depth discussion of some of the Z80's more interesting attributes. Here is my context : I met the Z80 in the late 70's and it was love at first sight (after I'd fallen out with the 6502). The first detail which I liked were the tri-statible control lines - particularly the address bus. Instantly I recognized the potential for a low-cost in-circuit emulator using a minimal architecture at a time when it wasn't easy to persuade my then employer to part with hundreds of pounds at a moment's notice. So I set to work and developed a fully-functional Z80 ICE in 3 weeks just in time to present a paper on it at Loughborough University in England (around 1978). Anyway, it would be nice to resurrect it (modernized of course) if anybody is interested.DkellyZ80 (talk) 20:17, 21 August 2013 (UTC)

Built-in FOR loops; the DJNZ instruction[edit]

Is my old mind deceiving me, or did the Z80 have a built-in "FOR" loop instruction? As I recall the assembler was "DJNZ foo" (Decrement and Jump if Non-Zero to foo). It would decrement the B register and jump (back, usually, for a loop) to an address "foo" if B was nonzero. Useful in terms of simplifying programming but horribly expensive in terms of machine cycles (and so non-RISC it hurts). If I didn't dream this, was such an instruction available on any other MPs at the time? If it wasn't, it should be mentioned as a notable feature of the Z80. Tonywalton Talk 23:31, 24 August 2013 (UTC)


This Zilog Z80 article mentions T-cycles. The Intel 8008 article mentions T-states. What are T-cycles? Are T-states the same thing, and if not, what are they? Are T-cycles something only relevant to the Zilog Z80, and T-states only relevant to the Intel 8008, or are they something relevant to many different CPU designs and so should be mentioned and defined in the CPU design article? --DavidCary (talk) 05:23, 9 March 2014 (UTC)

T state and T cycle are used interchangeably (perhaps incorrectly so), but you could perhaps distinguish them as a cycle being the time to shift between states. All microprocessors use these, although the "T" terminology might be specific to some manufacturers, such as the Intel/Zilog world, having a vocabulary separate from the Motorola world. Certainly Texas and their 99xxx series had a very different approach to timing issues (Owing to how clock signals were distributed, the external clock on those CPUs ran much faster, but achieved less per clock cycle).
Internally, CPUs have two design issues to make them faster: getting more processing done in a clock cycle and simply making the electronics operate faster so that clocks can be run faster. These are quite separate issues and the overall "workload" of a processor depends on their product.
The "efficiency" of a processor design can be measured in T states (or cycles). How many T states are needed to perform an Add operation etc. The fewer "ticks" it takes, the more Adds can be added in a working day.
The clock speed of a processor depends on the speed of the electronic gates within it. As this improved, the Z80 repeatedly doubled its speed from 1MHz to 8MHz. Each T state became proportionately shorter, but as the Add operation still required the same number of T states (the internal logic of the processor wasn't changing), the Add also became faster.
T cycles were used in practice, even by application programmers. If you added the T cycles to execute a loop operation, then multiplied by the T cycle time for that processor at that clock speed, you could predict the time to execute one iteration of a loop, thus how many loops would be needed to wait for a millisecond, etc.
The time of a T state relative to the clock depends on a matter of definitions as much as anything. The 99xxx clock was a multiphase clock where each external clock cycle drove relatively less of the "T cycle clock", compared to how the Z80 worked. I doubt that Texas silicon went much faster than Zilog at the gate level, but the external crystal clock was often three times the speed. As the 99xxx also used an unusual architecture with registers in memory, many operations also required more T cycles to perform than a Z80 would have done. So comparing the "working speed" of two such different processors could be tricky: on one hand one was faster, on the other hand, slower. Andy Dingley (talk) 12:01, 9 March 2014 (UTC)

Possible Errors[edit]

Why are we comparing the Zilog Z-80 to the Intel 8086/8088 processors? The Zilog Z-80 was an 8-bit processor, a "replacement for" the Intel 8080. The Intel 8086/8088 CPUs were 16-bit, source code compatible only, and came along later. It might make sense to compare the Zilog Z8000 to the Intel 8086/8088 CPUs. (But they were not very compatible.) (talk) 12:02, 12 August 2014 (UTC) (Jeffrey Todd Grigg. I was working in the industry at the time.)