3

There is a group of 8-bit CPUs, starting with the Datapoint 2200, which includes the Intel 8080 and 8085, the Z80, the LR35902, the KR580VM1, the Rabbit 2000, and others. It seems like an obvious grouping, but I can't seem to find an established name for it.

For example, toolchains typically group "families" like this together and say, we'll support the CPUs within the group. Take for example a hypothetical assembler for X86, for example, which supports the 386, 486, etc etc.

Or, let's point out GCC, which supports the PDP-11, and then has options -m10, -m40, -m45 etc to more narrowly specify which model you're compiling for.

I am looking for a name analogous to:

  • x86, roughly meaning, any of the various CPUs derived from the 8086
  • ARM, meaning, any of the various CPUs derived from the ARM1
  • PDP-11, meaning any of the miscellaneous models and compatibles.

Is there a well established name for the group of CPUs in my first paragraph?

cjs
  • 25,592
  • 2
  • 79
  • 179
Omar and Lorraine
  • 38,883
  • 14
  • 134
  • 274
  • 8-bit CPUs somehow in one way or the other related through a common ancestor in the 8008/8080? When looking at them, they seem to have several incompatibilities between them. If compiling for them or choosing an assembler, you would need to be very specific in the type of processor chosen. Or you would use the most common parts of the instruction set, based upon 8080. But then you would not be able to use their extensions/incompatibilities. – chthon Jun 21 '22 at 10:30
  • 2
    If at all, it would be a random and artificial one, as these CPU are not a (more or less) planned family of compatible designs, but a vast array of rather incompatible look alike. Personally I use the term x80 for anything direct related to the 8080 (8085, Z80), but that's more hardware related, as assemblers already diverge vetween the Inteland Zilog branches - and the LR35902 being a strange beast inbetween: 8080 hardware but Zilog assembler. While the Rabbit does not fit the picture at all. – Raffzahn Jun 21 '22 at 11:11
  • 2
    "the various CPUs derived from the 8086, or ARM..." These are two entirely disparate families of CPUs. In fact, the ARM design came about in part because in 1982-83 the Acorn folks were unhappy with all of the 16- and 32-bit microprocessors available at the time, particularly the 8086. You're asking for a name for the group of fruits consisting of apples and oranges, separate from all other fruits. – cjs Jun 21 '22 at 12:13
  • 1
    Oh, and in addition, the group starting with the Datapoint might quite well be called x86 ... after all, it is a direct line going from Datapoint to x86-64. By acknowledging this, all similar offspring would fall under x86 as well, wouldn't it? – Raffzahn Jun 21 '22 at 12:14
  • @Raffzahn The LR35902 is an "in between" processor, but that has nothing to do with the mnemonics. Plenty of people have programmed Intel 8080s using Zilog mnemonics and Z80s using Intel mnemonics, and in no case did the chip ever have any idea which mnemonics were used to assemble the code. – cjs Jun 21 '22 at 12:15
  • @cjs The question starts maybe a bit misleading by givin x86 and ARM as examples, but he describes the group he is looking for quite clear in the second to last paragraph as "starting with the Datapoint 2200 as well; this group would include the Intel 8080 and 8085, the Z80, the LR35902, the KR580VM1, the Rabbit 2000, and others". – Raffzahn Jun 21 '22 at 12:16
  • @Raffzahn In that paragraph he describes a second group for which he's looking for a name; perhaps you missed the "as well" in that paragraph (as well as the fact that he left out every single CPU he'd mentioned earlier). The first paragraph is pretty clear that he's looking at 16-bit machines and including ARM in the group. – cjs Jun 21 '22 at 12:18
  • @cjs well, I'm maybe not native English, but I noticed the leading 'analogous' followed by examples (Also, I guess no need to point out, that ARM isn't a 16 bit, thus not fitting your narrative, or do I?) :)) – Raffzahn Jun 21 '22 at 12:21
  • 4
    I read the question like @Raffzahn does: “x86”, “ARM”, “PDP-11” are examples of nomenclatures covering a variety of different CPUs, and the question is asking for an equivalent for Datapoint 2200-derived CPUs. – Stephen Kitt Jun 21 '22 at 12:50
  • @StephenKitt that's exactly what I meant – Omar and Lorraine Jun 21 '22 at 12:51
  • @OmarL It would be good to [edit] your post to clarify that, then. Especially given the second comma in your post it's very easy to misread, but the biggest problem is that your question is in the third paragraph, not the first. Start with the question first, and then provide additional information and/or examples to clarify it. It would also be good to tweak the question title to give something a little more descriptive about the group than "this." – cjs Jun 21 '22 at 13:22
  • And note that your second paragraph does pretty clearly group x86 and ARM together: "it's an assembler for x86 and ARM." – cjs Jun 21 '22 at 13:24
  • @cjs is it better now? – Omar and Lorraine Jun 21 '22 at 13:58
  • @OmarL It's definitely improved, but I would move the description/listing of the group of CPUs you're trying to describe to the start of the question, and the "The name would be analogous to...." section to the end. – cjs Jun 22 '22 at 02:52
  • @cjs what about now – Omar and Lorraine Jun 22 '22 at 05:49
  • @OmarL Yes, much better. – cjs Jun 22 '22 at 10:52

2 Answers2

2

Interesting Question. No, I don't think there is any.

Of course it's always hard to prove something doesn't exist. If at all, it would be pretty obscure and a random/artificial one, for sure not a settled one.

Unlike mentioned x86, a 'grown' family of compatible designs of various manufacturers, based on a single CPU, and still backward compatible to the first, or ARM, which, a planned family of partially or fully compatible designs around a basic ISA, the CPUs mentioned as

Datapoint 2200 as well; this group would include the Intel 8080 and 8085, the Z80, the LR35902, the KR580VM1, the Rabbit 2000, and others.

are a vast array of rather incompatible look alike designs.

Personally I use the term x80 for anything direct related to the 8080 (8085, Z80, LR35902) specifically, e.g. in RC.SE answers, when it was about this group. Much the same way as x86 is used for 8086 related CPUs. Usually I'll also mark the area it's about - which in most cases is hardware related, as assemblers already diverge between the Intel and Zilog branches. The LR35902 being a strange beast in between: 8080 hardware but Zilog assembler (*1). While the Rabbit already strays away quite far (*2).

In fact, the Rabbit makes a good case that a unifying x80 term for all these 8080 offspring is challenging at times. While the x86 world is based on a strict upward compatibility with even the newest 2022 member complies with virtually all instructions defined 40+ years ago, x80 chips do diverge a lot in hard and software. So when embracing them as a family, it's a must to point out about which common aspect or similarity this is. Like saying x80 style I/O, or memory interface, etc.

Of course you may just go ahead and include them under x86, after all, it is a direct line going from Datapoint to x86-64, the x80 being a section thereof. Sure, their instruction are renumbered and such, but this already happened when going from Datapoint/8008 to 8080. By acknowledging this, all similar offspring would fall under x86 as well, wouldn't they?


*1 - The point here is the assembler used by its creator, not any later adaption. Of course one could program an 8080 using Z80 mnemonics - the same way one can do this with a 6502 (*3)

*2 - Well, I guess it comes down to opinion - like so oft when it's about kids that diverge :)) While The Rabbit is clearly x80 related, it always felt like a total different CPU to me. It is advertised as Z80/Z180 upgrade, but with more than 30 instructions dropped (8080 and Z80) as useless (*4), (at least) one changed (XTHL), a different interrupt system (8080 and Z80), different memory management (Z180) and complete different I/O handing, it's a terrific diversion from classic 8080/Z80/Z180 style. Don't get me wrong, some changes are wishes come true, like the IOI/IOE prefixes, but they are fundamental changes.

*3 - The 6502 syntax of having one operand within the mnemonic is much due the very simple first generation of cross assemblers used. Unlike Intel (and further more so Zilog) MOS/WDC never switched to a more generic form (Motorola did with the 68k). So, why not MOV A,X or LD A,X instead of the kind of upside down TXA(*5). See this Answer, especially the Sidestep in Time Line: Zilog Z80 section for how the mnemonic side got simplified by Intel and Zilog.

*4 - Calling many nifty 8080 and Z80 Instructions useless in't great. I don't believe doing strlen() in a single instruction (CPIR) is useless :))

*5 - Upside down, as the usual Motorola/MOS syntax is operation+target source as in LDA $00, while the 'transfers' go operation+source+target.

Omar and Lorraine
  • 38,883
  • 14
  • 134
  • 274
Raffzahn
  • 222,541
  • 22
  • 631
  • 918
  • @cjs not sure what your point is - beside trying to inject something that hasn't been said to proof something that isn't relevant (also, I bet, reading the table past entries starting with A might bring up TAB, TBA or TXS establishing the linage - not to mention LDX or STS) – Raffzahn Jun 21 '22 at 13:34
  • Why do you consider the Rabbit 2000 doesn't fit the picture at all? It looks to me like a generic Z80 descendant. Or have I got the wrong idea? – Omar and Lorraine Jun 22 '22 at 08:15
  • @OmarL Well, I guess it comes down to opinion - like so oft when it's about kids that diverge :)) While it is clearly related, it always felt like a total different CPU to me. With more than 30 instructions dropped (including the handy CPIR), a different interrupt system, different memory management (Z180) and complete different I/O handing its a terrific diversion from classic 8080/Z80/Z180 style. Don't get me wrong, some changes are wishes come thru. Let me rephrase that part. – Raffzahn Jun 22 '22 at 09:40
0

(Note: the initial version of this question is/was rather confusing, in particular mentioning that, "toolchains typically group these CPUs together...it's an assembler for x86 and ARM, let's say." From his comments, it now appears not to be the intent of the OP to group x86 and ARM together. I leave this answer as-is for anybody who happens to be looking at why those two might be grouped together in modern toolchains.)

If you're looking for a name for a group of CPUs that includes the 8086 and the ARM, but not the other early '80s 16/32-bit processors, you're not likely to find one because these are two entirely different and unrelated families of CPUs.

The ARM was, in fact, developed specifically because the Acorn folks were unhappy with the 16/32-bit processors of the day, including the 80286, the 68000 and the National Semiconductor 32016. As Wikipedia says, summarising Matt Evan's talk on this (at 7:35):

The engineers then began studying all of the CPU designs available. Their conclusion about the existing 16-bit designs was that they were a lot more expensive and were still "a bit crap", offering only slightly higher performance than their BBC Micro design. They also almost always demanded a large number of support chips to operate even at that level, which drove up the cost of the computer as a whole. These systems would simply not hit the design goal [of ten times more performance than the BBC Micro at the same price]. They also considered the new 32-bit designs, but these cost even more and had the same issues with support chips. According to Sophie Wilson, all the processors tested at that time performed about the same, with about a 4 Mbit/second bandwidth.

A core principle of the 8086 design was to make it as easy as possible to redesign existing 8080 systems with an 8086 processor. This led to decisions such as 64 KB memory segments, a similar set of registers and a substantially similar interface between the CPU and the rest of the system. Increases in system speed were in part to be gained from sophisticated support chips such as the 8089 I/O coprocessor (complex enough to be almost a CPU itself), the 8288 bus controller, and so on.

ARM, on the other hand, went in a vastly different direction, with a flat address space, no support for unaligned memory access, a uniform 16 × 32-bit register file (including the program counter and stack pointer), a RISC-influenced load/store architecture, and a hardware design that worked very efficiently with minimal support logic.

The term "first generation of 16-bit microprocessors" might apply if you're willing to include the others developed and released in the 1978-1985 time frame, but the only real relationship between these is the time they were made and the technology and knowledge commonly available at the time.

The reason you might see x86 and ARM included together in a single toolchain these days is because there's been a movement over the last 5-8 years to move systems that were traditionally run on x86 to ARM for cost and power saving reasons. On the consumer side, this includes many Chromebooks (Linux), Microsoft's Surface line of tablets (Windows) and Apple's recent Mac transition from x86 to ARM (MacOS X). This has also been happening on the serer side. But what's really going on here is not that there's any particular harmonisation between the two architectures (though x86 architecture has come a bit closer to ARM over the decades) but just that these happen to be the two architectures in widespread use in these areas.

cjs
  • 25,592
  • 2
  • 79
  • 179