17

When the Zilog Z80 was released, it was marketed as being mostly ISA compatible with Intel 8080, while also providing enhanced features.

Likewise, the CPU of the Nintendo Game Boy is a custom architecture designed by Sharp, (believed by the Game Boy homebrew community to be called SM83) which is mostly compatible with Intel 8080, while also providing some enhancements over it.

Are there any other examples of non-Intel designed CPU architectures which are similarly enhanced, mostly compatible derivatives of the Intel 8080?

My interest is in similar ISAs, as opposed to similar bus layout or timings. To put a threshold, let's say a CPU architecture implementing >90% of the 8080 ISA with binary compatibility. I'm looking to prove or disprove whether there are lesser known 8080 derivatives, other than the well documented cases of Intel's own continuation of the architecture, and the Z80 family of architectures. The goal is to figure out how unique the Sharp SM83xx architecture really was at the time, broadly being a 8080 derivative while also not being a direct descendant of Z80.

8
  • Mind to define the 'Mostly Compatible' you're asking for? Is this about hardware (Bus system) or software (ISA)? What criteria to be used to judge?
    – Raffzahn
    Apr 6 at 11:00
  • 2
    @Raffzahn what I'm looking for is ISA compatibility. Let's say as a criterion that the other architecture must be reasonably binary compatible and implement >90% of the 8080 ISA (excluding redundant instructions.) Bus system and cycle timings are not criteria for the question.
    – nitro2k01
    Apr 6 at 11:57
  • 1
    @OmarL that is old news. The chip is a custom ASIC made by Sharp which integrates a CPU that has the architecture based on Sharp SM8300 series.
    – Justme
    Apr 6 at 12:14
  • 1
    @nitro2k01 Well, maybe put that into the question, so it becomes clear what you're looking for.
    – Raffzahn
    Apr 6 at 12:51
  • 1
    @Raffzahn I've clarified the question and explained the intent of the question.
    – nitro2k01
    Apr 6 at 13:33
23

Foremost, there are direct continuations, CPU's able to execute 8080 code and (basically) hardware compatible, like the 8085, Intel's answer to the Z80, as it's mostly software and hardware compatible.

Beside Intel's direct extension, there is of course the series of enhancements of Z80 design, from Z800/Z280 all the way to the eZ80, which in some way can be seen as the pinnacle of (upward compatible) 8080/Z80 continuation.

A very special case is the NEC V20/30/... series. While basically 1:1 8086 replacements (with some enhancements) they as well include a mode allowing direct execution of 8080 binaries without any emulation.

Beyond that, it depends on what kind of compatibility this is about.

Hardware wise the whole (early) 8086 world would fit, as its bus system is based on the 8080 design. Adapting a 8088 into an 8080 design is about the same complexity as doing so with a Z80. Then again, early bus systems can be categorized by their bus cycles, as mentioned here. Transition between the basic types can be made with just minor hardware adjustment.

Software-wise (ISA) it gets a bit more diverse. For example the x86 family was designed with 8085 source code compatibility in mind, meaning that a program source can be translated automatically from 8080/85 to 8086 with a high rate of success.

And last, but not least, there is software emulation for compatibility - that one works on essential every CPU.

Pick your favourite modus operandi.

Oh, and beware of false friends on your search. Some CPUs may look like x80 on first sight, but are compatible only in spirit. Examples here are Zilog's Z8 or Z8000. Both use assembler mnemonics with a close resemblance to Z80, but for a completely different CPU architecture.

7
  • 1
    Its too minor an edit but you spelled hardware as hatdware in the first paragraph Apr 7 at 2:51
  • I used a V30 as a replacement for an 8086 around 1987 and seem to recall that (in addition to the 8080 mode relevant to the question) it essentially implemented the 80186 instruction set. Unfortunately I tossed out the data book for it years ago, so am unable to confirm my recollection.
    – njuffa
    Apr 7 at 20:17
  • @njuffa yes, the x86 ISA was at the 186 (or 286 real mode) level. V20/V30 were great drop in replacements for 8088/86 machines, adding not only the ability to run CP/M software at good speed, but as well a 5-15% speed up for native application.
    – Raffzahn
    Apr 7 at 22:24
  • @Raffzahn: What fraction of Z80 software could run directly on the V20, rather than having to use instruction-level emulation [which, while slower than a Z80, was reasonably zippy on a V20]?
    – supercat
    Apr 9 at 8:00
  • 1
    @Raffzahn: Turbo Pascal and HiTech's C compiler both generated code which used one of the index registers as a frame pointer, and I doubt they were unique in that regard. Any applications built with such a compiler would have been Z80-specific.
    – supercat
    Apr 9 at 17:40
10

There were of course clones produced in the COMECON countries. Being clones, they would probably not make a good answer, with the exception of:

  • КР580ВМ80А was a Soviet clone that has been developed further into:
  • КР580ВМ1 with a frequency 5MHz needed just 5V and added some new commands, had support for bank switching and multiprocessor systems
7

Obviously what's compatible (or an advancement) to the Z80 also has to be compatible to the 8080.

That includes the Hitachi HD64180, the Zilog Z180 (which is essentially the same thing), the Toshiba 84013 and 015, and to a limited degree, the Toshiba TMP90 (which is only source-code-compatible to the Z80 but uses different opcodes). Rabbit Semiconductor is yet another company that has/had a wide range of CPUs that could be considered Z80/8080 derivatives - They share register names and look to be largely influenced by the Z80/8080 design.

The Sharp PC-1500's CPU, the LH5801 is an interesting one, because it came in disguise - It's officially published instruction set looks a bit like 6800/6500 instructions, but when you dig a bit deeper, it actually uses an extended set of Z80 opcode equivalents.

14
  • 2
    The LH801 is not really anything like 8080 or Z80. It's a licenced Z8601, which is a Z8 core with 2 KiB of ROM. The Z8 has a structure complete different from x80 class CPUs, more like a 8051. It's build around a set of 256 'registers'. It's opcodes are as different as a non related CPU can be. What is similar are the assembler mnemonics. Still, automatic translation from Z80 will not get far.
    – Raffzahn
    Apr 6 at 13:08
  • The NSC800 is another Z80 superset, combining the features of the Z80 with some aspects of the 8085.
    – john_e
    Apr 6 at 15:20
  • The CPU in Sharp PC 1500 is called LH5801. @Raffzahn, do you have any reference that it is a licenced Z8601, because I have never seen any information that it has a set of 256 registers. I did some programming in assembler on my PC-1500 back in the days, and I still have some manuals about the processor.
    – UncleBod
    Apr 6 at 20:03
  • @UncleBod In Sharp numbering all LH are embedded and 801 are Z8. To be sure I did a search for more information and found this opcode table. While it does not look like a Z8, but as well not like a Z80. Interesting.
    – Raffzahn
    Apr 6 at 20:21
  • @UncleBod Looking at the PC-1500 Technical Reference shows a somewhat similar (three register pairs) but instruction and encoding wise quite different CPU. I admit, it'S not a Z8, but not an 8080/Z80 either.
    – Raffzahn
    Apr 6 at 20:37
3

Going backwards, the 8080 is "mostly compatible" with the Intel 8008. They share most of the same registers, and most instructions map between the two. With some changes (or using a cross-assembler), you can assemble the source code of most 8080 programs for an 8008.

There certainly are differences between the two processors. The 8008 had an internal stack and a 14-bit address space, in an 18-pin package. The 8080 had stack in memory with a proper stack pointer, and a 16-bit address space, in a 40-pin package. The 8080 had one additional flag: the auxilliary carry. Most importantly, the opcodes were different, making the executables incompatible.

Computer Terminal Corporation initially contracted Intel to build a microprocessor and gave Intel the desired instruction set. Intel was not able to deliver on time, so CTC created their own design with discrete TTL parts, the Datapoint 2200. Intel was allowed to finish their microprocessor, which was the 8008. The two systems are binary-compatible; therefore, the arguments for the 8008 also hold for the Datapoint 2200.

3

If Intel 8008 qualifies as answer one can add the Texas Instrument TMS-1795 which was TI's take at the Datapoint 2200 microprocessor. It even came out before Intel's 8008 as explained by Ken Shirriff .

0

Missing so far is the roughly Z80-compatible NSC800, from National Semiconductor. (I forget the details but I see a CPU World comment tah it's a "Z80 in 8085 clothing").

Its USP was its CMOS construction and much lower power consumption than any of its rivals (until the Hitachi 64180 came along several years later)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.