Earlier quoted context omitted.
The Datapoint 2200, the source of the 8008 instruction set, is an interesting machine. The CPU was built from TTL chips. To decode instructions, they used decimal BCD decoder chips, specifically the 7442. But they'd use them as octal decoder chips, only using 8 outputs. The Datapoint 2200 documentation gave the opcodes in octal, so they were clearly thinking in octal. The 8008 documentation, however, didn't use octal…
Do you know if Federico Faggin copied the logic design of the 2200 or implemented the ISA using his own design?
x86 Is an Octal Machine (1995)
21–30 of 51 posts
Re: x86 Is an Octal Machine (1995)
#22Earlier quoted context omitted.
The Datapoint 2200, the source of the 8008 instruction set, is an interesting machine. The CPU was built from TTL chips. To decode instructions, they used decimal BCD decoder chips, specifically the 7442. But they'd use them as octal decoder chips, only using 8 outputs. The Datapoint 2200 documentation gave the opcodes in octal, so they were clearly thinking in octal. The 8008 documentation, however, didn't use octal…
Do you know if Federico Faggin copied the logic design of the 2200 or implemented the ISA using his own design?
Re: x86 Is an Octal Machine (1995)
#23Earlier quoted context omitted.
The sibling comments disagree with you
I’m not seeing any disagreement in sibling or other comments
Re: x86 Is an Octal Machine (1995)
#24Earlier quoted context omitted.
I’m not seeing any disagreement in sibling or other comments
The comment by kens explains how the Datapoint 2200 both documented the design of the ISA in octal and used collections of three bits to decode at the fairly high TTL chip level. https://news.ycombinator.com/item?id=30409100#30409889
Re: x86 Is an Octal Machine (1995)
#25Earlier quoted context omitted.
The comment by kens explains how the Datapoint 2200 both documented the design of the ISA in octal and used collections of three bits to decode at the fairly high TTL chip level. https://news.ycombinator.com/item?id=30409100#30409889
The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' and as importantly, a Datapoint 2200 is not an x86. The x86 is not an octal machine.
Basic concepts like the 8 GPRs are rooted in it's octal decoding roots. MOD/RM is still octal decoded, SIB is still octal decoded, etc. These fields aren't just three bits long, but also aligned to a three bit boundary within the byte being decoded.
> and as importantly, a Datapoint 2200 is not an x86. The x86 is not an octal machine.
The x86 traces its lineage to that and the points still hit. For instance, even when they added more registers in x86_64, it's still a three bit bank with simply a new prefix to select whether it's referring to the top or bottom 8 register bank out of now 16 total registers. There's some awkward places where you can't address different 8 register banks in the way you'd want to from an encoding perspective because of these continued restrictions going back to the Datapoint 2200.
Having written the HDL for a simple x86_64 decoder, it is very much still an octal machine.
Re: x86 Is an Octal Machine (1995)
#26Is there currently any good public way to search usenet archives?
Re: x86 Is an Octal Machine (1995)
#27> ALL 80x86 OPCODES ARE CODED IN OCTAL That's a backwards way of saying it. I'd rather say, given the hardware structure of the bit fields of the opcode register, the binary opcodes are perhaps better described by octal notation rather than hexadecimal.
I can't interpret the author's intent, but I think they're trying to point out a conflict between how Intel and most other references document the x86 opcode byte (as a byte table, with no clear coordinate relation between bits) versus how the byte is structured internally (around octal values, which would reveal a coordinate relationship if visualized).
Re: x86 Is an Octal Machine (1995)
#28I remember seeing a copy of this Usenet post years ago! It's one of my favorite "secrets" about x86's encoding. The "core" (non-E/VEX, non-SSE, etc.) x86 encoding is wonderfully clever and terrible by modern standards, and Volume 2 of Intel's SDM is a great reference for how x86 manages to pack remarkably complicated addressing, operand, etc. semantics into just a handful of bytes. The result is a format that's remar…
I haven't seen the FD abbreviation, is it "full disclosure" ?
Re: x86 Is an Octal Machine (1995)
#29Earlier quoted context omitted.
The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' and as importantly, a Datapoint 2200 is not an x86. The x86 is not an octal machine.
> The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' Basic concepts like the 8 GPRs are rooted in it's octal decoding roots. MOD/RM is still octal decoded, SIB is still octal decoded, etc. These fields aren't just three bits long, but also aligned to a three bit boundary within the byte being decoded. > and as importantly, a Datapoint 2200 is not an x86. The x86 is not an…
Re: x86 Is an Octal Machine (1995)
#30Earlier quoted context omitted.
Thanks for these links - very interesting. Astonishing to think that we can see traces of the 8008 still today and that it wasn’t actually an Intel designed ISA (came from CTC / Datapoint).
The Datapoint 2200, the source of the 8008 instruction set, is an interesting machine. The CPU was built from TTL chips. To decode instructions, they used decimal BCD decoder chips, specifically the 7442. But they'd use them as octal decoder chips, only using 8 outputs. The Datapoint 2200 documentation gave the opcodes in octal, so they were clearly thinking in octal. The 8008 documentation, however, didn't use octal…
Also, after using the Xerox Alto, which uses 16-bit words, I realized that octal is terrible. The problem is that if you're looking at two bytes in a word, the values make no sense in octal. For example, the characters "AB" form the hex word 0x4142, while "BA" forms 0x4241; the two letters are clear. But in octal, "AB" is 0o40502 and "BA" is 0o41101; the two letters turn into unrecognizable numbers.